Add a script for log edition
This commit is contained in:
parent
03458bd434
commit
f24288b7df
118
scripts/log_editor.sh
Executable file
118
scripts/log_editor.sh
Executable file
@ -0,0 +1,118 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
log_directory=~/log
|
||||||
|
log_sample="Lundi:\n
|
||||||
|
\n
|
||||||
|
Mardi:\n
|
||||||
|
\n
|
||||||
|
Mercredi:\n
|
||||||
|
\n
|
||||||
|
Jeudi:\n
|
||||||
|
\n
|
||||||
|
Vendredi:\n
|
||||||
|
"
|
||||||
|
|
||||||
|
SPM=60
|
||||||
|
MPH=60
|
||||||
|
HPD=24
|
||||||
|
|
||||||
|
mode_available="view edit list toMail"
|
||||||
|
|
||||||
|
usage () {
|
||||||
|
echo "usage : $0 mode [date] "
|
||||||
|
echo "with mode in :"
|
||||||
|
for i in $mode_available;
|
||||||
|
do
|
||||||
|
echo -e "$i "
|
||||||
|
done
|
||||||
|
echo ""
|
||||||
|
}
|
||||||
|
|
||||||
|
read_date () {
|
||||||
|
if [ -z $1 ]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
day=${1#*_*_}
|
||||||
|
tmp=${1%_*}
|
||||||
|
month=${tmp#*_}
|
||||||
|
year=${tmp%_*}
|
||||||
|
|
||||||
|
old=$(date -d "$year-$month-$day" +%s)
|
||||||
|
new=$(date +%s)
|
||||||
|
|
||||||
|
diff=$new-$old
|
||||||
|
return $((diff / SPM / MPH / HPD))
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
check_valid_argument () {
|
||||||
|
needle=$1
|
||||||
|
for hay in $2; do
|
||||||
|
[[ $hay == $needle ]] && return 1
|
||||||
|
done
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
create_file () {
|
||||||
|
if [ ! -e $1 ]
|
||||||
|
then
|
||||||
|
mkdir -p $log_directory
|
||||||
|
echo -e $log_sample > $1
|
||||||
|
fi
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
view () {
|
||||||
|
read_date $1
|
||||||
|
date_arg=$?
|
||||||
|
curr_day=$(date --date="$date_arg days ago" +%u)
|
||||||
|
day_to_monday=$(($curr_day -1))
|
||||||
|
date_to_edit=$(date --date="$((date_arg + day_to_monday)) days ago" +%y_%m_%d)
|
||||||
|
|
||||||
|
file=$log_directory/$date_to_edit
|
||||||
|
|
||||||
|
create_file $file
|
||||||
|
more $log_directory/$date_to_edit
|
||||||
|
}
|
||||||
|
|
||||||
|
edit () {
|
||||||
|
read_date $1
|
||||||
|
date_arg=$?
|
||||||
|
curr_day=$(date --date="$date_arg days ago" +%u)
|
||||||
|
day_to_monday=$(($curr_day -1))
|
||||||
|
date_to_edit=$(date --date="$((date_arg + day_to_monday)) days ago" +%y_%m_%d)
|
||||||
|
|
||||||
|
file=$log_directory/$date_to_edit
|
||||||
|
|
||||||
|
create_file $file
|
||||||
|
${EDITOR} $log_directory/$date_to_edit
|
||||||
|
}
|
||||||
|
|
||||||
|
list () {
|
||||||
|
logs=$(ls $log_directory | sort)
|
||||||
|
echo "${logs}"
|
||||||
|
}
|
||||||
|
|
||||||
|
toMail () {
|
||||||
|
read_date $1
|
||||||
|
date_arg=$?
|
||||||
|
curr_day=$(date --date="$date_arg days ago" +%u)
|
||||||
|
day_to_monday=$(($curr_day -1))
|
||||||
|
day_to_friday=$((5 - $curr_day))
|
||||||
|
start_date=$(date --date="$((date_arg + day_to_monday)) days ago" +%y-%m-%d)
|
||||||
|
stop_date=$(date --date="$((date_arg + day_to_friday)) days" +%y-%m-%d)
|
||||||
|
echo "Weekly $start_date -> $stop_date"
|
||||||
|
view
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
check_valid_argument $1 "$mode_available"
|
||||||
|
valid=$?
|
||||||
|
|
||||||
|
if [[ $# -ge 1 && $valid = 1 ]]
|
||||||
|
then
|
||||||
|
eval $1 $2
|
||||||
|
else
|
||||||
|
usage
|
||||||
|
fi
|
||||||
|
|
Loading…
Reference in New Issue
Block a user