Fix symbolic link handling & arguments parameters.

This commit is contained in:
Glenn Y. Rolland 2013-06-04 17:02:52 +02:00
parent 95f1e4f036
commit a61d466bd1

101
bin/kotam
View file

@ -1,51 +1,104 @@
#!/bin/sh #!/bin/sh
set -u
KOTAM_DATA_DIR=$(dirname `readlink -f "$0"`)
KOTAM_DATA_DIR=$(cd "$KOTAM_DATA_DIR/../lib" ; pwd -P)
#echo $KOTAM_DATA_DIR
KOTAM_DATA_DIR=$(cd `dirname "$0"`; cd ../lib ; pwd )
KOTAM_CONFIG_DIR=$HOME/.config/kotam KOTAM_CONFIG_DIR=$HOME/.config/kotam
. $KOTAM_DATA_DIR/base.sh . $KOTAM_DATA_DIR/base.sh
## Expected usage :
# kotam_usage() {
# kotam exec <name> echo "Usage : `basename "$0"` [options]"
# kotam init <name> }
#
kotam_fail(){
printf "ERROR: $*\n\n" >&2
kotam_usage
exit 1
}
kotam_project_list() {
echo "List of projects :"
ls $KOTAM_CONFIG_DIR/*.kotam 2> /dev/null
}
kotam_project_edit() {
if [ ! -e "$KOTAM_CONFIG_DIR/$project.kotam" ]; then
kotam_fail "unknown project $project" >&2
fi
"$EDITOR" "$KOTAM_CONFIG_DIR/$project.kotam"
}
kotam_project_run(){
project="$arg"
if [ ! -e "$KOTAM_CONFIG_DIR/$project.kotam" ]; then
kotam_fail "unknown project $project" >&2
fi
. "$KOTAM_CONFIG_DIR/$project.kotam"
}
ACTION=""
PROJECT=""
mkdir -p $KOTAM_CONFIG_DIR mkdir -p $KOTAM_CONFIG_DIR
while [ $# -gt 0 ]; do while [ $# -gt 0 ]; do
arg=${1:-} arg=${1:-}
opt=${2:-} opt=${2:-}
case $arg in case $arg in
-l|--list) #list projects -l|--list)
echo "List of projects :" ACTION="list"
ls $KOTAM_CONFIG_DIR/*.kotam 2> /dev/null
;; ;;
-e) # edit project -e) # edit project
shift shift
project="$opt" if [ -z "$opt" ]; then
if [ -z "$project" ]; then kotam_fail "project name missing"
echo "ERROR: project name missing" >&2
exit 1
elif [ ! -e "$KOTAM_CONFIG_DIR/$project.kotam" ]; then
echo "ERROR: unknown project $project" >&2
exit 1
fi fi
"$EDITOR" "$KOTAM_CONFIG_DIR/$project.kotam" ACTION="edit"
PROJECT="$opt"
;; ;;
-c) # create -c) # create
shift
if [ -z "$opt" ]; then
kotam_fail "project name missing"
fi
ACTION="create"
PROJECT="$opt"
;; ;;
-d) # destroy -d) # delete
shift
if [ -z "$opt" ]; then
kotam_fail "project name missing"
fi
ACTION="delete"
PROJECT="$opt"
;; ;;
*) #enter into project *) #enter into project
project="$arg" ACTION="run"
if [ ! -e "$KOTAM_CONFIG_DIR/$project.kotam" ]; then
echo "ERROR: unknown project $project" >&2
exit 1
fi
. "$KOTAM_CONFIG_DIR/$project.kotam"
;; ;;
esac esac
shift shift
done done
case "$ACTION" in
list)
kotam_project_list
;;
create)
kotam__project_create
;;
edit)
kotam__project_edit
;;
delete)
kotam_project_delete
;;
*)
kotam_fail "undefined action $ACTION"
;;
esac