forked from Indyandie/last-day
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgen-md
More file actions
executable file
·98 lines (78 loc) · 2.82 KB
/
gen-md
File metadata and controls
executable file
·98 lines (78 loc) · 2.82 KB
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#!/usr/bin/env zsh
# start
START_TIME=`date`
echo "Started at: $START_TIME"
LD="$HOME/.last-day"
test -d $LD && rm -rf $LD && mkdir $LD || mkdir $LD
# Fetch dayone files
DO="$HOME/Library/Group Containers/5U8NS4GX82.dayoneapp2/Data/Documents"
cp -r $DO/DayOneAudios $DO/DayOnePhotos $DO/DayOnePDFAttachments $DO/DayOne.sqlite $LD/
# create CSV with attachment info
ATTACH=$LD/attachment.csv
sqlite3 -csv $LD/DayOne.sqlite "SELECT ZMD5, ZIDENTIFIER, ZDO_ENTITYNAME, ZTYPE FROM ZATTACHMENT;" > $ATTACH
MAINDIR="$LD/day-one-export"
test -d $MAINDIR && rm -rf $MAINDIR || mkdir -p $MAINDIR
create_md_file() {
ID=$1
CREATION_DATE=$2
FILE_NAME=$3
DIR=$4
ALTITUDE=$5
LONGITUDE=$6
STATE=$7
CITY=$8
ADDRESS=$9
PLACE_NAME=$10
CONDITIONSDESCRIPTION=$11
WEATHER_CODE=$12
MD=$13
FILE_NAME=`echo $FILE_NAME | sed 's/[^a-zA-Z0-9\.\-]//g'`
FILE_NAME="`echo $FILE_NAME | sed -E 's/ /-/g' | sed -E 's/[()]//g' | sed -E 's/_$//g' | tr '[:upper:]' '[:lower:]'`.md"
DIR=`echo $DIR | sed 's/[^a-zA-Z0-9\.\-]//g'`
MD=`echo $MD | sed 's/@@@/\n/g'`
MD=`echo $MD | sed 's/^"//g'`
MD=`echo $MD | sed 's/"$//g'`
MD=`echo $MD | sed 's/\n{3}/\n/g'`
MD=`zsh fmt-links $MD $ATTACH`
MD="---
created_date: $CREATION_DATE
altitude: $ALTITUDE
longitude: $LONGITUDE
state: $STATE
city: $CITY
address: $ADDRESS
place_name: $PLACE_NAME
conditions_description: $CONDITIONSDESCRIPTION
weather_code: $WEATHER_CODE
---
$MD"
# CREATE THE FILE
test -d "$MAINDIR/$DIR" || mkdir -p "$MAINDIR/$DIR"
CREATION_DATE=$(date -j -f "%Y-%m-%d" "$CREATION_DATE" "+%B %d, %Y")
FILE_PATH="$MAINDIR/$DIR/$FILE_NAME"
echo $MD > $FILE_PATH
}
sqlite3 -csv $LD/DayOne.sqlite "`cat query-entry.sql`" > $LD/ladaex.csv
# Replace new line within ""
awk -v RS='"' 'NR % 2 == 0 { gsub("\n", "@@@") } { printf("%s%s", $0, RT) }' $LD/ladaex.csv | sed 's/^"//; s/"$//; s/""/"/g' > $LD/ladaex-fmt.csv && rm $LD/ladaex.csv
exec < "$LD/ladaex-fmt.csv"
read header
while IFS=, read -A row
do
create_md_file $row
done
cp -r $LD/DayOnePDFAttachments $LD/day-one-export/pdfattachment
cp -r $LD/DayOnePhotos $LD/day-one-export/photo
cp -r $LD/DayOneAudios $LD/day-one-export/audio
rm -rf $LD/DayOneAudios $LD/DayOnePhotos $LD/DayOnePDFAttachments $LD/attachment.csv $LD/ladaex-fmt.csv
TOTALDIR=`ls $MAINDIR | wc -l | sed -E 's#[^0-9]*([0-9]+)[^0-9]*#\1#g'`
ENTRYDIRCOUNT=`ls $MAINDIR | grep -vE "photo|pdf|audio" | wc -l | sed -E 's#[^0-9]*([0-9]+)[^0-9]*#\1#g'`
ENTRYCOUNT=`find $MAINDIR -type f | grep -vE "photo|pdf|audio" | wc -l | sed -E 's#[^0-9]*([0-9]+)[^0-9]*#\1#g'`
INFO="$ENTRYDIRCOUNT journals, $ENTRYCOUNT entries"
# end
END_TIME=`date`
echo "Completed at: $END_TIME"
START_TIME=$(date -j -f "%a %b %d %H:%M:%S %Z %Y" "$START_TIME" "+%s")
END_TIME=$(date -j -f "%a %b %d %H:%M:%S %Z %Y" "$END_TIME" "+%s")
DURATION=$(($END_TIME - $START_TIME))
echo "Duration: $DURATION seconds\n\n$INFO"