tools.utils

Yohn Y. 2025-05-17

6:9fc60d528049 Go to Latest

tools.utils/shell/new-task

+ shell утилиты

History
awgur@6 1 #!/bin/sh
awgur@6 2 # devel.a0fs.ru -- tools:~/bin/new-task -- v0.r202505.1
awgur@6 3 ### CONST
awgur@6 4 TASK_BASE="proj/tasks"
awgur@6 5
awgur@6 6 ### ARGS
awgur@6 7 # def args
awgur@6 8 args_global_task=0 # Расположение директории в глобальной наддиректории
awgur@6 9 # вместо текущего каталога
awgur@6 10
awgur@6 11 ### FUNC
awgur@6 12 die () {
awgur@6 13 echo "$1" >&2
awgur@6 14 exit 1
awgur@6 15 }
awgur@6 16
awgur@6 17 # lib.getopts() -- v0.r202505.1
awgur@6 18 while getopts ":g" __OPT; do
awgur@6 19 case ${__OPT} in
awgur@6 20 \?)
awgur@6 21 die "ERR: Unknown -$OPTARG"
awgur@6 22 ;;
awgur@6 23
awgur@6 24 :)
awgur@6 25 die "ERR: -$OPTARG need arguments"
awgur@6 26 ;;
awgur@6 27
awgur@6 28 # define :: Определение необходимых нам параметров
awgur@6 29 g)
awgur@6 30 args_global_task="1"
awgur@6 31 ;;
awgur@6 32
awgur@6 33 # end define
awgur@6 34 esac
awgur@6 35 done
awgur@6 36 shift $((OPTIND-1))
awgur@6 37 # end lib.getopts()
awgur@6 38
awgur@6 39
awgur@6 40 ### VARS
awgur@6 41 task_name="$(date '+%Y%m%d') - $1"
awgur@6 42
awgur@6 43 if [ "${args_global_task}" -eq 1 ] ; then
awgur@6 44 task_dir="${HOME}/${TASK_BASE}/${task_name}"
awgur@6 45
awgur@6 46 else
awgur@6 47 task_dir="${task_name}"
awgur@6 48 fi
awgur@6 49
awgur@6 50
awgur@6 51 ### DO
awgur@6 52 if [ -z "$task_name" ] ; then
awgur@6 53 die "Нужно имя задачи для регистрации"
awgur@6 54 fi
awgur@6 55
awgur@6 56 if [ -e "$task_dir" ]; then
awgur@6 57 if [ ! -d "$task_dir" ] ; then
awgur@6 58 die "Имя директории задачи уже нанято"
awgur@6 59
awgur@6 60 else
awgur@6 61 cd "$task_dir"
awgur@6 62 exec $SHELL
awgur@6 63 fi
awgur@6 64 else
awgur@6 65 mkdir -p "$task_dir"
awgur@6 66 cd "$task_dir"
awgur@6 67 exec $SHELL
awgur@6 68 fi
awgur@6 69