tools.utils
2025-05-17
tools.utils/shell/new-task
+ shell утилиты
| 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 |