Add main imag binary
This commit is contained in:
parent
33b6a89a02
commit
60d680b881
1 changed files with 63 additions and 0 deletions
63
bin/imag
Executable file
63
bin/imag
Executable file
|
@ -0,0 +1,63 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
version() {
|
||||
echo "0.1.0"
|
||||
}
|
||||
|
||||
help() {
|
||||
local cmds="$(commands)"
|
||||
|
||||
cat <<EOS
|
||||
Usage: imag [--version | -h | --help] <command> <args...>
|
||||
|
||||
imag - the personal information management suite for the commandline
|
||||
|
||||
imag is a PIM suite for the commandline. It consists of several commands,
|
||||
called "modules". Each module implements one PIM aspect and all of these
|
||||
modules can be used independently.
|
||||
|
||||
Available commands:
|
||||
$(for cmd in $cmds; do
|
||||
echo -e "\t$(echo $cmd | sed -r 's,(.*)/imag-(.*),\2,')";
|
||||
done)
|
||||
|
||||
Call a command with "imag <command> <args>"
|
||||
Each command can be called with "--help" to get the respective helptext.
|
||||
|
||||
Please visit https://github.com/matthiasbeyer/imag to view the source code,
|
||||
follow the development of imag or maybe even contribute to imag.
|
||||
|
||||
imag is free software. It is released under the terms of LGPLv2.1
|
||||
|
||||
(c) 2016 Matthias Beyer and contributors
|
||||
EOS
|
||||
}
|
||||
|
||||
commands() {
|
||||
[[ ! -z "$IMAG_IS_THE_SHIT" ]] && \
|
||||
find $IMAG_IS_THE_SHIT -type f -iname "imag-*" -print 2>/dev/null
|
||||
find ${PATH//:/ } -maxdepth 1 -type f -iname "imag-*" -print 2>/dev/null
|
||||
}
|
||||
|
||||
main() {
|
||||
case $1 in
|
||||
--version)
|
||||
version
|
||||
exit 0
|
||||
;;
|
||||
|
||||
--help | -h)
|
||||
help
|
||||
exit 0
|
||||
;;
|
||||
|
||||
*)
|
||||
local cmd=$1; shift
|
||||
local executable=$(commands | grep $cmd | head -n 1)
|
||||
exec $executable $*
|
||||
;;
|
||||
|
||||
esac
|
||||
}
|
||||
|
||||
main $*
|
Loading…
Reference in a new issue