-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathjustfile
79 lines (69 loc) · 2.21 KB
/
justfile
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
set dotenv-load := true
set export := true
set positional-arguments := true
env := ".env"
version := "0.2.0"
folder:="~/Obsidian"
_default:
@just --list --unsorted
watch:
#!/usr/bin/env bash
echo "Surveillance du dossier $PWD"
# Permet de changer de version de Watchexec, car son comportement diffère selon les versions
watchexec=watchexec
# watchexec="/home/ngirard/soft/watchexec/watchexec-1.15.1-x86_64-unknown-linux-gnu/watchexec"
# @echo Surveillance du dossier {{folder}}
"${watchexec}" -p -w {{folder}} -e md -i './at/' --debounce 500 "just handle_md"
handle_md:
#!/usr/bin/env bash
ix=~/Documents/index.sqlite
parse(){
local path="$1"
rg --no-heading --with-filename --no-line-number -t md '^(`ID`:: )([0-9a-z]{3,6})(\s*)' -r '$2' -- "${path}" \
| rg '^(.*)/(.*):([0-9a-z]{3,6})' -r '$3:$2' \
| sd -s "'" "''"
}
db_replace(){
rargs -p '(?P<id>.*):(?P<path>.*)' \
sqlite3 -echo "${ix}" \
"replace into notes (id,path) values (\
'{id}',
'{path}' \
)"
}
handle_path(){
path="$1"
[[ ! -f "${path}" ]] && {
echo "Not a file: ${path}"
exit 1
}
parse "${path}" | db_replace
#echo parse "${path}"
exit 0
}
handle_paths(){
local parent="$1"
local f
IFS=\: read -r -a paths <<< "$2"
for path in "${paths[@]}"; do
f="${parent}/${path}"
[[ -f "${f}" ]] && handle_path "${f}"
done
}
echo "WATCHEXEC_COMMON_PATH = $WATCHEXEC_COMMON_PATH"
echo "WATCHEXEC_CREATED_PATH = $WATCHEXEC_CREATED_PATH"
echo "WATCHEXEC_META_CHANGED_PATH= $WATCHEXEC_META_CHANGED_PATH"
echo "WATCHEXEC_REMOVED_PATH = $WATCHEXEC_REMOVED_PATH"
echo "WATCHEXEC_RENAMED_PATH = $WATCHEXEC_RENAMED_PATH"
echo "WATCHEXEC_WRITTEN_PATH = $WATCHEXEC_WRITTEN_PATH"
if [[ -n "${WATCHEXEC_CREATED_PATH}" ]]; then
handle_paths "${WATCHEXEC_COMMON_PATH}" "${WATCHEXEC_CREATED_PATH}"
exit 0
elif [[ -n "${WATCHEXEC_RENAMED_PATH}" ]]; then
handle_paths "${WATCHEXEC_COMMON_PATH}" "${WATCHEXEC_RENAMED_PATH}"
exit 0
elif [[ -n "${WATCHEXEC_WRITTEN_PATH}" ]]; then
handle_paths "${WATCHEXEC_COMMON_PATH}" "${WATCHEXEC_WRITTEN_PATH}"
exit 0
fi
exit 0