Generalized newday into agenda and added more capabilities.
Added `sshp`, a wrapper for ssh that also allows SSHFS mounts during connection.
This commit is contained in:
parent
33ca0e1422
commit
021e4d3b44
3 changed files with 121 additions and 12 deletions
59
agenda
Executable file
59
agenda
Executable file
|
|
@ -0,0 +1,59 @@
|
|||
#!/bin/bash
|
||||
# This script is intended to be run via cron.
|
||||
|
||||
# It creates a folder structure in home for the current date in the following format:
|
||||
# $HOME/<Tag>/<Year>/<Month>/<Day>
|
||||
|
||||
# It also sets up a symlink for the tagged folder.
|
||||
# This symlink will always point to the folder for the current date.
|
||||
|
||||
# Finally, it removes any folders without data, to prevent clutter.
|
||||
|
||||
LD_INTERNAL=1
|
||||
. $(dirname $(realpath $0))/daisy.source
|
||||
|
||||
if [[ $1 == '' ]]; then
|
||||
echo "Usage: $LD_BIN <folder>"
|
||||
echo "Creates a folder within '.daisy' in the current directory containing"
|
||||
echo "a tree of dates associated with the folder name given by argument."
|
||||
echo "A symlink is (re-)created at the same time with the same folder name."
|
||||
echo "For example, if given the folder 'notes', this utility will:"
|
||||
echo "- Create a folder '/.daisy/notes/<year>/<month>/<day>'."
|
||||
echo "- Create a symlink named 'notes' that points to it."
|
||||
echo "It is recommended to run this via cron."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
root_dir=$(dirname $1)/.daisy/$(basename $1)
|
||||
today_sym=$1
|
||||
|
||||
# Present day
|
||||
today=$(date -I)
|
||||
year=$(echo $today | awk -F"-" '{print $1}')
|
||||
month=$(echo $today | awk -F"-" '{print $2}')
|
||||
day=$(echo $today | awk -F"-" '{print $3}')
|
||||
|
||||
set -e
|
||||
|
||||
function errorFn()
|
||||
{
|
||||
error=$?
|
||||
if [[ $error -gt 0 ]];
|
||||
then
|
||||
echo "$LD_BIN error ($error): "
|
||||
perl -E 'say $!=shift' $error
|
||||
fi
|
||||
exit $error
|
||||
}
|
||||
|
||||
# Error handling
|
||||
trap errorFn ERR
|
||||
|
||||
# First we clear out empty folders, and remove the symlink if it exists
|
||||
test -e "$root_dir" && find "$root_dir" -maxdepth 3 -type d -empty -print | xargs rm -rf
|
||||
test -L "$today_sym" && rm -rf "$today_sym"
|
||||
|
||||
# Now we can set up today's directory
|
||||
mkdir -p "$root_dir/$year/$month/$day"
|
||||
ln -s "$root_dir/$year/$month/$day" "$today_sym"
|
||||
exitcode=@?
|
||||
Loading…
Add table
Add a link
Reference in a new issue