A CLI utility for Netlinx projects πππ
- Installation β‘
- Usage π
- Command Line π¨βπ»
- Configuration βοΈ
- Team β½
- Contributors β¨
- LICENSE βοΈ
Install genlinx globally with:
pnpm add -g @norgate-av/genlinx
# or
yarn global add @norgate-av/genlinx
# or
npm install -g @norgate-av/genlinx
To run genlinx simply type:
genlinx
_ _
__ _ ___ _ __ | (_)_ __ __ __
/ _` |/ _ \ '_ \| | | '_ / \/ /
| (_| | __/ | | | | | | | |> <
\__, |\___|_| |_|_|_|_| |_/_/\_\
|___/
Open source CLI tool for NetLinx projects
Copyright (c) 2024, Norgate AV Services Limited
https://github.com/Norgate-AV/genlinx
===================================================
Usage: genlinx [options] [command]
cli helper utility for NetLinx projects πππ
Options:
-v, --version output the version number
-h, --help display help for command
Commands:
archive [options] generate a NetLinx workspace zip archive
build [options] build a NetLinx workspace or individual source file(s)
cfg [options] generate NetLinx build CFG files
config [options] [key] view/edit configuration properties for genlinx
find [options] find NetLinx devices on a local broadcast subnet
help [command] display help for command
===================================================
For more help, make sure to check out the man page:
$ man genlinx
Generate a NetLinx workspace zip archive.
Usage: genlinx archive [options]
generate a NetLinx workspace zip archive
Options:
-w, --workspace-files <string...> workspace file(s) to generate archive(s) for (default: search for workspace files in current directory)
-o, --output-file-suffix <string> output file suffix
-S, --include-compiled-source-files include compiled source files
-M, --include-compiled-module-files include compiled module files
-N, --include-files-not-in-workspace include files not in workspace
-l, --extra-file-search-locations <string...> extra file locations to search
-p, --extra-file-archive-location <string> location to place extra files in the archive
--verbose verbose output
-h, --help display help for command
Build a NetLinx workspace or individual source file(s)
Usage: genlinx build [options]
build a NetLinx workspace or individual source file(s)
Options:
-c, --cfg-files <string...> cfg file(s) to build from (default: search for CFG files in current directory)
-s, --source-files <string...> axs source file(s) to build
-i, --include-path <string...> add additional include paths
-m, --module-path <string...> add additional module paths
-l, --library-path <string...> add additional library paths
-a, --all select all cfg files without prompting
-A, --no-all select multiple cfg files with a prompt
--verbose verbose output (default: false)
-h, --help display help for command
Generate a NetLinx build CFG file
Usage: genlinx cfg [options]
generate NetLinx build CFG files
Options:
-w, --workspace-files <string...> workspace file(s) to generate a CFG for (default: search for workspace files in current directory)
-r, --root-directory <string> root directory reference (default: use current directory as root)
-o, --output-file-suffix <string> output file suffix
-f, --output-log-file-suffix <string> output log file suffix
-k, --output-log-file-option <string> output log file option
A - append
N - overwrite (choices: "A", "N")
-c, --output-log-console-option output log to console
-C, --no-output-log-console-option do not output log to console
-d, --build-with-debug-information build with debug information
-D, --no-build-with-debug-information do not build with debug information
-s, --build-with-source build with source
-S, --no-build-with-source do not build with source
-i, --include-path <string...> add additional include paths
-m, --module-path <string...> add additional module paths
-l, --library-path <string...> add additional library paths
-a, --all if no workspace files are specified with the -w option and more than one
workspace file is found in the current directory, select all of them
without prompting
-A, --no-all if no workspace files are specified with the -w option and more than one
workspace file is found in the current directory, prompt to select which
workspace files to use
--verbose verbose output
-h, --help display help for command
Edit configuration properties for genlinx
Usage: genlinx config [options] [key]
view/edit configuration properties for genlinx
Arguments:
key configuration key
Options:
--global use global configuration
--local use local configuration
-l, --list display the configuration in stdout
-e, --edit edit the configuration with default text editor
-h, --help display help for command
Find Netlinx devices on a local broadcast subnet
Usage: genlinx find [options]
find NetLinx devices on a local broadcast subnet
Options:
-j, --json output as JSON
-h, --help display help for command
{
"cfg": {
"outputFile": "build.cfg",
"outputLogFile": "build.log",
"outputLogFileOption": "N",
"outputLogConsoleOption": true,
"buildWithDebugInformation": false,
"buildWithSource": false,
"includePath": ["C:/Program Files (x86)/Common Files/AMXShare/AXIs"],
"modulePath": [
"C:/Program Files (x86)/Common Files/AMXShare/Duet/bundle",
"C:/Program Files (x86)/Common Files/AMXShare/Duet/lib",
"C:/Program Files (x86)/Common Files/AMXShare/Duet/module"
],
"libraryPath": ["C:/Program Files (x86)/Common Files/AMXShare/SYCs"],
"all": false
},
"archive": {
"outputFile": "archive.zip",
"includeCompiledSourceFiles": true,
"includeCompiledModuleFiles": true,
"includeFilesNotInWorkspace": true,
"extraFileSearchLocations": [
"C:/Program Files (x86)/Common Files/AMXShare"
],
"extraFileArchiveLocation": ".genlinx",
"all": false,
"ignoredFiles": [
"G4API.axi",
"NetLinx.axi",
"SNAPI.axi",
"UnicodeLib.axi",
"componentssdk.jar",
"componentssdkrt.jar",
"DeviceDriverEngine.jar",
"devicesdkrt.jar",
"jregex1.2_01-bundle.jar",
"js-14-bundle.jar",
"json-bundle.jar",
"picocontainer-1.3-bundle.jar",
"snapirouter.jar",
"snapirouter2.jar"
]
},
"build": {
"nlrc": {
"path": "C:/Program Files (x86)/Common Files/AMXShare/COM/NLRC.exe",
"option": {
"cfg": "-CFG",
"includePath": "-I",
"modulePath": "-M",
"libraryPath": "-L"
},
"includePath": [
"C:/Program Files (x86)/Common Files/AMXShare/AXIs"
],
"modulePath": [
"C:/Program Files (x86)/Common Files/AMXShare/Duet/bundle",
"C:/Program Files (x86)/Common Files/AMXShare/Duet/lib",
"C:/Program Files (x86)/Common Files/AMXShare/Duet/module"
],
"libraryPath": ["C:/Program Files (x86)/Common Files/AMXShare/SYCs"]
},
"shell": {
"path": "C:/Windows/System32/cmd.exe"
},
"all": false,
"createCfg": true
}
}
A global configuration file can be installed to %USERPROFILE%\.config\genlinx\config.json
to assist in using genlinx. This file can be edited to change the default values for the commands options.
If you would like to use a different location to store the global configuration file, you can set the GENLINX_CONFIG_DIR
environment variable to the path of the directory you would like to use. This directory must contain the config.json
file.
A local configuration file can be used to override parts of global configuration file. This file should be placed in the same directory as the apw
file and should be named .genlinxrc.json
. The local configuration file will override only the parts you define. You don't have to redefine the entire configuration.
To override the global configuration and not include compiled source or module files in the archive for a particular project, create a .genlinxrc.json
file in the same directory as the apw
file and add the following:
{
"archive": {
"includeCompiledSourceFiles": false,
"includeCompiledModuleFiles": false
}
}
Options passed by via the CLI have the highest precedence and will override any configuration file options. However, additional paths passed via the CLI will be appended to the configuration file paths.
The precedence of the configuration options is as follows:
- Command Line
- Local Configuration File
- Global Configuration File
- Default Configuration
This project is maintained by the following person(s) and a bunch of awesome contributors.
Damien Butt |
Thanks go to these awesome people (emoji key):
Dependabot π§ |
Imgbot π§ |
This project follows the all-contributors specification. Contributions of any kind are welcome!
Check out the contributing guide for more information.