tools.utils

Yohn Y. 2025-05-17

6:9fc60d528049 Go to Latest

tools.utils/shell/new-task

+ shell утилиты

History
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/shell/new-task	Sat May 17 11:31:31 2025 +0300
     1.3 @@ -0,0 +1,69 @@
     1.4 +#!/bin/sh
     1.5 +# devel.a0fs.ru -- tools:~/bin/new-task -- v0.r202505.1
     1.6 +### CONST
     1.7 +TASK_BASE="proj/tasks"
     1.8 +
     1.9 +### ARGS
    1.10 +# def args
    1.11 +args_global_task=0     # Расположение директории в глобальной наддиректории
    1.12 +                       # вместо текущего каталога
    1.13 +
    1.14 +### FUNC
    1.15 +die () {
    1.16 +	echo "$1" >&2
    1.17 +	exit 1
    1.18 +}
    1.19 +
    1.20 +# lib.getopts() -- v0.r202505.1
    1.21 +while getopts ":g" __OPT; do
    1.22 +  case ${__OPT} in
    1.23 +    \?)
    1.24 +      die "ERR: Unknown -$OPTARG"
    1.25 +      ;;
    1.26 +
    1.27 +    :)
    1.28 +      die "ERR: -$OPTARG need arguments"
    1.29 +      ;;
    1.30 +
    1.31 +    #  define :: Определение необходимых нам параметров
    1.32 +    g)
    1.33 +      args_global_task="1"
    1.34 +      ;;
    1.35 +
    1.36 +    # end define
    1.37 +  esac
    1.38 +done
    1.39 +shift $((OPTIND-1))
    1.40 +# end lib.getopts()
    1.41 +
    1.42 +
    1.43 +### VARS
    1.44 +task_name="$(date '+%Y%m%d') - $1"
    1.45 +
    1.46 +if [ "${args_global_task}" -eq 1 ] ; then
    1.47 +	task_dir="${HOME}/${TASK_BASE}/${task_name}"
    1.48 +
    1.49 +else
    1.50 +	task_dir="${task_name}"
    1.51 +fi
    1.52 +
    1.53 +
    1.54 +### DO
    1.55 +if [ -z "$task_name" ] ; then
    1.56 +	die "Нужно имя задачи для регистрации"
    1.57 +fi
    1.58 +
    1.59 +if [ -e "$task_dir" ]; then
    1.60 +	if [ ! -d "$task_dir" ] ; then
    1.61 +		die "Имя директории задачи уже нанято"
    1.62 +
    1.63 +	else
    1.64 +		cd "$task_dir"
    1.65 +		exec $SHELL
    1.66 +	fi
    1.67 +else
    1.68 +	mkdir -p "$task_dir"
    1.69 +	cd "$task_dir"
    1.70 +	exec $SHELL
    1.71 +fi
    1.72 +