119 lines
2.0 KiB
Bash
Executable File
119 lines
2.0 KiB
Bash
Executable File
#!/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
|
|
|