From 8d2378fe2bc65668d45e64dd87ea51aecc32547e Mon Sep 17 00:00:00 2001 From: Antoine Amarilli Date: Fri, 17 Sep 2010 22:12:36 +0200 Subject: grep and sed bugfix --- html-gen.sh | 48 ++++++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/html-gen.sh b/html-gen.sh index 1029c25..ef03fc8 100644 --- a/html-gen.sh +++ b/html-gen.sh @@ -54,25 +54,25 @@ get_article_info() { git log --format="$1" -- "$articles_dir/$2" } get_article_next_file() { - next=`grep -B1 "$1" "$articles_sorted" | head -1` + next=`grep -B1 "^$1$" "$articles_sorted" | head -1` if [ "$next" != "$1" ]; then echo "$next" fi } get_article_previous_file() { - previous=`grep -A1 "$1" "$articles_sorted" | tail -1` + previous=`grep -A1 "^$1$" "$articles_sorted" | tail -1` if [ "$previous" != "$1" ]; then echo "$previous" fi } get_deleted_next_file() { - next=`grep -B1 "$1" "$articles_sorted_with_delete" | head -1` + next=`grep -B1 "^$1$" "$articles_sorted_with_delete" | head -1` if [ "`echo $deleted_files | grep -c \"$next\"`" = "0" ]; then echo "$next" fi } get_deleted_previous_file() { - previous=`grep -A1 "$1" "$articles_sorted_with_delete" | tail -1` + previous=`grep -A1 "^$1$" "$articles_sorted_with_delete" | tail -1` if [ "`echo $deleted_files | grep -c \"$previous\"`" = "0" ]; then echo "$previous" fi @@ -105,29 +105,29 @@ sanit_mail() { replace_condition() { if [ "$2" = "" ]; then - sed "s//\n\0\n/g" | \ - sed "//,//bdel + sed "s//\n\0\n/g" | \ + sed "//,//bdel b :del - s/.*// - //b + s/.*// + //b d" else - sed "s///" + sed "s///" fi } replace_str() { esc=`echo $2 | sed 's/\//\\\\\//g'` replace_condition "$1" "$2" | \ - sed "s//$esc/g" + sed "s//$esc/g" } # REMEMBER: 2nd arg should be a tempfile! replace_file() { if [ -f "$2" ]; then - sed "s//\n\0\n/g" | \ - sed "// { + sed "s//\n\0\n/g" | \ + sed "// { r $2 d }" rm "$2" @@ -141,14 +141,14 @@ replace_includes() { buf2=`mktemp` cat > "$buf" includes=`cat "$buf" | \ - sed "s//\n\0\n/g" | \ - grep -E "<\?fugitive\s+include:.+\s*\?>" | \ - sed "s/^$//"` + sed "s//\n\0\n/g" | \ + grep -E "<\?fugitive[[:space:]]+include:.+[[:space:]]*\?>" | \ + sed "s/^$//"` for i in $includes; do esc=`echo -n $i | sed 's/\//\\\\\//g'` inc="$templates_dir/$i" cat "$buf" | \ - sed "// { + sed "// { r $inc d }" > "$buf2" tmpbuf="$buf" @@ -256,7 +256,7 @@ replace_foreach () { fe="foreach:$1" cat > "$temp" cat "$temp" | \ - sed -n "//,//p" | \ + sed -n "//,//p" | \ tail -n +2 | head -n -1 > "$foreach_body" if [ ! -s "$foreach_body" ]; then cat "$temp" @@ -264,8 +264,8 @@ replace_foreach () { return fi cat "$temp" | \ - sed "s//\n\0/" | \ - sed "//,//d" | \ + sed "s//\n\0/" | \ + sed "//,//d" | \ cat > "$tmpfile" for i in `cat "$2"`; do cat "$foreach_body" | replace_$1_info "$i" @@ -287,13 +287,13 @@ generate_article() { replace_str "blog_url" "$blog_url" | \ replace_commit_info "-1" | \ replace_article_info "$art" | \ - sed "/^\s*$/d" > "$public_dir/$art.html" + sed "/^[[:space:]]*$/d" > "$public_dir/$art.html" if [ "$preproc" != "" ]; then mv "$preproc_bak" "$1"; fi } regenerate_previous_and_next_article_maybe() { if [ "$1" != "" -a \ - "`grep -c \"$1\" \"$generated_files\"`" = "0" ]; then + "`grep -c \"^$1$\" \"$generated_files\"`" = "0" ]; then echo -n "[fugitive] Regenerating $public_dir/$1.html" echo -n " (as previous article) from $articles_dir/$1... " generate_article "$articles_dir/$1" @@ -301,7 +301,7 @@ regenerate_previous_and_next_article_maybe() { echo "$1" >> "$generated_files" fi if [ "$2" != "" -a \ - "`grep -c \"$2\" \"$generated_files\"`" = "0" ]; then + "`grep -c \"^$2$\" \"$generated_files\"`" = "0" ]; then echo -n "[fugitive] Regenerating $public_dir/$2.html" echo -n " (as next article) from $articles_dir/$2... " generate_article "$articles_dir/$2" @@ -361,7 +361,7 @@ if [ $modification -gt 0 ]; then replace_str "page_title" "archives" | \ replace_str "blog_url" "$blog_url" | \ replace_commit_info "-1" | \ - sed "/^\s*$/d" > "$public_dir/archives.html" + sed "/^[[:space:]]*$/d" > "$public_dir/archives.html" echo "done." echo -n "[fugitive] Generating $public_dir/feed.xml... " last_5_articles=`mktemp` @@ -375,7 +375,7 @@ if [ $modification -gt 0 ]; then replace_str "page_title" "feed" | \ replace_str "blog_url" "$blog_url" | \ replace_commit_info "-1" | \ - sed "/^\s*$/d" > "$public_dir/feed.xml" + sed "/^[[:space:]]*$/d" > "$public_dir/feed.xml" echo "done." rm "$last_5_articles" "$last_5_commits" echo -n "[fugitive] Using last published article as index page... " -- cgit v1.2.3