CLI Usage:
--config --c -c [OPTIONAL] [ARGUMENT=1]
from JS/JSON: set to "path/to/config.js|json"
from ENV: set to "env" to enable, default not check env
from ENV JSON: set to "json-env:ENV_NAME" to read the ENV string as JSON, or "jz64/jb64-env"
from CLI JSON: set to "json-cli:JSON_STRING" to read the appended string as JSON, or "jz64/jb64-cli"
--help --h -h [OPTIONAL] [ARGUMENT=0-1]
show full help
--version --v -v [OPTIONAL] [ARGUMENT=0-1]
show version
--note --N -N [OPTIONAL] [ARGUMENT=1+]
noop, tag for ps/htop
--quiet --q -q [OPTIONAL] [ARGUMENT=0-1]
less log
--input-file --I -I [OPTIONAL] [ARGUMENT=1]
common option
--output-file --O -O [OPTIONAL] [ARGUMENT=1]
common option
--file-upload-server-url --fusu [OPTIONAL] [ARGUMENT=1]
require provide "auth-file" or "auth-file-group"
--file-upload-key [ARGUMENT=1]
--file-upload-path [ARGUMENT=1]
--file-download-server-url --fdsu [OPTIONAL] [ARGUMENT=1]
require provide "auth-file" or "auth-file-group"
--file-download-key [ARGUMENT=1]
--file-download-path [ARGUMENT=1]
--path-action-server-url --pasu [OPTIONAL] [ARGUMENT=1]
require provide "auth-file" or "auth-file-group"
--path-action-type [ARGUMENT=1]
one of:
path.visible path.stat path.copy path.rename
path.delete path.dir.create path.dir.content path.dir.all-file-list
path.compress-tar path.extract-tar path.compress-auto path.extract-auto
--path-action-key [ARGUMENT=1]
--path-action-key-to [ARGUMENT=1]
--path-action-name-list [ARGUMENT=1+]
--websocket-tunnel-server-url --wtsu [OPTIONAL] [ARGUMENT=1]
require provide "auth-file" or "auth-file-group", and "websocket-tunnel-host"
--auth-gen-tag --agt [OPTIONAL] [ARGUMENT=1]
generate auth file: -O=outputFile
--auth-gen-size [ARGUMENT=1]
--auth-gen-token-size [ARGUMENT=1]
--auth-gen-time-gap [ARGUMENT=1]
--auth-gen-info [ARGUMENT=1]
--auth-file-describe --afd [OPTIONAL] [ARGUMENT=0-1]
describe auth file: -I=authFile
--auth-check-code-generate --accg [OPTIONAL] [ARGUMENT=0-1]
generate checkCode from auth file: -I=authFile, $0=timestamp/now
--auth-check-code-verify --accv [OPTIONAL] [ARGUMENT=1-2]
verify checkCode with auth file: -I=authFile, $@=checkCode,timestamp/now
--file-list --ls [OPTIONAL] [ARGUMENT=0-1]
list file: $0=path/cwd
--file-list-all --ls-R --lla [OPTIONAL] [ARGUMENT=0-1]
list all file: $0=path/cwd
--file-tree --tree [OPTIONAL] [ARGUMENT=0-1]
list all file in tree: $0=path/cwd
--compress --a -a [OPTIONAL] [ARGUMENT=0-1]
compress tar/zip/7z/fsp: -I=inputDirectory, -O=outputFile
--extract --x -x [OPTIONAL] [ARGUMENT=0-1]
extract tar/zip/7z/fsp: -I=inputFile, -O=outputPath
--git-branch --gb [OPTIONAL] [ARGUMENT=0-1]
print git branch
--git-commit-hash --gch [OPTIONAL] [ARGUMENT=0-1]
print git commit hash
--ping-race --pr [OPTIONAL] [ARGUMENT=1+]
tcp-ping list of url to find the fastest
--ping-stat --ps [OPTIONAL] [ARGUMENT=1+]
tcp-ping list of url and print result
--quick-server-explorer --qse [OPTIONAL] [ARGUMENT=0-2]
start a no-auth explorer server, for LAN use mostly, caution with public ip: -I=rootPath/cwd, $@=hostname/127.0.0.1,port/auto
--eval --e -e [OPTIONAL] [ARGUMENT=0+]
eval file or string: -O=outputFile, -I/$0=scriptFile/scriptString, $@=...evalArgv
--repl --i -i [OPTIONAL] [ARGUMENT=0-1]
start node REPL
--fetch --f -f [OPTIONAL] [ARGUMENT=1-4]
fetch url with http_proxy env support: -I=requestBody/null, -O=outputFile/stdout, $@=initialUrl,method/GET,jumpMax/4,timeout/0
--host --H -H [OPTIONAL] [ARGUMENT=1]
set "hostname:port"
--TLS-SNI-config [ARGUMENT=1]
TLS SNI config map, set to enable https:
multi config: { [hostname]: { key: pathOrBuffer, cert: pathOrBuffer, ca: pathOrBuffer } }, default to special hostname "default", or the first config
single config: { key: pathOrBuffer, cert: pathOrBuffer, ca: pathOrBuffer }
key: Private keys in PEM format
cert: Cert chains in PEM format
ca: Optionally override the trusted CA certificates
--TLS-dhparam [ARGUMENT=1]
pathOrBuffer; Diffie-Hellman Key Exchange, generate with: "openssl dhparam -dsaparam -outform PEM -out output/path/dh4096.pem 4096"
--debug-route [ARGUMENT=0-1]
show debug route list on "/"
--log-path [ARGUMENT=1]
--log-file-prefix [ARGUMENT=1]
--pid-file [ARGUMENT=1]
--pid-ignore-exist [ARGUMENT=0-1]
set to ANY value to enable, except "false/no/n/0"
--auth-key [ARGUMENT=1]
set for non-default key
--auth-skip [ARGUMENT=0-1]
set to ANY value to enable, except "false/no/n/0"
--auth-file [ARGUMENT=1]
--auth-file-group-path [ARGUMENT=1]
--auth-file-group-default-tag [ARGUMENT=1]
--auth-file-group-key-suffix [ARGUMENT=1]
--permission-type [ARGUMENT=1]
one of:
allow deny func file
--permission-func [ARGUMENT=1]
--permission-file [ARGUMENT=1]
--file-root-path [ARGUMENT=1]
--file-root-path-public [ARGUMENT=1]
--file-upload-merge-path [ARGUMENT=1]
--explorer [ARGUMENT=0-1]
set to ANY value to enable, except "false/no/n/0"
--stat-collect-path [ARGUMENT=1]
--stat-collect-url [ARGUMENT=1]
--stat-collect-interval [ARGUMENT=1]
--stat-report-process-tag [ARGUMENT=1]
--websocket-tunnel-host [ARGUMENT=1]
[under DEV] use format: "hostname:port", default hostname: 127.0.0.1
ENV Usage:
"
#!/usr/bin/env bash
export DR_NODE_CONFIG="[OPTIONAL] [ARGUMENT=1]"
export DR_NODE_HELP="[OPTIONAL] [ARGUMENT=0-1]"
export DR_NODE_VERSION="[OPTIONAL] [ARGUMENT=0-1]"
export DR_NODE_NOTE="[OPTIONAL] [ARGUMENT=1+]"
export DR_NODE_QUIET="[OPTIONAL] [ARGUMENT=0-1]"
export DR_NODE_INPUT_FILE="[OPTIONAL] [ARGUMENT=1]"
export DR_NODE_OUTPUT_FILE="[OPTIONAL] [ARGUMENT=1]"
export DR_NODE_FILE_UPLOAD_SERVER_URL="[OPTIONAL] [ARGUMENT=1] [ALIAS=DR_NODE_FUSU]"
export DR_NODE_FILE_UPLOAD_KEY="[ARGUMENT=1]"
export DR_NODE_FILE_UPLOAD_PATH="[ARGUMENT=1]"
export DR_NODE_FILE_DOWNLOAD_SERVER_URL="[OPTIONAL] [ARGUMENT=1] [ALIAS=DR_NODE_FDSU]"
export DR_NODE_FILE_DOWNLOAD_KEY="[ARGUMENT=1]"
export DR_NODE_FILE_DOWNLOAD_PATH="[ARGUMENT=1]"
export DR_NODE_PATH_ACTION_SERVER_URL="[OPTIONAL] [ARGUMENT=1] [ALIAS=DR_NODE_PASU]"
export DR_NODE_PATH_ACTION_TYPE="[ARGUMENT=1]"
export DR_NODE_PATH_ACTION_KEY="[ARGUMENT=1]"
export DR_NODE_PATH_ACTION_KEY_TO="[ARGUMENT=1]"
export DR_NODE_PATH_ACTION_NAME_LIST="[ARGUMENT=1+]"
export DR_NODE_WEBSOCKET_TUNNEL_SERVER_URL="[OPTIONAL] [ARGUMENT=1] [ALIAS=DR_NODE_WTSU]"
export DR_NODE_AUTH_GEN_TAG="[OPTIONAL] [ARGUMENT=1] [ALIAS=DR_NODE_AGT]"
export DR_NODE_AUTH_GEN_SIZE="[ARGUMENT=1]"
export DR_NODE_AUTH_GEN_TOKEN_SIZE="[ARGUMENT=1]"
export DR_NODE_AUTH_GEN_TIME_GAP="[ARGUMENT=1]"
export DR_NODE_AUTH_GEN_INFO="[ARGUMENT=1]"
export DR_NODE_AUTH_FILE_DESCRIBE="[OPTIONAL] [ARGUMENT=0-1] [ALIAS=DR_NODE_AFD]"
export DR_NODE_AUTH_CHECK_CODE_GENERATE="[OPTIONAL] [ARGUMENT=0-1] [ALIAS=DR_NODE_ACCG]"
export DR_NODE_AUTH_CHECK_CODE_VERIFY="[OPTIONAL] [ARGUMENT=1-2] [ALIAS=DR_NODE_ACCV]"
export DR_NODE_FILE_LIST="[OPTIONAL] [ARGUMENT=0-1] [ALIAS=DR_NODE_LS]"
export DR_NODE_FILE_LIST_ALL="[OPTIONAL] [ARGUMENT=0-1] [ALIAS=DR_NODE_LS_R,DR_NODE_LLA]"
export DR_NODE_FILE_TREE="[OPTIONAL] [ARGUMENT=0-1] [ALIAS=DR_NODE_TREE]"
export DR_NODE_COMPRESS="[OPTIONAL] [ARGUMENT=0-1]"
export DR_NODE_EXTRACT="[OPTIONAL] [ARGUMENT=0-1]"
export DR_NODE_GIT_BRANCH="[OPTIONAL] [ARGUMENT=0-1] [ALIAS=DR_NODE_GB]"
export DR_NODE_GIT_COMMIT_HASH="[OPTIONAL] [ARGUMENT=0-1] [ALIAS=DR_NODE_GCH]"
export DR_NODE_PING_RACE="[OPTIONAL] [ARGUMENT=1+] [ALIAS=DR_NODE_PR]"
export DR_NODE_PING_STAT="[OPTIONAL] [ARGUMENT=1+] [ALIAS=DR_NODE_PS]"
export DR_NODE_QUICK_SERVER_EXPLORER="[OPTIONAL] [ARGUMENT=0-2] [ALIAS=DR_NODE_QSE]"
export DR_NODE_EVAL="[OPTIONAL] [ARGUMENT=0+]"
export DR_NODE_REPL="[OPTIONAL] [ARGUMENT=0-1]"
export DR_NODE_FETCH="[OPTIONAL] [ARGUMENT=1-4]"
export DR_NODE_HOST="[OPTIONAL] [ARGUMENT=1]"
export DR_NODE_TLS_SNI_CONFIG="[ARGUMENT=1]"
export DR_NODE_TLS_DHPARAM="[ARGUMENT=1]"
export DR_NODE_DEBUG_ROUTE="[ARGUMENT=0-1]"
export DR_NODE_LOG_PATH="[ARGUMENT=1]"
export DR_NODE_LOG_FILE_PREFIX="[ARGUMENT=1]"
export DR_NODE_PID_FILE="[ARGUMENT=1]"
export DR_NODE_PID_IGNORE_EXIST="[ARGUMENT=0-1]"
export DR_NODE_AUTH_KEY="[ARGUMENT=1]"
export DR_NODE_AUTH_SKIP="[ARGUMENT=0-1]"
export DR_NODE_AUTH_FILE="[ARGUMENT=1]"
export DR_NODE_AUTH_FILE_GROUP_PATH="[ARGUMENT=1]"
export DR_NODE_AUTH_FILE_GROUP_DEFAULT_TAG="[ARGUMENT=1]"
export DR_NODE_AUTH_FILE_GROUP_KEY_SUFFIX="[ARGUMENT=1]"
export DR_NODE_PERMISSION_TYPE="[ARGUMENT=1]"
export DR_NODE_PERMISSION_FUNC="[ARGUMENT=1]"
export DR_NODE_PERMISSION_FILE="[ARGUMENT=1]"
export DR_NODE_FILE_ROOT_PATH="[ARGUMENT=1]"
export DR_NODE_FILE_ROOT_PATH_PUBLIC="[ARGUMENT=1]"
export DR_NODE_FILE_UPLOAD_MERGE_PATH="[ARGUMENT=1]"
export DR_NODE_EXPLORER="[ARGUMENT=0-1]"
export DR_NODE_STAT_COLLECT_PATH="[ARGUMENT=1]"
export DR_NODE_STAT_COLLECT_URL="[ARGUMENT=1]"
export DR_NODE_STAT_COLLECT_INTERVAL="[ARGUMENT=1]"
export DR_NODE_STAT_REPORT_PROCESS_TAG="[ARGUMENT=1]"
export DR_NODE_WEBSOCKET_TUNNEL_HOST="[ARGUMENT=1]"
"
CONFIG Usage:
{
"config": [ "[OPTIONAL] [ARGUMENT=1]" ],
"help": [ "[OPTIONAL] [ARGUMENT=0-1]" ],
"version": [ "[OPTIONAL] [ARGUMENT=0-1]" ],
"note": [ "[OPTIONAL] [ARGUMENT=1+]" ],
"quiet": [ "[OPTIONAL] [ARGUMENT=0-1]" ],
"inputFile": [ "[OPTIONAL] [ARGUMENT=1]" ],
"outputFile": [ "[OPTIONAL] [ARGUMENT=1]" ],
"fileUploadServerUrl": [ "[OPTIONAL] [ARGUMENT=1] [ALIAS=fusu]" ],
"fileUploadKey": [ "[ARGUMENT=1]" ],
"fileUploadPath": [ "[ARGUMENT=1]" ],
"fileDownloadServerUrl": [ "[OPTIONAL] [ARGUMENT=1] [ALIAS=fdsu]" ],
"fileDownloadKey": [ "[ARGUMENT=1]" ],
"fileDownloadPath": [ "[ARGUMENT=1]" ],
"pathActionServerUrl": [ "[OPTIONAL] [ARGUMENT=1] [ALIAS=pasu]" ],
"pathActionType": [ "[ARGUMENT=1]" ],
"pathActionKey": [ "[ARGUMENT=1]" ],
"pathActionKeyTo": [ "[ARGUMENT=1]" ],
"pathActionNameList": [ "[ARGUMENT=1+]" ],
"websocketTunnelServerUrl": [ "[OPTIONAL] [ARGUMENT=1] [ALIAS=wtsu]" ],
"authGenTag": [ "[OPTIONAL] [ARGUMENT=1] [ALIAS=agt]" ],
"authGenSize": [ "[ARGUMENT=1]" ],
"authGenTokenSize": [ "[ARGUMENT=1]" ],
"authGenTimeGap": [ "[ARGUMENT=1]" ],
"authGenInfo": [ "[ARGUMENT=1]" ],
"authFileDescribe": [ "[OPTIONAL] [ARGUMENT=0-1] [ALIAS=afd]" ],
"authCheckCodeGenerate": [ "[OPTIONAL] [ARGUMENT=0-1] [ALIAS=accg]" ],
"authCheckCodeVerify": [ "[OPTIONAL] [ARGUMENT=1-2] [ALIAS=accv]" ],
"fileList": [ "[OPTIONAL] [ARGUMENT=0-1] [ALIAS=ls]" ],
"fileListAll": [ "[OPTIONAL] [ARGUMENT=0-1] [ALIAS=lsR,lla]" ],
"fileTree": [ "[OPTIONAL] [ARGUMENT=0-1] [ALIAS=tree]" ],
"compress": [ "[OPTIONAL] [ARGUMENT=0-1]" ],
"extract": [ "[OPTIONAL] [ARGUMENT=0-1]" ],
"gitBranch": [ "[OPTIONAL] [ARGUMENT=0-1] [ALIAS=gb]" ],
"gitCommitHash": [ "[OPTIONAL] [ARGUMENT=0-1] [ALIAS=gch]" ],
"pingRace": [ "[OPTIONAL] [ARGUMENT=1+] [ALIAS=pr]" ],
"pingStat": [ "[OPTIONAL] [ARGUMENT=1+] [ALIAS=ps]" ],
"quickServerExplorer": [ "[OPTIONAL] [ARGUMENT=0-2] [ALIAS=qse]" ],
"eval": [ "[OPTIONAL] [ARGUMENT=0+]" ],
"repl": [ "[OPTIONAL] [ARGUMENT=0-1]" ],
"fetch": [ "[OPTIONAL] [ARGUMENT=1-4]" ],
"host": [ "[OPTIONAL] [ARGUMENT=1]" ],
"TLSSNIConfig": [ "[ARGUMENT=1]" ],
"TLSDhparam": [ "[ARGUMENT=1]" ],
"debugRoute": [ "[ARGUMENT=0-1]" ],
"logPath": [ "[ARGUMENT=1]" ],
"logFilePrefix": [ "[ARGUMENT=1]" ],
"pidFile": [ "[ARGUMENT=1]" ],
"pidIgnoreExist": [ "[ARGUMENT=0-1]" ],
"authKey": [ "[ARGUMENT=1]" ],
"authSkip": [ "[ARGUMENT=0-1]" ],
"authFile": [ "[ARGUMENT=1]" ],
"authFileGroupPath": [ "[ARGUMENT=1]" ],
"authFileGroupDefaultTag": [ "[ARGUMENT=1]" ],
"authFileGroupKeySuffix": [ "[ARGUMENT=1]" ],
"permissionType": [ "[ARGUMENT=1]" ],
"permissionFunc": [ "[ARGUMENT=1]" ],
"permissionFile": [ "[ARGUMENT=1]" ],
"fileRootPath": [ "[ARGUMENT=1]" ],
"fileRootPathPublic": [ "[ARGUMENT=1]" ],
"fileUploadMergePath": [ "[ARGUMENT=1]" ],
"explorer": [ "[ARGUMENT=0-1]" ],
"statCollectPath": [ "[ARGUMENT=1]" ],
"statCollectUrl": [ "[ARGUMENT=1]" ],
"statCollectInterval": [ "[ARGUMENT=1]" ],
"statReportProcessTag": [ "[ARGUMENT=1]" ],
"websocketTunnelHost": [ "[ARGUMENT=1]" ],
}