diff options
-rwxr-xr-x | posts.sh | 17 |
1 files changed, 13 insertions, 4 deletions
@@ -2,6 +2,13 @@ | |||
2 | 2 | ||
3 | shopt -s extglob nullglob | 3 | shopt -s extglob nullglob |
4 | 4 | ||
5 | add_to_list() { | ||
6 | list=$(basename "$1") | ||
7 | file=$(basename "$2") | ||
8 | last_link=$(find ./lists/"$list" -regex '.*/[0-9]*$' -printf '%f\n' | sort | tail -n1) | ||
9 | new_link=$(printf '%03d\n' $(($last_link + 1))) | ||
10 | ln -s ../../posts/"$file" ./lists/"$list"/"$new_link" | ||
11 | } | ||
5 | 12 | ||
6 | new_post() { | 13 | new_post() { |
7 | filename="$1" | 14 | filename="$1" |
@@ -9,15 +16,13 @@ new_post() { | |||
9 | cat >posts/$filename <<EOF | 16 | cat >posts/$filename <<EOF |
10 | % $@ | 17 | % $@ |
11 | EOF | 18 | EOF |
12 | last_link=$(find ./lists/zz_all -regex '.*/[0-9]*$' -printf '%f\n' | sort | tail -n1) | 19 | add_to_list zz_all "$filename" |
13 | new_link=$(printf '%03d\n' $(($last_link + 1))) | ||
14 | ln -s ../../posts/"$filename" ./lists/zz_all/"$new_link" | ||
15 | } | 20 | } |
16 | 21 | ||
17 | 22 | ||
18 | . ./getopts_long.sh | 23 | . ./getopts_long.sh |
19 | 24 | ||
20 | while getopts_long ":n:" opt \ | 25 | while getopts_long ":n:a:" opt \ |
21 | "" "$@" | 26 | "" "$@" |
22 | do | 27 | do |
23 | case $opt in | 28 | case $opt in |
@@ -25,6 +30,10 @@ do | |||
25 | shift "$(($OPTLIND - 1))" | 30 | shift "$(($OPTLIND - 1))" |
26 | new_post "$OPTLARG" "$@" | 31 | new_post "$OPTLARG" "$@" |
27 | exit 0;; | 32 | exit 0;; |
33 | a) | ||
34 | shift "$(($OPTLIND - 1))" | ||
35 | for f in $@; do add_to_list "$OPTLARG" $f; done | ||
36 | exit 0;; | ||
28 | :) | 37 | :) |
29 | printf >&2 '%s: %s\n' "${0##*/}" "$OPTLERR" | 38 | printf >&2 '%s: %s\n' "${0##*/}" "$OPTLERR" |
30 | exit 1;; | 39 | exit 1;; |