Display and search zets from a temporary file
This commit is contained in:
parent
819619d1bd
commit
cd9460c7db
1 changed files with 15 additions and 18 deletions
33
zet
33
zet
|
@ -4,8 +4,13 @@ set -euo pipefail
|
||||||
|
|
||||||
EDITOR="${EDITOR:-nvim}"
|
EDITOR="${EDITOR:-nvim}"
|
||||||
ZET_DIR="$HOME/Documents/zet"
|
ZET_DIR="$HOME/Documents/zet"
|
||||||
|
ZET_TMP="$ZET_DIR/.zets"
|
||||||
|
|
||||||
mkdir -p "$ZET_DIR"
|
if [[ ! -d "$ZET_DIR" ]]; then
|
||||||
|
mkdir -p "$ZET_DIR"
|
||||||
|
touch "$ZET_TMP"
|
||||||
|
echo "/.zets" > "$ZET_DIR/.gitignore"
|
||||||
|
fi
|
||||||
|
|
||||||
commit_changes() {
|
commit_changes() {
|
||||||
filename="$1"
|
filename="$1"
|
||||||
|
@ -35,6 +40,8 @@ delete_zet() {
|
||||||
|
|
||||||
if [[ -d "$dir" ]]; then
|
if [[ -d "$dir" ]]; then
|
||||||
mv -v "$dir" "/tmp/zet-${id}"
|
mv -v "$dir" "/tmp/zet-${id}"
|
||||||
|
|
||||||
|
# TODO: Delete from $ZET_TMP.
|
||||||
else
|
else
|
||||||
echo "Note not found: $id" >&2
|
echo "Note not found: $id" >&2
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -50,6 +57,8 @@ edit_zet() {
|
||||||
"$EDITOR" "$file"
|
"$EDITOR" "$file"
|
||||||
|
|
||||||
commit_changes "$file" "Edited $file"
|
commit_changes "$file" "Edited $file"
|
||||||
|
|
||||||
|
# TODO: Update $ZET_TMP if the title is changed.
|
||||||
else
|
else
|
||||||
result="$(search_zets "$query")"
|
result="$(search_zets "$query")"
|
||||||
result_count="$(echo "$result" | grep -c '^')"
|
result_count="$(echo "$result" | grep -c '^')"
|
||||||
|
@ -98,11 +107,13 @@ main() {
|
||||||
}
|
}
|
||||||
|
|
||||||
new_zet() {
|
new_zet() {
|
||||||
filename="${ZET_DIR}/$(date "+%Y%m%d%H%M%S")/index.adoc"
|
date="$(date "+%Y%m%d%H%M%S")"
|
||||||
|
filename="${ZET_DIR}/$date/index.adoc"
|
||||||
mkdir -p "$(dirname "$filename")"
|
mkdir -p "$(dirname "$filename")"
|
||||||
|
|
||||||
title="$*"
|
title="$*"
|
||||||
echo "= $title" > "$filename"
|
echo "= $title" > "$filename"
|
||||||
|
echo "$date $title" >> "$ZET_TMP"
|
||||||
|
|
||||||
"$EDITOR" "$filename"
|
"$EDITOR" "$filename"
|
||||||
|
|
||||||
|
@ -115,25 +126,11 @@ run_git_command() {
|
||||||
}
|
}
|
||||||
|
|
||||||
search_zets() {
|
search_zets() {
|
||||||
query="$*"
|
grep --ignore-case "$*" < "$ZET_TMP"
|
||||||
|
|
||||||
grep --files-with-matches --recursive --ignore-case "$query" "$ZET_DIR" | grep '/index\.adoc$' | while read -r filepath; do
|
|
||||||
dirpath=$(dirname "$filepath")
|
|
||||||
relpath="${dirpath#"$ZET_DIR/"}"
|
|
||||||
|
|
||||||
echo -n "$relpath "
|
|
||||||
|
|
||||||
head -n 1 "$filepath" | sed 's/^= //'
|
|
||||||
done
|
|
||||||
}
|
}
|
||||||
|
|
||||||
show_titles() {
|
show_titles() {
|
||||||
find "$ZET_DIR" -type f -name 'index.adoc' | while read -r filename; do
|
cat "$ZET_TMP"
|
||||||
id=$(basename "$(dirname "$filename")")
|
|
||||||
title=$(head -n 1 "$filename" | sed 's/^= //' | sed 's/^# //')
|
|
||||||
|
|
||||||
echo "$id $title"
|
|
||||||
done | sort
|
|
||||||
}
|
}
|
||||||
|
|
||||||
show_zet() {
|
show_zet() {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue