#!@BASH@
set -xe -o pipefail
export LC_ALL=C
export BLOGC=@abs_top_builddir@/blogc
TEMP="$(mktemp -d)"
[[ -n "${TEMP}" ]]
trap_func() {
[[ -e "${TEMP}/output.txt" ]] && cat "${TEMP}/output.txt"
[[ -n "${TEMP}" ]] && rm -rf "${TEMP}"
}
trap trap_func EXIT
mkdir -p "${TEMP}"/proj{,/templates,/content/post}
### minimal settings, will produce no file
cat > "${TEMP}/proj/blogcfile" <&1
### default settings with some posts
cat > "${TEMP}/proj/content/post/foo.txt" < "${TEMP}/proj/content/post/bar.txt" < "${TEMP}/proj/templates/main.tmpl" <> "${TEMP}/proj/blogcfile" <&1 | tee "${TEMP}/output.txt"
grep "_build/index\\.html" "${TEMP}/output.txt"
grep "_build/atom\\.xml" "${TEMP}/output.txt"
grep "_build/page/1/index\\.html" "${TEMP}/output.txt"
grep "_build/post/foo/index\\.html" "${TEMP}/output.txt"
grep "_build/post/bar/index\\.html" "${TEMP}/output.txt"
rm "${TEMP}/output.txt"
cat > "${TEMP}/expected-index.html" < "${TEMP}/expected-atom.xml" <
Lol's Website
/atom.xml
2016-10-01T00:00:00Z
Lol
author@example.com
WAT?!
Foo
/post/foo/
2016-10-01T00:00:00Z
2016-10-01T00:00:00Z
Lol
author@example.com
This is foo.
]]>
Bar
/post/bar/
2016-09-01T00:00:00Z
2016-09-01T00:00:00Z
Lol
author@example.com
This is bar.
]]>
EOF
diff -uN "${TEMP}/proj/_build/atom.xml" "${TEMP}/expected-atom.xml"
cat > "${TEMP}/expected-post-foo.html" <This is foo.
EOF
diff -uN "${TEMP}/proj/_build/post/foo/index.html" "${TEMP}/expected-post-foo.html"
cat > "${TEMP}/expected-post-bar.html" <This is bar.
EOF
diff -uN "${TEMP}/proj/_build/post/bar/index.html" "${TEMP}/expected-post-bar.html"
rm -rf "${TEMP}/proj/_build"
### default settings with some posts and tags
cat > "${TEMP}/proj/content/post/baz.txt" <> "${TEMP}/proj/blogcfile" <&1 | tee "${TEMP}/output.txt"
grep "_build/index\\.html" "${TEMP}/output.txt"
grep "_build/atom\\.xml" "${TEMP}/output.txt"
grep "_build/atom/tag1\\.xml" "${TEMP}/output.txt"
grep "_build/atom/tag2\\.xml" "${TEMP}/output.txt"
grep "_build/page/1/index\\.html" "${TEMP}/output.txt"
grep "_build/post/foo/index\\.html" "${TEMP}/output.txt"
grep "_build/post/bar/index\\.html" "${TEMP}/output.txt"
grep "_build/post/baz/index\\.html" "${TEMP}/output.txt"
grep "_build/tag/tag1/index\\.html" "${TEMP}/output.txt"
grep "_build/tag/tag2/index\\.html" "${TEMP}/output.txt"
rm "${TEMP}/output.txt"
cat > "${TEMP}/expected-index.html" < "${TEMP}/expected-atom.xml" <
Lol's Website
/atom.xml
2016-10-01T00:00:00Z
Lol
author@example.com
WAT?!
Foo
/post/foo/
2016-10-01T00:00:00Z
2016-10-01T00:00:00Z
Lol
author@example.com
This is foo.
]]>
Bar
/post/bar/
2016-09-01T00:00:00Z
2016-09-01T00:00:00Z
Lol
author@example.com
This is bar.
]]>
Baz
/post/baz/
2016-08-01T00:00:00Z
2016-08-01T00:00:00Z
Lol
author@example.com
This is baz.
]]>
EOF
diff -uN "${TEMP}/proj/_build/atom.xml" "${TEMP}/expected-atom.xml"
cat > "${TEMP}/expected-atom-tag1.xml" <
Lol's Website - tag1
/atom/tag1.xml
2016-08-01T00:00:00Z
Lol
author@example.com
WAT?!
Baz
/post/baz/
2016-08-01T00:00:00Z
2016-08-01T00:00:00Z
Lol
author@example.com
This is baz.
]]>
EOF
diff -uN "${TEMP}/proj/_build/atom/tag1.xml" "${TEMP}/expected-atom-tag1.xml"
cat > "${TEMP}/expected-atom-tag2.xml" <
Lol's Website - tag2
/atom/tag2.xml
2016-08-01T00:00:00Z
Lol
author@example.com
WAT?!
Baz
/post/baz/
2016-08-01T00:00:00Z
2016-08-01T00:00:00Z
Lol
author@example.com
This is baz.
]]>
EOF
diff -uN "${TEMP}/proj/_build/atom/tag2.xml" "${TEMP}/expected-atom-tag2.xml"
cat > "${TEMP}/expected-post-baz.html" <This is baz.
EOF
diff -uN "${TEMP}/proj/_build/post/foo/index.html" "${TEMP}/expected-post-foo.html"
diff -uN "${TEMP}/proj/_build/post/bar/index.html" "${TEMP}/expected-post-bar.html"
diff -uN "${TEMP}/proj/_build/post/baz/index.html" "${TEMP}/expected-post-baz.html"
cat > "${TEMP}/expected-tag1.html" < "${TEMP}/expected-tag2.html" < "${TEMP}/proj/content/page1.txt" < "${TEMP}/proj/content/page2.txt" <> "${TEMP}/proj/blogcfile" <&1 | tee "${TEMP}/output.txt"
grep "_build/index\\.html" "${TEMP}/output.txt"
grep "_build/atom\\.xml" "${TEMP}/output.txt"
grep "_build/atom/tag1\\.xml" "${TEMP}/output.txt"
grep "_build/atom/tag2\\.xml" "${TEMP}/output.txt"
grep "_build/page/1/index\\.html" "${TEMP}/output.txt"
grep "_build/post/foo/index\\.html" "${TEMP}/output.txt"
grep "_build/post/bar/index\\.html" "${TEMP}/output.txt"
grep "_build/post/baz/index\\.html" "${TEMP}/output.txt"
grep "_build/tag/tag1/index\\.html" "${TEMP}/output.txt"
grep "_build/tag/tag2/index\\.html" "${TEMP}/output.txt"
grep "_build/page1/index\\.html" "${TEMP}/output.txt"
grep "_build/page2/index\\.html" "${TEMP}/output.txt"
rm "${TEMP}/output.txt"
diff -uN "${TEMP}/proj/_build/index.html" "${TEMP}/expected-index.html"
diff -uN "${TEMP}/proj/_build/page/1/index.html" "${TEMP}/expected-index.html"
diff -uN "${TEMP}/proj/_build/atom.xml" "${TEMP}/expected-atom.xml"
diff -uN "${TEMP}/proj/_build/atom/tag1.xml" "${TEMP}/expected-atom-tag1.xml"
diff -uN "${TEMP}/proj/_build/atom/tag2.xml" "${TEMP}/expected-atom-tag2.xml"
diff -uN "${TEMP}/proj/_build/post/foo/index.html" "${TEMP}/expected-post-foo.html"
diff -uN "${TEMP}/proj/_build/post/bar/index.html" "${TEMP}/expected-post-bar.html"
diff -uN "${TEMP}/proj/_build/post/baz/index.html" "${TEMP}/expected-post-baz.html"
diff -uN "${TEMP}/proj/_build/tag/tag1/index.html" "${TEMP}/expected-tag1.html"
diff -uN "${TEMP}/proj/_build/tag/tag2/index.html" "${TEMP}/expected-tag2.html"
cat > "${TEMP}/expected-page1.html" <This is page 1.
EOF
diff -uN "${TEMP}/proj/_build/page1/index.html" "${TEMP}/expected-page1.html"
cat > "${TEMP}/expected-page2.html" <This is page 2.
EOF
diff -uN "${TEMP}/proj/_build/page2/index.html" "${TEMP}/expected-page2.html"
rm -rf "${TEMP}/proj"
mkdir -p "${TEMP}"/proj{,/temp,/contents/poost}
### custom settings with some posts
cat > "${TEMP}/proj/contents/poost/foo.blogc" < "${TEMP}/proj/contents/poost/bar.blogc" < "${TEMP}/proj/temp/main.html" < "${TEMP}/proj/blogcfile" <&1 | tee "${TEMP}/output.txt"
grep "_build/posts\\.html" "${TEMP}/output.txt"
grep "_build/atoom/index\\.xml" "${TEMP}/output.txt"
grep "_build/pagination/1\\.html" "${TEMP}/output.txt"
grep "_build/pagination/2\\.html" "${TEMP}/output.txt"
grep "_build/poost/foo\\.html" "${TEMP}/output.txt"
grep "_build/poost/bar\\.html" "${TEMP}/output.txt"
rm "${TEMP}/output.txt"
cat > "${TEMP}/expected-index.html" < "${TEMP}/expected-page-2.html" < "${TEMP}/expected-atom.xml" <
Lol's Website
/atoom/index.xml
2016-10-01T00:00:00Z
Lol
author@example.com
WAT?!
Foo
/poost/foo/
2016-10-01T00:00:00Z
2016-10-01T00:00:00Z
Lol
author@example.com
This is foo.
]]>
EOF
diff -uN "${TEMP}/proj/_build/atoom/index.xml" "${TEMP}/expected-atom.xml"
cat > "${TEMP}/expected-post-foo.html" <This is foo.
EOF
diff -uN "${TEMP}/proj/_build/poost/foo.html" "${TEMP}/expected-post-foo.html"
cat > "${TEMP}/expected-post-bar.html" <This is bar.
EOF
diff -uN "${TEMP}/proj/_build/poost/bar.html" "${TEMP}/expected-post-bar.html"
rm -rf "${TEMP}/proj/_build"
### default settings with some posts and tags
cat > "${TEMP}/proj/contents/poost/baz.blogc" <> "${TEMP}/proj/blogcfile" <&1 | tee "${TEMP}/output.txt"
grep "_build/posts\\.html" "${TEMP}/output.txt"
grep "_build/atoom/index\\.xml" "${TEMP}/output.txt"
grep "_build/atoom/tag1/index\\.xml" "${TEMP}/output.txt"
grep "_build/atoom/tag2/index\\.xml" "${TEMP}/output.txt"
grep "_build/pagination/1\\.html" "${TEMP}/output.txt"
grep "_build/pagination/2\\.html" "${TEMP}/output.txt"
grep "_build/pagination/3\\.html" "${TEMP}/output.txt"
grep "_build/poost/foo\\.html" "${TEMP}/output.txt"
grep "_build/poost/bar\\.html" "${TEMP}/output.txt"
grep "_build/poost/baz\\.html" "${TEMP}/output.txt"
grep "_build/taag/tag1\\.html" "${TEMP}/output.txt"
grep "_build/taag/tag2\\.html" "${TEMP}/output.txt"
rm "${TEMP}/output.txt"
diff -uN "${TEMP}/proj/_build/posts.html" "${TEMP}/expected-index.html"
diff -uN "${TEMP}/proj/_build/pagination/1.html" "${TEMP}/expected-index.html"
diff -uN "${TEMP}/proj/_build/pagination/2.html" "${TEMP}/expected-page-2.html"
cat > "${TEMP}/expected-page-3.html" < "${TEMP}/expected-atom-tag1.xml" <
Lol's Website - tag1
/atoom/tag1/index.xml
2016-08-01T00:00:00Z
Lol
author@example.com
WAT?!
Baz
/poost/baz/
2016-08-01T00:00:00Z
2016-08-01T00:00:00Z
Lol
author@example.com
This is baz.
]]>
EOF
diff -uN "${TEMP}/proj/_build/atoom/tag1/index.xml" "${TEMP}/expected-atom-tag1.xml"
cat > "${TEMP}/expected-atom-tag2.xml" <
Lol's Website - tag2
/atoom/tag2/index.xml
2016-08-01T00:00:00Z
Lol
author@example.com
WAT?!
Baz
/poost/baz/
2016-08-01T00:00:00Z
2016-08-01T00:00:00Z
Lol
author@example.com
This is baz.
]]>
EOF
diff -uN "${TEMP}/proj/_build/atoom/tag2/index.xml" "${TEMP}/expected-atom-tag2.xml"
cat > "${TEMP}/expected-post-baz.html" <This is baz.
EOF
diff -uN "${TEMP}/proj/_build/poost/foo.html" "${TEMP}/expected-post-foo.html"
diff -uN "${TEMP}/proj/_build/poost/bar.html" "${TEMP}/expected-post-bar.html"
diff -uN "${TEMP}/proj/_build/poost/baz.html" "${TEMP}/expected-post-baz.html"
cat > "${TEMP}/expected-tag1.html" < "${TEMP}/expected-tag2.html" < "${TEMP}/proj/contents/page1.blogc" < "${TEMP}/proj/contents/page2.blogc" <> "${TEMP}/proj/blogcfile" <&1 | tee "${TEMP}/output.txt"
grep "_build/posts\\.html" "${TEMP}/output.txt"
grep "_build/atoom/index\\.xml" "${TEMP}/output.txt"
grep "_build/atoom/tag1/index\\.xml" "${TEMP}/output.txt"
grep "_build/atoom/tag2/index\\.xml" "${TEMP}/output.txt"
grep "_build/pagination/1\\.html" "${TEMP}/output.txt"
grep "_build/pagination/2\\.html" "${TEMP}/output.txt"
grep "_build/pagination/3\\.html" "${TEMP}/output.txt"
grep "_build/poost/foo\\.html" "${TEMP}/output.txt"
grep "_build/poost/bar\\.html" "${TEMP}/output.txt"
grep "_build/poost/baz\\.html" "${TEMP}/output.txt"
grep "_build/taag/tag1\\.html" "${TEMP}/output.txt"
grep "_build/taag/tag2\\.html" "${TEMP}/output.txt"
grep "_build/page1\\.html" "${TEMP}/output.txt"
grep "_build/page2\\.html" "${TEMP}/output.txt"
rm "${TEMP}/output.txt"
diff -uN "${TEMP}/proj/_build/posts.html" "${TEMP}/expected-index.html"
diff -uN "${TEMP}/proj/_build/pagination/1.html" "${TEMP}/expected-index.html"
diff -uN "${TEMP}/proj/_build/pagination/2.html" "${TEMP}/expected-page-2.html"
diff -uN "${TEMP}/proj/_build/pagination/3.html" "${TEMP}/expected-page-3.html"
diff -uN "${TEMP}/proj/_build/atoom/index.xml" "${TEMP}/expected-atom.xml"
diff -uN "${TEMP}/proj/_build/atoom/tag1/index.xml" "${TEMP}/expected-atom-tag1.xml"
diff -uN "${TEMP}/proj/_build/atoom/tag2/index.xml" "${TEMP}/expected-atom-tag2.xml"
diff -uN "${TEMP}/proj/_build/poost/foo.html" "${TEMP}/expected-post-foo.html"
diff -uN "${TEMP}/proj/_build/poost/bar.html" "${TEMP}/expected-post-bar.html"
diff -uN "${TEMP}/proj/_build/poost/baz.html" "${TEMP}/expected-post-baz.html"
diff -uN "${TEMP}/proj/_build/taag/tag1.html" "${TEMP}/expected-tag1.html"
diff -uN "${TEMP}/proj/_build/taag/tag2.html" "${TEMP}/expected-tag2.html"
cat > "${TEMP}/expected-page1.html" <This is page 1.
EOF
diff -uN "${TEMP}/proj/_build/page1.html" "${TEMP}/expected-page1.html"
cat > "${TEMP}/expected-page2.html" <This is page 2.
EOF
diff -uN "${TEMP}/proj/_build/page2.html" "${TEMP}/expected-page2.html"
rm -rf "${TEMP}/proj/_build"
### copy rule
mkdir -p "${TEMP}"/proj/{a/b/c,d/e,f}
echo bola > "${TEMP}/proj/a/b/c/foo"
echo guda > "${TEMP}/proj/a/b/bar"
echo chunda > "${TEMP}/proj/a/baz"
echo lol > "${TEMP}/proj/d/e/fuu"
echo hehe > "${TEMP}/proj/d/xd"
echo FFFUUUUUU > "${TEMP}/proj/f/XDDDD"
cat >> "${TEMP}/proj/blogcfile" <&1 | tee "${TEMP}/output.txt"
grep "_build/posts\\.html" "${TEMP}/output.txt"
grep "_build/atoom/index\\.xml" "${TEMP}/output.txt"
grep "_build/atoom/tag1/index\\.xml" "${TEMP}/output.txt"
grep "_build/atoom/tag2/index\\.xml" "${TEMP}/output.txt"
grep "_build/pagination/1\\.html" "${TEMP}/output.txt"
grep "_build/pagination/2\\.html" "${TEMP}/output.txt"
grep "_build/pagination/3\\.html" "${TEMP}/output.txt"
grep "_build/poost/foo\\.html" "${TEMP}/output.txt"
grep "_build/poost/bar\\.html" "${TEMP}/output.txt"
grep "_build/poost/baz\\.html" "${TEMP}/output.txt"
grep "_build/taag/tag1\\.html" "${TEMP}/output.txt"
grep "_build/taag/tag2\\.html" "${TEMP}/output.txt"
grep "_build/page1\\.html" "${TEMP}/output.txt"
grep "_build/page2\\.html" "${TEMP}/output.txt"
grep "_build/a/b/c/foo" "${TEMP}/output.txt"
grep "_build/a/b/bar" "${TEMP}/output.txt"
grep "_build/a/baz" "${TEMP}/output.txt"
grep "_build/d/e/fuu" "${TEMP}/output.txt"
grep "_build/d/xd" "${TEMP}/output.txt"
grep "_build/f/XDDDD" "${TEMP}/output.txt"
rm "${TEMP}/output.txt"
test "$(cat "${TEMP}/proj/_build/a/b/c/foo")" = "bola"
test "$(cat "${TEMP}/proj/_build/a/b/bar")" = "guda"
test "$(cat "${TEMP}/proj/_build/a/baz")" = "chunda"
test "$(cat "${TEMP}/proj/_build/d/e/fuu")" = "lol"
test "$(cat "${TEMP}/proj/_build/d/xd")" = "hehe"
test "$(cat "${TEMP}/proj/_build/f/XDDDD")" = "FFFUUUUUU"
### clean rule
${TESTS_ENVIRONMENT} @abs_top_builddir@/blogc-make -f "${TEMP}/proj/blogcfile" clean 2>&1 | tee "${TEMP}/output.txt"
grep "_build/posts\\.html" "${TEMP}/output.txt"
grep "_build/atoom/index\\.xml" "${TEMP}/output.txt"
grep "_build/atoom/tag1/index\\.xml" "${TEMP}/output.txt"
grep "_build/atoom/tag2/index\\.xml" "${TEMP}/output.txt"
grep "_build/pagination/1\\.html" "${TEMP}/output.txt"
grep "_build/pagination/2\\.html" "${TEMP}/output.txt"
grep "_build/pagination/3\\.html" "${TEMP}/output.txt"
grep "_build/poost/foo\\.html" "${TEMP}/output.txt"
grep "_build/poost/bar\\.html" "${TEMP}/output.txt"
grep "_build/poost/baz\\.html" "${TEMP}/output.txt"
grep "_build/taag/tag1\\.html" "${TEMP}/output.txt"
grep "_build/taag/tag2\\.html" "${TEMP}/output.txt"
grep "_build/page1\\.html" "${TEMP}/output.txt"
grep "_build/page2\\.html" "${TEMP}/output.txt"
grep "_build/a/b/c/foo" "${TEMP}/output.txt"
grep "_build/a/b/bar" "${TEMP}/output.txt"
grep "_build/a/baz" "${TEMP}/output.txt"
grep "_build/d/e/fuu" "${TEMP}/output.txt"
grep "_build/d/xd" "${TEMP}/output.txt"
grep "_build/f/XDDDD" "${TEMP}/output.txt"
rm "${TEMP}/output.txt"
[[ ! -d "${TEMP}/proj/_build" ]]
export OUTPUT_DIR="${TEMP}/___blogc_build"
${TESTS_ENVIRONMENT} @abs_top_builddir@/blogc-make -f "${TEMP}/proj/blogcfile" 2>&1 | tee "${TEMP}/output.txt"
grep "___blogc_build/posts\\.html" "${TEMP}/output.txt"
grep "___blogc_build/atoom/index\\.xml" "${TEMP}/output.txt"
grep "___blogc_build/atoom/tag1/index\\.xml" "${TEMP}/output.txt"
grep "___blogc_build/atoom/tag2/index\\.xml" "${TEMP}/output.txt"
grep "___blogc_build/pagination/1\\.html" "${TEMP}/output.txt"
grep "___blogc_build/pagination/2\\.html" "${TEMP}/output.txt"
grep "___blogc_build/pagination/3\\.html" "${TEMP}/output.txt"
grep "___blogc_build/poost/foo\\.html" "${TEMP}/output.txt"
grep "___blogc_build/poost/bar\\.html" "${TEMP}/output.txt"
grep "___blogc_build/poost/baz\\.html" "${TEMP}/output.txt"
grep "___blogc_build/taag/tag1\\.html" "${TEMP}/output.txt"
grep "___blogc_build/taag/tag2\\.html" "${TEMP}/output.txt"
grep "___blogc_build/page1\\.html" "${TEMP}/output.txt"
grep "___blogc_build/page2\\.html" "${TEMP}/output.txt"
grep "___blogc_build/a/b/c/foo" "${TEMP}/output.txt"
grep "___blogc_build/a/b/bar" "${TEMP}/output.txt"
grep "___blogc_build/a/baz" "${TEMP}/output.txt"
grep "___blogc_build/d/e/fuu" "${TEMP}/output.txt"
grep "___blogc_build/d/xd" "${TEMP}/output.txt"
grep "___blogc_build/f/XDDDD" "${TEMP}/output.txt"
rm "${TEMP}/output.txt"
${TESTS_ENVIRONMENT} @abs_top_builddir@/blogc-make -f "${TEMP}/proj/blogcfile" clean 2>&1 | tee "${TEMP}/output.txt"
grep "___blogc_build/posts\\.html" "${TEMP}/output.txt"
grep "___blogc_build/atoom/index\\.xml" "${TEMP}/output.txt"
grep "___blogc_build/atoom/tag1/index\\.xml" "${TEMP}/output.txt"
grep "___blogc_build/atoom/tag2/index\\.xml" "${TEMP}/output.txt"
grep "___blogc_build/pagination/1\\.html" "${TEMP}/output.txt"
grep "___blogc_build/pagination/2\\.html" "${TEMP}/output.txt"
grep "___blogc_build/pagination/3\\.html" "${TEMP}/output.txt"
grep "___blogc_build/poost/foo\\.html" "${TEMP}/output.txt"
grep "___blogc_build/poost/bar\\.html" "${TEMP}/output.txt"
grep "___blogc_build/poost/baz\\.html" "${TEMP}/output.txt"
grep "___blogc_build/taag/tag1\\.html" "${TEMP}/output.txt"
grep "___blogc_build/taag/tag2\\.html" "${TEMP}/output.txt"
grep "___blogc_build/page1\\.html" "${TEMP}/output.txt"
grep "___blogc_build/page2\\.html" "${TEMP}/output.txt"
grep "___blogc_build/a/b/c/foo" "${TEMP}/output.txt"
grep "___blogc_build/a/b/bar" "${TEMP}/output.txt"
grep "___blogc_build/a/baz" "${TEMP}/output.txt"
grep "___blogc_build/d/e/fuu" "${TEMP}/output.txt"
grep "___blogc_build/d/xd" "${TEMP}/output.txt"
grep "___blogc_build/f/XDDDD" "${TEMP}/output.txt"
rm "${TEMP}/output.txt"
[[ ! -d "${OUTPUT_DIR}" ]]
unset OUTPUT_DIR