Helpful tools for Pick
Tools | Description |
---|---|
EVA | Vim like editor for Pick |
NPM | Package manager to install the packages listed here |
NSH | Fish like shell for Pick |
A set of utilities to make PICK easier to manage. Square brackets mean the word is optional. Curly braces are where you can substitute what you want in the command.
Command | Description |
---|---|
ADD-DICT | Add dictionary entries to a file |
ADD-PATH | Add a F Pointer to a Linux Path |
ARCHIVE | Archive records |
CAT | Print a record to the screen |
CLIZER.DRIVER | Update a record from TCL |
CLONE | Copy records in PICK |
DEPRECOMPILE | Deprecompile BASIC programs |
EVENT | Create events and added to an EVENT-FILE |
FTP | Upload and download files using ftp |
GREP | Regex search in BASIC, ^.*$ |
IMPORT-TEMP | Import records from IMPORT-TEMP-FILE |
MOVE | Move records around in PICK |
NEW-FILE | Create files with a default |
OS.RELEASE | Show OS information |
PRECOMPILE | Precompile BASIC programs |
PS2 | List UniVerse port information |
RENAME | Rename files and dictionaries |
SCP | Upload and download files using ssh |
UV.LICENSE | Show UniVerse license information |
Subroutine | Description |
---|---|
CLIZER | |
GET.ARGUMENTS | |
GET.NEXT.ID | |
MOVE.FILES | |
FILE.TRANSFER.PROTOCOL | |
FILE.TRANSFER.PROTOCOL.SECURE | |
MD5 | |
RENDER.MARKDOWN | |
SECURE.COPY | |
SECURE.FILE.TRANSFER.PROTOCOL | |
SHA1 | |
SHA256 | |
SHA512 | |
URLDECODE | |
URLENCODE |
Subroutine | Description |
---|---|
JSON.ADD | |
JSON.CREATE.ARRAY | |
JSON.CREATE.OBJECT | |
JSON.PARSE | |
JSON.QUERY |
Subroutine | Description |
---|---|
MAP.SET | |
MAP.HAS | |
MAP.GET | |
MAP.DELETE | |
STACK.PUSH | |
STACK.POP | |
STACK.PEEK |
Subroutine | Description |
---|---|
LIST.DIRECTORY |
Program | Description |
---|---|
BITE-THE-APPLE | |
SERAPHIM | |
METATRON |
Add a A type and an S type PICK style dictionary to a file:
FLAGS:
-F, --FILE.NAME
-A, --ATTRIBUTE.NUMBER
-N, --ATTRIBUTE.NAME
-CV, --CONVERSION
-CR, --CORRELATIVE
-J, --JUSTIFICATION
-L, --LENGTH
EXAMPLES:
ADD-DICT -F {FILE-NAME} -A {ATTR.#} -N {DICT.NAME}
ADD-DICT -F {FILE-NAME} -A {ATTR.#} -N {DICT.NAME} -J R -CV MD2
Add a F Pointer to a Linux Path
ADD-PATH {MD.NAME} {/path/to/folder}
Archive records to a ARCHIVE-FILENAME file:
ARCHIVE BP TEST
Print a record to the screen:
CAT [DICT] {FILE} {RECORD}
CAT [DICT] {FILE}
Update a record from TCL:
CLIZER.DRIVER SOMETHING-FILE --ATTRIBUTE.NAME VALUE
Copy records in PICK:
Copy a file:
CLONE [DICT] {SRC.FILE} {SRC.RECORD} [DICT] {DEST.FILE} {DEST.RECORD}
Copy a file without renaming:
CLONE [DICT] {SRC.FILE} {SRC.RECORD} [DICT] {DEST.FILE}
Copy files using an active list:
CLONE [DICT] {SRC.FILE} [DICT] {DEST.FILE}
Copy a file to the underlying OS:
CLONE [DICT] {SRC.FILE} {SRC.RECORD} {/tmp/} {new-name.txt}
Copy an active list to a folder:
CLONE [DICT] {SRC.FILE} {/tmp/backups/}
Deprecompile a BASIC program that has $FILE-NAME:
DEPRECOMPILE BP TEST
Create events and added to an EVENT-FILE:
EVENT --SUBJECT "This is an event" --START-DATE "12AUG2024" --START-TIME 14:30
Upload and download files using ftp:
Send a file to a server:
FTP {/path/to/file} {username:password@server:/path/to/file}
Get a file from a server:
FTP {username:password@server:/path/to/file} {/path/to/file}
Regex search in BASIC, ^.*$:
GREP [DICT] {FILE} {RECORD.ID} {REGEX}
Import records from IMPORT-TEMP-FILE
Import all records in IMPORT-TEMP-FILE
IMPORT-TEMP {DEST.FILE}
Import a specific record from IMPORT-TEMP-FILE
IMPORT-TEMP {DEST.FILE} {RECORD}
Move records around in PICK:
Move a file:
MOVE [DICT] {SRC.FILE} {SRC.RECORD} [DICT] {DEST.FILE} {DEST.RECORD}
Move a file without renaming:
MOVE [DICT] {SRC.FILE} {SRC.RECORD} [DICT] {DEST.FILE}
Move files using an active list:
MOVE [DICT] {SRC.FILE} [DICT] {DEST.FILE}
Move a file to the underlying OS:
MOVE [DICT] {SRC.FILE} {SRC.RECORD} {/tmp/} {new-name.txt}
Move an active list to a folder:
MOVE [DICT] {SRC.FILE} {/tmp/backups/}
Create files with a default:
NEW-FILE {FILE-NAME}
Show OS information:
OS.RELEASE
Precompile a BASIC program that has $FILE-NAME
PRECOMPILE BP TEST
Rename files and dictionaries:
RENAME [DICT] {FILE} {CURRENT.NAME} {NEW.NAME}
Upload and download files using ssh:
Send a file to a server:
SCP {/path/to/file} {username:password@server[:port]:/path/to/file}
Get a file from a server:
SCP {username:password@server[:port]:/path/to/file} {/path/to/file}
Show UniVerse license information:
UV.LICENSE
Create a CLI interface based on a file dictionary:
SUBROUTINE CLIZER(FILENAME,ARGS)
Used for argument parsing, ARGS will be an attribute marked list of what was typed in at TCL.
CALL GET.ARGUMENTS(ARGS)
Get next available id, searches the entire file and finds the largest key currently.
CALL GET.NEXT.ID(NEXT.ID,FILE)
Used as a base for COPY, RENAME and MOVE. The DELETE.FLAG will decide if the source record should be deleted or not.
SUBROUTINE MOVE.FILES(ARGS,DELETE.FLAG)
Used as a base for the FTP command line utility:
SUBROUTINE FILE.TRANSFER.PROTOCOL(RESULTS,SERVER,USERNAME,PASSWORD,LOCAL.PATH,REMOTE.PATH,DIRECTION)
Used as a base for the FTPS command line utility:
SUBROUTINE FILE.TRANSFER.PROTOCOL.SECURE(RESULTS,SERVER,USERNAME,PASSWORD,LOCAL.PATH,REMOTE.PATH,DIRECTION)
MD5 hashing:
SUBROUTINE MD5(TEXT,HASH)
Render markdown to html:
SUBROUTINE RENDER.MARKDOWN(MARKDOWN,HTML)
Used as a base for the SCP command line utility:
SUBROUTINE SECURE.COPY(RESULTS,SERVER,USERNAME,PASSWORD,LOCAL.PATH,REMOTE.PATH,DIRECTION)
Used as a base for the SFTP command line utility:
SUBROUTINE SECURE.FILE.TRANSFER.PROTOCOL(RESULTS,SERVER,USERNAME,PASSWORD,LOCAL.PATH,REMOTE.PATH,DIRECTION)
SHA1 hashing:
SUBROUTINE SHA1(TEXT,HASH)
SHA256 hashing:
SUBROUTINE SHA256(TEXT,HASH)
SHA512 hashing:
SUBROUTINE SHA512(TEXT,HASH)
Percent decode a URL:
SUBROUTINE URLDECODE(TEXT,URL)
Percent encode a URL:
SUBROUTINE URLENCODE(TEXT,URL)
Add keys and values to a multivalue string. This will form the basis of the object.
BUFFER = ''
CALL JSON.ADD(BUFFER,'key','value)
Convert a multivalue list to an array.
BUFFER = 1 : @AM : 2 : @AM : 3
CALL JSON.CREATE.ARRAY(BUFFER)
Convert a buffer to an object.
BUFFER = ''
CALL JSON.ADD(BUFFER,'id',123)
CALL JSON.ADD(BUFFER,'description','This is a description')
CALL JSON.CREATE.OBJECT(BUFFER)
Convert a json object to a multivalue string that can be queried.
CALL JSON.PARSE(RAW.TEXT,JSON)
CALL JSON.QUERY(JSON,'.firstName',FIRST.NAME)
URL = 'https://dummyjson.com/users/1'
EXECUTE 'SH -c "curl ' : URL : '"' CAPTURING RAW.TEXT
*
CALL JSON.PARSE(RAW.TEXT,JSON)
*
CALL JSON.QUERY(JSON,'.firstName',FIRST.NAME)
Add a key to a hash map:
SUBROUTINE MAP.SET(MAT MAP,SIZE,KEY,VALUE)
Check if a hash map contains a key:
SUBROUTINE MAP.HAS(MAT MAP,SIZE,KEY,FLAG)
Get a key from a hash map:
SUBROUTINE MAP.GET(MAT MAP,SIZE,KEY,VALUE)
Delete a key from a hash map:
SUBROUTINE MAP.DELETE(MAT MAP,SIZE,KEY)
Push something onto the stack:
SUBROUTINE STACK.PUSH(MAT STACK,SIZE,VALUE)
Pop something off the stack:
SUBROUTINE STACK.POP(MAT STACK,SIZE,VALUE)
Get something from the stack without popping it:
SUBROUTINE STACK.PEEK(MAT STACK,SIZE,VALUE)
List a directory, this returns a list of paths and their types:
SUBROUTINE LIST.DIRECTORY(PATH,FILE.LIST)
Set up a SERAPHIM project:
RUN BP BITE-THE-APPLE
A simple web server:
SERAPHIM {APPLICATION}
Manage SERAPHIM Servers:
METATRON START {APPLICATION}
METATRON STOP {APPLICATION}