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;; |
