1 unstable release
0.1.0 | Mar 8, 2023 |
---|
#2938 in Command line utilities
25KB
404 lines
bstools
bstools is a command line utility that allows other command line utilities and scripts to be conveniently organized, located, and executed. Support is available to:
- Execute other executables
- Create easy to remember aliases for other commands
- Execute Python scripts
- Execute Java JAR files
- Pass arguments to commands
Commands can be grouped into logical categories. For example, if you were to create a script called generate_uuid.py
and place it in a directory called dev
within the python
directory of the bstools home directory, it would be possible to execute the script with the following command:
bs dev generate_uuid.py
If you were unable to remember the name of the script, you could execute the following command to see a listing of scripts available within the dev
directory:
bs dev
Executing bs
would display a listing of directories and commands available at the root level.
Configuration
bstools will prompt you to create necessary environment variables.
BS_HOME
The BS_HOME environment variable must contain a path to a directory where commands will be located. The following directories will be automatically created within the BS_HOME directory:
- commands
- Stores aliases for existing commands.
- data
- Stores data to be used by other command line utilities.
- executables
- Stores executable files.
- java
- Stores executable JAR files.
- python
- Stores Python scripts.
BS_PYTHON
The BS_PYTHON environment variable must contain a path to the Python executable to use when executing Python scripts.
Examples
Commands
The commands
directory contains aliases for existing commands. For example, say the following file was created:
[BS-HOME]/commands/network/ping_alias
The ping_alias
file could contain the following contents:
ping -n %s -4 %s
bstools will replace the %s
tokens within the file with arguments supplied at the command line. The command could then be executed like so:
bs network ping_alias 5 localhost
bstools can also append arguments supplied at the command line to the command that it is executing. For example, the contents of the ping_alias
file could be changed to the following:
ping -n %s -4
The ping_alias
command could still be executed like so:
bs network ping_alias 5 localhost
Executables
The executables
directory stores other executable files to be executed by bstools. For example, say the following executable file existed at:
[BS-HOME]/executables/tools/example.exe
Say also that example.exe
expected the following command line arguments:
-v -s test1 test2
bstools could execute example.exe
with the following command:
bs tools example.exe -v -s test1 test2
Java
The java
directory stores executable JAR files to be executed by bstools. For example, say the following file existed at:
[BS-HOME]/java/tools/doSomething.jar
bstools could execute doSomething.jar
with the following command:
bs tools doSomething.jar
If doSomething.jar
accepted optional arguments, they could be provided like so:
bs tools doSomething.jar -v testIt
Python
The python
directory stores Python scripts to be executed by bstools. For example, say the following Python script existed at:
[BS-HOME]/python/dev/generate_uuid.py
Say also that generate_uuid.py
expected a command line argument that determined how many UUIDs to generate.
bstools could execute generate_uuid.py
with the following command to generate 10 UUIDs:
bs dev generate_uuid.py 10
Finding Commands
bstools will list the available directories and commands. Assuming all of the previous examples were available in the [BS-HOME]
directory, executing bs
would display the following options:
- dev
- network
- tools
Executing bs dev
would display generate_uuid.py
as an option.
Executing bs network
would display ping_alias
as an option.
Executing bs tools
would display example.exe
and doSomething.jar
as options.