blob: 8841521c456938ebc58db61706f98e68e644999d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
# check if GITCLIENT has been set or set it to the output of hostname
if [ -z $GITCLIENT ]; then
GITCLIENT=$( hostname )
fi
# returns true if the argument provided directory is a git repository
is_git_repo() {
DIR=$1
if [[ -d $DIR ]]; then
cd $DIR
if git rev-parse 2>/dev/null; then
true
else
false
fi
fi
}
# sync local repository to remote
gitsync() {
if [[ $USEGIT && -n $GITREMOTE ]]; then
NOWSYNC=$(date +%s)
# LASTSYNC is the last time we synced to the remote, or 0 if it's the first time.
LASTSYNC=$($JQ -r '.git["lastpull"] // 0' "$DB")
[ $PLAIN == false ] && echo "Syncing notes with git on remote \"$GITREMOTE\""
SYNCDIFF=$(( ${NOWSYNC} - ${LASTSYNC} ))
if (( $SYNCDIFF > $GITSYNCDELAY )); then
#more than our delay time has passed. We can sync again.
$JQ --arg n "$NOWSYNC" '.git["lastpull"] = $n' "$DB" > $TMPDB
mv $TMPDB $DB
cd $BASEDIR
$GIT pull
else
# Last synced less than $GITSYNCDELAY seconds ago. We shall wait
[ $PLAIN == false ] && echo "Last synced less than $GITSYNCDELAY seconds ago. We shall wait"
fi
else
# no git, so we just keep going
true
fi
}
# add note to git and push it to remote
gitadd() {
if [[ $USEGIT && -n $GITREMOTE ]]; then
[ $PLAIN == false ] && echo "Adding note to remote \"$GITREMOTE\""
cd $BASEDIR
$GIT add .
$GIT commit -m "$(basename $0) - adding note from ${GITCLIENT}"
$GIT push origin master
else
# no git, so we just keep going
true
fi
}
# check for USEGIT and subsequent variables
if [[ $USEGIT && -n $GITREMOTE ]]; then
# GIT is a go.
if ! is_git_repo $BASEDIR; then
# initializing git repository
cd $BASEDIR
$GIT init
echo "adding all files to git"
$GIT add .
$GIT commit -m "$(basename $0) - initial commit from ${GITCLIENT}"
$GIT remote add origin $GITREMOTE
$GIT push -u origin master
fi
elif [[ $USEGIT && -z $GITREMOTE ]]; then
echo "GITREMOTE variable not set. reverting USEGIT to false"
USEGIT=false
fi
|