config/.local/bin/zet
2024-06-18 08:39:33 +09:30

81 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
if ! [ -x "$(command -v git)" ]; then
printf "please install git!\n"
exit 1
fi
if ! [ -d "$NOTE_DIR" ]; then
printf "please setup notes using \$NOTE_DIR!\n"
exit 1
fi
function got_to_notes {
log "changing to note dir: $NOTE_DIR"
cd "$NOTE_DIR" || (echo "can't find notebook dir" && exit 1)
}
function go_back {
log "returning user"
cd - || (echo "failed to return" || exit 1)
}
function sync {
log "syncing"
save
pull
push
}
function pull {
log "pulling remote"
got_to_notes
git pull || exit 1
go_back
}
function push {
log "pushing to remote"
got_to_notes
git push
go_back
}
function save {
log "saving all changes"
got_to_notes
git add .
git commit -am "saving up to $(date)"
go_back
}
function log {
echo "zet::log $(log_time): $1"
}
function error {
echo "zet::error $(log_time): $1"
}
function log_time {
date -u +"%Y-%m-%dT%H:%M:%SZ"
}
function help {
echo "zet::help: zet sync -- save, pull, push"
echo "zet::help: zet pull -- pull from remote"
echo "zet::help: zet push -- push to remote"
echo "zet::help: zet save -- save all changes"
}
# Check if the function exists (bash specific)
if declare -f "$1" > /dev/null
then
# call arguments verbatim
"$@"
else
# Show a helpful error
echo "'$1' is not a known option" >&2
exit 1
fi