Shell-tools: Difference between revisions
Line 83: | Line 83: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Only the top level scripts should source libraries. | Other libraries should not source libraries. Only the top level scripts should source libraries: all dependency libraries should be sourced. Currently there is no automatic mechanism that will enforce that. If libraries are missing, there will be errors like: | ||
<syntaxhighlight lang='bash'> | |||
./something | |||
./lib/vagrant.shlib: line 10: check-bash-version: command not found | |||
./lib/vagrant.shlib: line 11: process-common-arguments: command not found | |||
./lib/vagrant.shlib: line 11: error: command not found | |||
</syntaxhighlight> | |||
=TODO= | =TODO= | ||
{{Internal|shell-tools TODO|shell-tools TODO}} | {{Internal|shell-tools TODO|shell-tools TODO}} |
Revision as of 00:13, 23 November 2019
Internal
Overview
A collection of ready-to-use command line tools. Includes searchjar, setw/cdw, lims, etc. Can be used both on Linux and Cygwin systems.
Configure a Script to Use the Libraries
#!/usr/bin/env bash
[[ -z "${SHLIB_DIR}" ]] && { echo "[error]: SHLIB_DIR not defined" 1>&2; exit 1; }
[[ -f ${SHLIB_DIR}/std.shlib ]] && . ${SHLIB_DIR}/std.shlib || { echo "[error]: ${SHLIB_DIR}/std.shlib not found" 1>&2; exit 1; }
std.shlib
TODO
On 04/04/16 a standalone std.shlib project was created. At that time, em contained its own version of std.shlib. Must migrate em to use the separated one. See std.shlib.
GitHub
To clone:
git clone git@github.com:NovaOrdis/shell-tools.git
Tools
- cdw/getw
- searchjar
- rename-intellij
- lims
- mac-setup
- b, t, d, r
Installation
cd ~/bin git clone git@github.com:NovaOrdis/shell-tools.git
Alternatively, read only access is available for an arbitrary Git account:
git clone https://<git-account>@github.com/NovaOrdis/shell-tools.git
Then edit ~/.bashrc as follows:
...
#
# shell-tools
#
alias cdw='. cdwi'
export PATH=~/bin/shell-tools:${PATH}
lib
Contains bash.shlib
, java.shlib
, etc.
lib Usage
Each library, when sourced, sets to true an environment variable composed by uppercasing the name of the library. In bash.shlib case, its BASH_SHLIB=true.
Any other library that needs bash.shlib must not source it, but do this instead:
${BASH_SHLIB} || { echo "bash.shlib was not sourced" 1>&2; exit 1; }
Other libraries should not source libraries. Only the top level scripts should source libraries: all dependency libraries should be sourced. Currently there is no automatic mechanism that will enforce that. If libraries are missing, there will be errors like:
./something
./lib/vagrant.shlib: line 10: check-bash-version: command not found
./lib/vagrant.shlib: line 11: process-common-arguments: command not found
./lib/vagrant.shlib: line 11: error: command not found