Allow to import notes without headers
This commit is contained in:
parent
dfe6ff0c69
commit
2cd09b260d
2 changed files with 72 additions and 3 deletions
21
notes.sh
21
notes.sh
|
@ -121,6 +121,7 @@ get_headers() {
|
|||
FILTER="\
|
||||
{ \
|
||||
if (\$0~/^$/) {exit} \
|
||||
if (\$0!~/^[^ ]*: .*$/) {exit} \
|
||||
print \$0 \
|
||||
} \
|
||||
"
|
||||
|
@ -132,8 +133,14 @@ get_body() {
|
|||
|
||||
FILTER="\
|
||||
{ \
|
||||
if (body==1) {print \$0}\
|
||||
if (body==1) {\
|
||||
print \$0;
|
||||
}\
|
||||
if (\$0~/^$/) {body=1} \
|
||||
if (\$0!~/^[^ ]*: .*$/ && body != 1) {\
|
||||
body=1;
|
||||
print \$0;
|
||||
} \
|
||||
} \
|
||||
"
|
||||
awk "$FILTER" "$BODY_FILE"
|
||||
|
@ -323,13 +330,21 @@ new_entry() {
|
|||
fi
|
||||
|
||||
if [ -f "$INP" ]; then
|
||||
cp "$INP" "$DIR/note.md"
|
||||
{
|
||||
get_headers "$INP"
|
||||
echo ""
|
||||
get_body "$INP"
|
||||
} >> "$DIR/note.md"
|
||||
elif [ -d "$INP" ]; then
|
||||
if [ ! -f "$INP/note.md" ]; then
|
||||
die "File doesn't exist: $INP/note.md"
|
||||
fi
|
||||
cp -n "$INP"/* "$DIR/" || true
|
||||
cat "$INP/note.md" >> "$DIR/note.md"
|
||||
{
|
||||
get_headers "$INP/note.md"
|
||||
echo ""
|
||||
get_body "$INP/note.md"
|
||||
} >> "$DIR/note.md"
|
||||
elif [ -t 0 ]; then
|
||||
"$EDITOR" "$ENTRY_FILE"
|
||||
else
|
||||
|
|
54
test.sh
54
test.sh
|
@ -292,6 +292,57 @@ pack_multipart_binary() {
|
|||
|
||||
assert 'echo "$OUTPUT"' "$EXPECTED"
|
||||
}
|
||||
|
||||
existing_headers() {
|
||||
mkdir "$TMP/inpdir"
|
||||
NOTE_ID="6e50650a-88d1-49a3-92eb-0ec329e6f6f8"
|
||||
DATE="2021-05-29T18:47:34Z"
|
||||
|
||||
cat > "$TMP/inpdir/note.md" <<- EOF
|
||||
X-Note-Id: $NOTE_ID
|
||||
X-Date: $DATE
|
||||
X-Custom: value
|
||||
Subject: This is a subject
|
||||
|
||||
# This is a body
|
||||
EOF
|
||||
|
||||
"$BASE_DIR/notes.sh" -n "$TMP/inpdir"
|
||||
OUTPUT="$(cat "$(pwd)/notes/cur"/*)"
|
||||
|
||||
assert 'echo "$OUTPUT" | grep Subject' "Subject: This is a subject"
|
||||
|
||||
assert 'echo "$OUTPUT" | grep X-Note-Id' "X-Note-Id: $NOTE_ID"
|
||||
assert 'echo "$OUTPUT" | grep X-Date' "X-Date: $DATE"
|
||||
assert 'echo "$OUTPUT" | grep X-Custom' "X-Custom: value"
|
||||
}
|
||||
|
||||
no_headers() {
|
||||
cat > "$TMP/input.md" <<- EOF
|
||||
This is a body
|
||||
EOF
|
||||
|
||||
"$BASE_DIR/notes.sh" -n "$TMP/input.md"
|
||||
OUTPUT="$(cat "$(pwd)/notes/cur"/*)"
|
||||
|
||||
assert 'echo "$OUTPUT" | grep Subject' "Subject: "
|
||||
assert 'echo "$OUTPUT" | grep "This is a body"' "This is a body"
|
||||
}
|
||||
|
||||
no_headers_dir() {
|
||||
mkdir "$TMP/inpdir"
|
||||
|
||||
cat > "$TMP/inpdir/note.md" <<- EOF
|
||||
This is a body
|
||||
EOF
|
||||
|
||||
"$BASE_DIR/notes.sh" -n "$TMP/inpdir"
|
||||
OUTPUT="$(cat "$(pwd)/notes/cur"/*)"
|
||||
|
||||
assert 'echo "$OUTPUT" | grep Subject' "Subject: "
|
||||
assert 'echo "$OUTPUT" | grep "This is a body"' "This is a body"
|
||||
}
|
||||
|
||||
testcase new_note_from_stdin
|
||||
testcase new_note_from_file
|
||||
testcase new_note_from_dir
|
||||
|
@ -301,6 +352,9 @@ testcase edit_note
|
|||
testcase resume_editing
|
||||
testcase pack_multipart
|
||||
testcase pack_multipart_binary
|
||||
testcase existing_headers
|
||||
testcase no_headers
|
||||
testcase no_headers_dir
|
||||
|
||||
if [[ "$RESULT" == "0" ]]; then
|
||||
echo "All tests passed."
|
||||
|
|
Loading…
Reference in a new issue