From 596809827f6928ba560ebea77ea732287c72b3d0 Mon Sep 17 00:00:00 2001 From: Artem Bliznetsov Date: Sat, 6 Apr 2024 13:59:43 +0300 Subject: [PATCH] =?UTF-8?q?file=5Frewriter=20-=20=D0=BA=D0=BB=D1=8E=D1=87?= =?UTF-8?q?=D0=B8,=20=D0=BB=D0=BE=D0=B3=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- file_rewriter/file_rewriter => file_rewriter | 32 ++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) rename file_rewriter/file_rewriter => file_rewriter (53%) diff --git a/file_rewriter/file_rewriter b/file_rewriter similarity index 53% rename from file_rewriter/file_rewriter rename to file_rewriter index 9e71e33..642e13c 100755 --- a/file_rewriter/file_rewriter +++ b/file_rewriter @@ -6,14 +6,42 @@ # При отмене процесса, проверить файл export FILE_TMP_SUFFIX='file_rewriter' +export TMP_DIR='.' +export LOG_PATH='./file_rewriter.log' +export VERBOSE=0 +while [ -n "$1" ] +do + case "$1" in + -t) export TMP_DIR=$2 + shift ;; + -v) export VERBOSE=1 ;; + --) shift + break ;; + *) echo "Invalid option $1" + exit 1 ;; + esac + shift +done + +_exit_error () { + echo "Error cmd: $1" + exit 2 +} +export -f _exit_error _rewrite_file () { trap '' SIGINT TMP_PATH=${1}_${FILE_TMP_SUFFIX} ORIG_PATH=$1 - cp -p $ORIG_PATH $TMP_PATH && mv -f $TMP_PATH $ORIG_PATH + cmd="cp -p $ORIG_PATH $TMP_DIR/fr_tmp && mv -f $TMP_DIR/fr_tmp $ORIG_PATH" + if [[ $VERBOSE == 1 ]] + then + echo $cmd + fi + echo `date "+%Y-%m-%d %H:%M:%S": ` $cmd >> $LOG_PATH + eval $cmd || exit 2 trap - SIGINT return 0 } export -f _rewrite_file -find $1 -type f -print -exec bash -c '_rewrite_file "$0"' {} \; +find $1 -type f \( -print -exec bash -c '_rewrite_file "$0"' {} \; -o -quit \)