commit - 43659a89e664fce88544843384a3e3295c2339e7
commit + a3cde1e1e76b22983723e32ae80fb1120536545f
blob - 22a9c210e935bc56366bbe79203865e4858e058c
blob + b73d135e2c0387c6f52dd1c4577c641789d53657
--- ssg.sh
+++ ssg.sh
# other tortious action, arising out of or in connection with the use or
# performance of this software.
-info() { echo "$@" >&2; }
+info() { echo "$@" >&3; }
fail() { echo "$@" >&2 && exit 1; }
usage() { fail "usage: ${0##*/} <src> <dst>"; }
write_hashes() {
if ! test -d "$DST"; then return; fi
echo "$1" >"$DST/$SSG_SRC"
- echo "$2" | tee "$DST/$SSG_DST" | sha256 >&2
+ echo "$2" | tee "$DST/$SSG_DST" | sha256
}
main() {
write_hashes "$src_hash" "$(hash_dst)"
}
-main "${@}"
+main "${@}" 3>&1
blob - 07d13294eabbc487918bd8fc6ae56096b486cce0
blob + 4bc2ed2bf68da7d79ff11ff17a698840135ceb4e
--- ssg.test.sh
+++ ssg.test.sh
#!/bin/ksh -e
ok_count=0
-ok_expected=28
+ok_expected=29
plan() {
echo "$ok_expected..$ok_count"
if test -z "$1"; then echo "x.txt" && exit; fi
echo . >"$2/x.txt" && echo "x.txt"
' >"$src/.ssg.sh"
- "$cmd" "$src" "$dst" 2>&1 | not_ok_diff_n "basic_case" '
+ "$cmd" "$src" "$dst" | not_ok_diff_n "basic_case" '
ignore .ssg.ignore
sh .ssg.sh > x.txt
sh .ssg.sh > x.txt.gz
echo >"$src/a/b/3.txt"
echo >"$src/a/c/4.txt"
echo >"$src/a/c/5.txt"
- "$cmd" "$src" "$dst" 2>&1 | not_ok_diff_n "$1" '
+ "$cmd" "$src" "$dst" | not_ok_diff_n "$1" '
ignore .ssg.ignore
ignore a/.ssg.ignore
ignore a/b/.ssg.ignore
select_src_files_trailing_slash)
mkdir "$src" && echo >"$src/t.png"
- "$cmd" "$src"/ "$dst"/ 2>&1 | not_ok_diff_n "$1" '
+ "$cmd" "$src"/ "$dst"/ | not_ok_diff_n "$1" '
copy t.png
9db7b136bc6fdd9c51009ce2f88c69ff64060c3f3ff540a9199f37d2aa404eaa
'
.ssg.src
t.png
'
- cat "$dst/.ssg.dst" | not_ok_diff_n "$1: .ssg.dst" '
+ cat "$dst/.ssg.dst" | not_ok_diff_n "$1: .ssg.dst" '
01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b t.png
'
;;
select_src_files_no_dst)
mkdir "$src" && echo >"$src/t.png"
- "$cmd" "$src" "$dst" 2>&1 | not_ok_diff_n "$1" '
+ "$cmd" "$src" "$dst" | not_ok_diff_n "$1" '
copy t.png
9db7b136bc6fdd9c51009ce2f88c69ff64060c3f3ff540a9199f37d2aa404eaa
'
select_src_files_no_ssg_dst_ssg_src)
mkdir "$src" "$dst" && echo >"$src/t.png"
- "$cmd" "$src" "$dst" 2>&1 | not_ok_diff_n "$1: first run" '
+ "$cmd" "$src" "$dst" | not_ok_diff_n "$1: first run" '
copy t.png
9db7b136bc6fdd9c51009ce2f88c69ff64060c3f3ff540a9199f37d2aa404eaa
'
rm "$dst/.ssg.src"
- "$cmd" "$src" "$dst" 2>&1 | not_ok_diff_n "$1: second run" '
+ "$cmd" "$src" "$dst" | not_ok_diff_n "$1: second run" '
copy t.png
9db7b136bc6fdd9c51009ce2f88c69ff64060c3f3ff540a9199f37d2aa404eaa
'
rm "$dst/.ssg.dst"
- "$cmd" "$src" "$dst" 2>&1 | not_ok_diff_n "$1: third run" '
+ "$cmd" "$src" "$dst" | not_ok_diff_n "$1: third run" '
copy t.png
9db7b136bc6fdd9c51009ce2f88c69ff64060c3f3ff540a9199f37d2aa404eaa
'
select_src_files_no_dst_ssg_dst_match)
mkdir "$src" "$dst" && echo >"$src/t.png"
- "$cmd" "$src" "$dst" 2>&1 | not_ok_diff_n "$1: first run" '
+ "$cmd" "$src" "$dst" | not_ok_diff_n "$1: first run" '
copy t.png
9db7b136bc6fdd9c51009ce2f88c69ff64060c3f3ff540a9199f37d2aa404eaa
'
echo x >>"$dst/.ssg.dst"
- "$cmd" "$src" "$dst" 2>&1 | not_ok_diff_n "$1: second run" '
+ "$cmd" "$src" "$dst" | not_ok_diff_n "$1: second run" '
copy t.png
9db7b136bc6fdd9c51009ce2f88c69ff64060c3f3ff540a9199f37d2aa404eaa
'
select_src_files_no_src_diff)
mkdir "$src" "$dst" && echo >"$src/t.png"
- "$cmd" "$src" "$dst" 2>&1 | not_ok_diff_n "$1: first run" '
+ "$cmd" "$src" "$dst" | not_ok_diff_n "$1: first run" '
copy t.png
9db7b136bc6fdd9c51009ce2f88c69ff64060c3f3ff540a9199f37d2aa404eaa
'
- "$cmd" "$src" "$dst" 2>&1 | not_ok_diff_n "$1: second run" '
+ "$cmd" "$src" "$dst" | not_ok_diff_n "$1: second run" '
9db7b136bc6fdd9c51009ce2f88c69ff64060c3f3ff540a9199f37d2aa404eaa
'
;;
select_src_files_clean_dst)
mkdir "$src" && echo >"$src/t.png"
- "$cmd" "$src" "$dst" 2>&1 | not_ok_diff_n "$1: first run" '
+ "$cmd" "$src" "$dst" | not_ok_diff_n "$1: first run" '
copy t.png
9db7b136bc6fdd9c51009ce2f88c69ff64060c3f3ff540a9199f37d2aa404eaa
'
echo >"$dst/trash_file"
mkdir "$dst/trash_dir"
- "$cmd" "$src" "$dst" 2>&1 | not_ok_diff_n "$1: second run" '
+ "$cmd" "$src" "$dst" | not_ok_diff_n "$1: second run" '
copy t.png
9db7b136bc6fdd9c51009ce2f88c69ff64060c3f3ff540a9199f37d2aa404eaa
'
mkdir "$src" "$src/dir"
echo >"$src/a.png"
echo >"$src/dir/b.png"
- "$cmd" "$src" "$dst" 2>&1 | not_ok_diff_n "$1: first run" '
+ "$cmd" "$src" "$dst" | not_ok_diff_n "$1: first run" '
copy a.png
copy dir/b.png
6e0b941542f81e1b299a21444d0efe2fa224a4220e67df9c37cc34a2c6f01b13
'
rm "$src/dir/b.png"
- "$cmd" "$src" "$dst" 2>&1 | not_ok_diff_n "$1: second run" '
+ "$cmd" "$src" "$dst" | not_ok_diff_n "$1: second run" '
rm dir/b.png
rmdir dir/
e86615a87eeeae97fb6302dd5013109f0ccfb7336f164a39457e684c30bae90e
echo '<html>' >"$src/html2.html"
echo '# h1' >"$src/markdown.md"
echo >"$src/t.png"
- "$cmd" "$src" "$dst" 2>&1 | not_ok_diff_n "$1: first run" '
+ "$cmd" "$src" "$dst" | not_ok_diff_n "$1: first run" '
template .ssg.template
html html1.html, .ssg.template > html1.html
html html1.html, .ssg.template > html1.html.gz
not_ok_find "$dst" "$1" "$expected_dst"
echo 'x' >"$src/.ssg.template"
- "$cmd" "$src" "$dst" 2>&1 | not_ok_diff_n "$1: second run" '
+ "$cmd" "$src" "$dst" | not_ok_diff_n "$1: second run" '
template .ssg.template
html html1.html, .ssg.template > html1.html
html html1.html, .ssg.template > html1.html.gz
generate_copy)
mkdir "$src" "$dst" && echo 'png' >"$src/t.png"
- "$cmd" "$src" "$dst" 2>&1 | not_ok_diff_n "$1: first run" '
+ "$cmd" "$src" "$dst" | not_ok_diff_n "$1: first run" '
copy t.png
5265fde36fa46d08d2bc48d0f413d41c166ee966a4f94b5fd7ad0c23e1bb92d4
'
- "$cmd" "$src" "$dst" 2>&1 | not_ok_diff_n "$1: second run" '
+ "$cmd" "$src" "$dst" | not_ok_diff_n "$1: second run" '
5265fde36fa46d08d2bc48d0f413d41c166ee966a4f94b5fd7ad0c23e1bb92d4
'
not_ok_find "$dst" "$1" '
generate_file)
mkdir "$src" "$dst" && echo 'txt' >"$src/t.txt"
- "$cmd" "$src" "$dst" 2>&1 | not_ok_diff_n "$1: first run" '
+ "$cmd" "$src" "$dst" | not_ok_diff_n "$1: first run" '
file t.txt
file t.txt > t.txt.gz
482d02d3fdd5ca854ffc9370f9cf3d4efa5bb640713c90dcf5c9800d5acf6812
'
- "$cmd" "$src" "$dst" 2>&1 | not_ok_diff_n "$1: second run" '
+ "$cmd" "$src" "$dst" | not_ok_diff_n "$1: second run" '
482d02d3fdd5ca854ffc9370f9cf3d4efa5bb640713c90dcf5c9800d5acf6812
'
not_ok_find "$dst" "$1" '
generate_html)
mkdir "$src" "$dst" && echo '<html>' >"$src/h.html"
- "$cmd" "$src" "$dst" 2>&1 | not_ok_diff_n "$1: first run" '
+ "$cmd" "$src" "$dst" | not_ok_diff_n "$1: first run" '
html h.html
html h.html > h.html.gz
sitemap sitemap.xml
sitemap robots.txt
c31554e49bd5671f634ec9392a21ded395383d00bf224088767fd2fc64a42486
'
- "$cmd" "$src" "$dst" 2>&1 | not_ok_diff_n "$1: second run" '
+ "$cmd" "$src" "$dst" | not_ok_diff_n "$1: second run" '
c31554e49bd5671f634ec9392a21ded395383d00bf224088767fd2fc64a42486
'
not_ok_find "$dst" "$1" '
generate_sitemap)
mkdir "$src" "$dst" && echo '<html>' >"$src/h.html"
- "$cmd" "$src" "$dst" 2>&1 | not_ok_diff_n "$1: first run" '
+ "$cmd" "$src" "$dst" | not_ok_diff_n "$1: first run" '
html h.html
html h.html > h.html.gz
sitemap sitemap.xml
'
rm "$src/h.html"
- "$cmd" "$src" "$dst" 2>&1 | not_ok_diff_n "$1: second run" '
+ "$cmd" "$src" "$dst" | not_ok_diff_n "$1: second run" '
rm h.html
rm h.html.gz
rm robots.txt
mkdir "$src" "$dst"
echo '<html>' >"$src/h.html"
echo >"$src/sitemap.xml"
- "$cmd" "$src" "$dst" 2>&1 | not_ok_diff_n "$1: first run" '
+ "$cmd" "$src" "$dst" | not_ok_diff_n "$1: first run" '
html h.html
html h.html > h.html.gz
file sitemap.xml
mkdir "$src" "$dst"
echo '<html>' >"$src/h.html"
echo >"$src/robots.txt"
- "$cmd" "$src" "$dst" 2>&1 | not_ok_diff_n "$1: first run" '
+ "$cmd" "$src" "$dst" | not_ok_diff_n "$1: first run" '
html h.html
html h.html > h.html.gz
file robots.txt
<p>a</p></h>' >"$src/h.html"
echo '<title>{{title}}</title>' >"$src/.ssg.template"
- "$cmd" "$src" "$dst" 2>/dev/null
+ "$cmd" "$src" "$dst" >/dev/null
cat "$dst/h.html" | not_ok_diff "$1: h.html" "<title>'→ nl</title>"
;;
echo '<h1>x</h1>' >"$src/h.html"
echo '<title>{{title}}~{{site}}</title>{{content}}' >"$src/.ssg.template"
- "$cmd" "$src" "$dst" 2>&1 | not_ok_diff_n "$1: first run" '
+ "$cmd" "$src" "$dst" | not_ok_diff_n "$1: first run" '
template .ssg.template
html h.html, .ssg.template > h.html
html h.html, .ssg.template > h.html.gz
sitemap robots.txt
5843646b566cdf923e8cb8745d6e516dc1d764e4af5894a823d6aef45b61f70e
'
- "$cmd" "$src" "$dst" 2>&1 | not_ok_diff_n "$1: second run" '
+ "$cmd" "$src" "$dst" | not_ok_diff_n "$1: second run" '
5843646b566cdf923e8cb8745d6e516dc1d764e4af5894a823d6aef45b61f70e
'
not_ok_find "$dst" "$1" '
echo 'p' >"$src/p.html"
echo '<title>{{#title}}{{title}}: {{/title}}{{site}}</title>{{content}}' >"$src/.ssg.template"
- "$cmd" "$src" "$dst" 2>&1 | not_ok_diff_n "$1: first run" '
+ "$cmd" "$src" "$dst" | not_ok_diff_n "$1: first run" '
template .ssg.template
html h.html, .ssg.template > h.html
html h.html, .ssg.template > h.html.gz
echo '/' >"$src/.ssg.template"
echo '/dir' >"$src/dir/.ssg.template"
- "$cmd" "$src" "$dst" 2>&1 | not_ok_diff_n "$1: first run" '
+ "$cmd" "$src" "$dst" | not_ok_diff_n "$1: first run" '
template .ssg.template
template dir/.ssg.template
html dir/h2.html, dir/.ssg.template > dir/h2.html
sitemap robots.txt
51147e86d5a634da68279934469c49305735a5a0516b0b6327fb00df86795832
'
- "$cmd" "$src" "$dst" 2>&1 | not_ok_diff_n "$1: second run" '
+ "$cmd" "$src" "$dst" | not_ok_diff_n "$1: second run" '
51147e86d5a634da68279934469c49305735a5a0516b0b6327fb00df86795832
'
not_ok_find "$dst" "$1" '
mkdir "$src" "$dst"
echo '<h1>h1</h1>' >"$src/h.html"
- "$cmd" "$src" "$dst" 2>&1 | not_ok_diff_n "$1: first run" '
+ "$cmd" "$src" "$dst" | not_ok_diff_n "$1: first run" '
html h.html
html h.html > h.html.gz
sitemap sitemap.xml
sitemap robots.txt
52494b82f46c80147bde275b53bf7318998d6986eaf6e503d7fe3dadfdf67d19
'
- "$cmd" "$src" "$dst" 2>&1 | not_ok_diff_n "$1: second run" '
+ "$cmd" "$src" "$dst" | not_ok_diff_n "$1: second run" '
52494b82f46c80147bde275b53bf7318998d6986eaf6e503d7fe3dadfdf67d19
'
not_ok_find "$dst" "$1" '
echo >"$src/h.md"
echo >"$src/h.html"
- "$cmd" "$src" "$dst" 2>&1 | not_ok_diff_n "$1: first run" '
+ "$cmd" "$src" "$dst" 2>&1| not_ok_diff_n "$1: first run" '
html h.html
html h.html > h.html.gz
fail: h.md collides with h.html
echo '# h1' >"$src/h.md"
echo '<title>{{title}}~{{site}}</title>{{content}}' >"$src/.ssg.template"
- "$cmd" "$src" "$dst" 2>&1 | not_ok_diff_n "$1: first run" '
+ "$cmd" "$src" "$dst" | not_ok_diff_n "$1: first run" '
template .ssg.template
md h.md, .ssg.template > h.html
md h.md, .ssg.template > h.html.gz
sitemap robots.txt
ea62f877148817dcb0bf8b1d76e691880cd58961f239f9e2e25f282c79da26e6
'
- "$cmd" "$src" "$dst" 2>&1 | not_ok_diff_n "$1: second run" '
+ "$cmd" "$src" "$dst" | not_ok_diff_n "$1: second run" '
ea62f877148817dcb0bf8b1d76e691880cd58961f239f9e2e25f282c79da26e6
'
not_ok_find "$dst" "$1" '
mkdir "$src" "$dst"
echo '# h1' >"$src/h.md"
- "$cmd" "$src" "$dst" 2>&1 | not_ok_diff_n "$1: first run" '
+ "$cmd" "$src" "$dst" | not_ok_diff_n "$1: first run" '
md h.md > h.html
md h.md > h.html.gz
sitemap sitemap.xml
sitemap robots.txt
541864f1b492230aa29853b08cf13533054817db9b19bc75ebd47201e04bd470
'
- "$cmd" "$src" "$dst" 2>&1 | not_ok_diff_n "$1: second run" '
+ "$cmd" "$src" "$dst" | not_ok_diff_n "$1: second run" '
541864f1b492230aa29853b08cf13533054817db9b19bc75ebd47201e04bd470
'
not_ok_find "$dst" "$1" '
echo . >"$2/x.txt" && echo "x.txt"
' >"$src/.ssg.sh"
- "$cmd" "$src" "$dst" 2>&1 | not_ok_diff_n "$1: first run" '
+ "$cmd" "$src" "$dst" | not_ok_diff_n "$1: first run" '
sh .ssg.sh > x.txt
sh .ssg.sh > x.txt.gz
99c418b0dcd6c6c2124e87b4857b415bcf0a12ba7c7540d8ac53fe73c2046a29
'
- "$cmd" "$src" "$dst" 2>&1 | not_ok_diff_n "$1: second run" '
+ "$cmd" "$src" "$dst" | not_ok_diff_n "$1: second run" '
99c418b0dcd6c6c2124e87b4857b415bcf0a12ba7c7540d8ac53fe73c2046a29
'
not_ok_find "$dst" "$1" '
mkdir "$src"
echo >"$src/x.txt"
# shellcheck disable=2016
- "$cmd" "$src" "$dst" 2>&1 | not_ok_diff_n "$1: first run" '
+ "$cmd" "$src" "$dst" | not_ok_diff_n "$1: first run" '
file x.txt
file x.txt > x.txt.gz
a12d7b67f235edb37cfcf1bdd5a50a2e0486e1612eda28210b816eaff424a100