file_rewriter - ключи, логи

This commit is contained in:
Artem Bliznetsov 2024-04-06 13:59:43 +03:00
parent 2960aee537
commit 596809827f

View File

@ -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 \)