tools.utils
2025-05-17
Parent:a75ba21f4938
6:9fc60d528049 tip Browse Files
+ shell утилиты
shell/make-venv shell/new-task shell/new-tmp
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/shell/make-venv Sat May 17 11:31:31 2025 +0300 1.3 @@ -0,0 +1,20 @@ 1.4 +#!/bin/sh 1.5 +# devel.a0fs.ru -- DEV:TOOLS::~/bin/make-venv.sh -- v0.r202405.1 1.6 + 1.7 +p_prompt="$1" 1.8 +p_dir="$2" 1.9 + 1.10 +die () { 1.11 + echo "$1" >&2 1.12 + exit 1 1.13 +} 1.14 + 1.15 +if [ -z "${p_prompt}" ]; then 1.16 + die "Нужно указать название приложения в параметре" 1.17 +fi 1.18 + 1.19 +if [ -z "${p_dir}" ]; then 1.20 + p_dir="." 1.21 +fi 1.22 + 1.23 +exec python3 -m venv --upgrade-deps --prompt "${p_prompt}" "${p_dir}"
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 2.2 +++ b/shell/new-task Sat May 17 11:31:31 2025 +0300 2.3 @@ -0,0 +1,69 @@ 2.4 +#!/bin/sh 2.5 +# devel.a0fs.ru -- tools:~/bin/new-task -- v0.r202505.1 2.6 +### CONST 2.7 +TASK_BASE="proj/tasks" 2.8 + 2.9 +### ARGS 2.10 +# def args 2.11 +args_global_task=0 # Расположение директории в глобальной наддиректории 2.12 + # вместо текущего каталога 2.13 + 2.14 +### FUNC 2.15 +die () { 2.16 + echo "$1" >&2 2.17 + exit 1 2.18 +} 2.19 + 2.20 +# lib.getopts() -- v0.r202505.1 2.21 +while getopts ":g" __OPT; do 2.22 + case ${__OPT} in 2.23 + \?) 2.24 + die "ERR: Unknown -$OPTARG" 2.25 + ;; 2.26 + 2.27 + :) 2.28 + die "ERR: -$OPTARG need arguments" 2.29 + ;; 2.30 + 2.31 + # define :: Определение необходимых нам параметров 2.32 + g) 2.33 + args_global_task="1" 2.34 + ;; 2.35 + 2.36 + # end define 2.37 + esac 2.38 +done 2.39 +shift $((OPTIND-1)) 2.40 +# end lib.getopts() 2.41 + 2.42 + 2.43 +### VARS 2.44 +task_name="$(date '+%Y%m%d') - $1" 2.45 + 2.46 +if [ "${args_global_task}" -eq 1 ] ; then 2.47 + task_dir="${HOME}/${TASK_BASE}/${task_name}" 2.48 + 2.49 +else 2.50 + task_dir="${task_name}" 2.51 +fi 2.52 + 2.53 + 2.54 +### DO 2.55 +if [ -z "$task_name" ] ; then 2.56 + die "Нужно имя задачи для регистрации" 2.57 +fi 2.58 + 2.59 +if [ -e "$task_dir" ]; then 2.60 + if [ ! -d "$task_dir" ] ; then 2.61 + die "Имя директории задачи уже нанято" 2.62 + 2.63 + else 2.64 + cd "$task_dir" 2.65 + exec $SHELL 2.66 + fi 2.67 +else 2.68 + mkdir -p "$task_dir" 2.69 + cd "$task_dir" 2.70 + exec $SHELL 2.71 +fi 2.72 +
3.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 3.2 +++ b/shell/new-tmp Sat May 17 11:31:31 2025 +0300 3.3 @@ -0,0 +1,27 @@ 3.4 +#!/bin/sh 3.5 +# devel.a0fs.ru -- SA:TOOLS::~/bin/new-tmp -- v0.r202505.1 3.6 + 3.7 +ts="$(date "+%Y%m%d-%H%M%S")" 3.8 +prefix="$HOME/tmp" 3.9 + 3.10 +if [ "$1" ] ; then 3.11 + prefix="$(readlink -f "$1")" 3.12 + 3.13 + if ! [ -d "$prefix" ] ; then 3.14 + echo "ERROR: $prefix not directory" 3.15 + exit 1 3.16 + fi 3.17 +fi 3.18 + 3.19 +tmp_dir="${prefix}/${ts}" 3.20 + 3.21 +if [ -e "${tmp_dir}" ] ; then 3.22 + echo "ERROR: $tmp_dir already exists" 3.23 + exit 1 3.24 +fi 3.25 + 3.26 +mkdir -p "${tmp_dir}" 3.27 +cd "${tmp_dir}" 3.28 +exec "$SHELL" 3.29 + 3.30 +