103 lines
2.6 KiB
Bash
Executable File
103 lines
2.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
pat="/home/$USER/opt/journal"
|
|
ane=$(date +%Y)
|
|
auj=$(date +%d-%b | tr '[:upper:]' '[:lower:]')
|
|
|
|
editor="${EDITOR:-vi}"
|
|
|
|
if [[ $1 == "help" ]]; then
|
|
RESET="\033[0m"
|
|
BOLD="\033[1m"
|
|
ITA="\033[3m"
|
|
|
|
echo -e $BOLD"DESCRIPTION"$RESET
|
|
echo -e "\tjournal is a small journal manager"
|
|
echo -e ""
|
|
echo -e $BOLD"USAGE"$RESET
|
|
echo -e "\t"$BOLD"journal"$RESET" ["$ITA"date|file$RESET] ["$ITA"year|directorie$RESET]"
|
|
echo -e "\t\topen today journal entry unless specified"
|
|
echo -e "\t"$BOLD"journal"$RESET" "$ITA"command [arg...]"$RESET
|
|
echo -e "\t\tdo specific action, see commands section"
|
|
echo -e ""
|
|
echo -e $BOLD"EXAMPLES"$RESET
|
|
echo -e "\tjournal"
|
|
echo -e "\t\topen today's journal entry"
|
|
echo -e "\tjournal 02-jan"
|
|
echo -e "\t\topen journal entry of the 2 january of current year"
|
|
echo -e "\tjournal 18-sep 2024"
|
|
echo -e "\t\topen journal entry of the 18 september of 2024 year"
|
|
echo -e "\tjournal quiche recipes"
|
|
echo -e "\t\topen journal file named quiche in the recipes directorie"
|
|
echo -e ""
|
|
echo -e $BOLD"COMMANDS"$RESET
|
|
echo -e $BOLD"\tjournal help"$RESET
|
|
echo -e "\t\tshow this help message"
|
|
echo -e $BOLD"\tjournal git$RESET ["$ITA"arg...$RESET]"
|
|
echo -e "\t\texecute git command on the journal repo"
|
|
echo -e $BOLD"\tjournal save$RESET ["$ITA"message$RESET]"
|
|
echo -e "\t\tcommit change and push it with today date as commit message unless specified"
|
|
echo -e $BOLD"\tjournal list$RESET ["$ITA"year|directorie$RESET]"
|
|
echo -e "\t\tlist all entry of current year unless specified and show their first line"
|
|
echo -e $BOLD"\tjournal list-dir"$RESET
|
|
echo -e "\t\tlist all year directories and other directories"
|
|
echo -e $BOLD"\tjournal grep$RESET ["$ITA"arg...$RESET] "$ITA"patterns"$RESET
|
|
echo -e "\t\tsearch for patterns in all journal entry"
|
|
exit
|
|
fi;
|
|
|
|
if [[ $1 == "save" ]]; then
|
|
cd $pat
|
|
msg="$auj"
|
|
if [[ $2 != "" ]]; then
|
|
msg="${@:2}"
|
|
fi
|
|
git add .
|
|
git commit -am "$msg"
|
|
git push
|
|
exit
|
|
fi;
|
|
|
|
if [[ $1 == "git" ]]; then
|
|
cd $pat
|
|
git "${@:2}"
|
|
exit
|
|
fi;
|
|
|
|
if [[ $1 == "list" ]]; then
|
|
cd $pat/$ane
|
|
if [[ $2 != "" ]]; then
|
|
cd $pat/$2
|
|
fi
|
|
for f in $(ls); do
|
|
echo -n "$f: "
|
|
head -n 1 $f
|
|
done
|
|
exit
|
|
fi;
|
|
|
|
if [[ $1 == "list-dir" ]]; then
|
|
ls $pat
|
|
exit
|
|
fi;
|
|
|
|
if [[ $1 == "grep" ]]; then
|
|
cd $pat
|
|
grep --exclude-dir=.git -rnI ${@:2}
|
|
exit
|
|
fi;
|
|
|
|
if [[ $2 != "" ]]; then
|
|
mkdir -p $pat/$2
|
|
$editor $pat/$2/$1
|
|
exit
|
|
fi;
|
|
|
|
if [[ $1 != "" ]]; then
|
|
$editor $pat/$ane/$1
|
|
exit
|
|
fi;
|
|
|
|
mkdir -p $pat/$ane
|
|
$editor $pat/$ane/$auj
|