diff options
Diffstat (limited to 'mkdeps.sh')
| -rwxr-xr-x | mkdeps.sh | 147 |
1 files changed, 110 insertions, 37 deletions
@@ -5,28 +5,51 @@ export LANG=POSIX.UTF-8 normalize() { - xargs realpath | - awk -vPWD="$PWD/" '{ print substr($0, length(PWD) + 1) }' | - sort + xargs realpath --relative-to=. | sort } pages() { - find src/pages/*/*.adoc -type f | normalize + find src/pages/*/*.adoc -type f | normalize } articles() { - find src/collections/*/*/ -type f -name '*.adoc' | normalize + find src/collections/*/*/*/ -type f -name '*.adoc' | normalize } -listings() { - find src/collections/*/index.adoc | normalize +slides() { + find src/slides/*/*/ -type f -name '*.adoc' | normalize +} + +indexes() { + find src/collections/*/*/index.adoc | normalize +} + +categories() { + grep -l '^:type: categories$' src/collections/*/*/*.adoc | normalize +} + +media() { + find src/content/ \( -type f -and \! -type l \) -and \( \ + -name '*.flac' -or \ + -name '*.ogg' -or \ + -name '*.webm' \ + \) +} + +tarballs() { + find src/content/ \( -type f -and \! -type l \) -and \( \ + -name '*.tar.gz' \ + \) } extras() { - find src/content/ -type f \ - -name '*.flac' -or \ - -name '*.webm' -or \ - -name '*.tar.gz' + media + tarballs +} + +listings() { + indexes + categories } files() { @@ -36,23 +59,34 @@ files() { } -pages | varlist 'pages.adoc' -articles | varlist 'articles.adoc' -listings | varlist 'listings.adoc' -listings | sed 's|/index\.adoc$|/categories.txt|' | varlist 'categories.txt' -listings | sed 's|/index\.adoc$|/feed.xml|' | varlist 'feeds.xml' -find src/content/img/ -name '*.svg' | varlist 'images.svg' -extras | varlist 'sources.extras' +pages | varlist 'pages.adoc' +articles | varlist 'articles.adoc' +slides | varlist 'slides.adoc' +categories | varlist 'categories.adoc' +indexes | varlist 'indexes.adoc' +indexes | sed 's|/index\.adoc$|/feed.xml|' | varlist 'feeds.xml' +find src/content/img/ -name '*.svg' | varlist 'images.svg' +media | varlist 'sources.media' +tarballs | varlist 'sources.tarballs' +extras | varlist 'sources.extras' +find po/*.po po/*.pot | varlist 'sources.po' -files | sed 's/^\(.*\)\.adoc$/\1.htmlbody\t\1.snippets\t\1.conf:\t\1.adoc/' -files | sed 's/^\(.*\)\.adoc$/\1.html:\t\1.conf\t\1.htmlbody/' +cat po/po4a.cfg | + awk '$1 == "[type:" && $2 == "asciidoc]" && $4 != "" && $0=$3' | + varlist 'po4a.in' + + +{ + files | sed 's/^\(.*\)\.adoc$/\1.html/' + files | sed 's/^\(.*\)\.adoc$/\1.snippets/' + slides | sed 's/^\(.*\)\.adoc$/\1.pdf/' + indexes | sed 's|^\(.*\)/index\.adoc$|\1/feed.xml|' +} | sed 's/^\(.*\)$/\1.gz:\t\1/' printf '\n' -files | sed 's/^\(.*\)\.adoc$/\1.html.gz:\t\1.html/' -files | sed 's/^\(.*\)\.adoc$/\1.snippets.gz:\t\1.snippets/' -listings | sed 's|^\(.*\)/index\.adoc$|\1/categories.xml.gz:\t\1/categories.xml|' -listings | sed 's|^\(.*\)/index\.adoc$|\1/feed.xml.gz:\t\1/feed.xml|' +files | sed 's/^\(.*\)\.adoc$/\1.htmlbody\t\1.snippets\t\1.conf:\t\1.adoc/' +files | sed 's/^\(.*\)\.adoc$/\1.html:\t\1.conf\t\1.htmlbody/' printf '\n' files | sed 's/^\(.*\)\.adoc$/\1.updatedat-check:\t\1.conf/' @@ -66,32 +100,71 @@ articles | sed 's/^\(.*\)\.adoc$/\1.categorydata:\t\1.conf/' printf '\n' listings | sed 's/^\(.*\)\.adoc$/\1.htmlheader\t\1.htmlfooter:\t\1.conf/' +listings | sed 's/^\(.*\)\.adoc$/\1.htmllisting:\t\1.conf/' listings | sed 's/^\(.*\)\.adoc$/\1.html:\t\1.htmlheader\t\1.htmlfooter/' listings | sed 's/^\(.*\)\.adoc$/\1.html:\t\1.htmllisting\t\1.htmlbody/' +printf '\n' + +media | sed 's/^\(.*\)$/\1.torrent:\t\1/' +printf '\n' + +slides | sed 's/^\(.*\)\.adoc$/\1.ps:\t\1.adoc/' +slides | sed 's/^\(.*\)\.adoc$/\1.pdf:\t\1.ps/' +printf '\n' + + -for colllink in src/collections/*; do +collectionentries() { + langlink="$1" + colllink="$2" + lang="$(basename "$langlink")" c="$(printf '%s' "$colllink" | normalize)" + plural="$(cat src/names/categories/"$lang".txt)" printf '\n\n' name="$(basename "$c")" - find "$c"/*/ -type f -name '*.adoc' | varlist "articles.$name.adoc" - art=articles # so things fit in 80 columns + art=articles."$lang" + find "$c"/*/ -type f -name '*.adoc' | varlist "$art.$name.adoc" echo "$art.$name.sortdata = \$($art.$name.adoc:.adoc=.sortdata)" echo "$art.$name.indexentry = \$($art.$name.adoc:.adoc=.indexentry)" echo "$art.$name.feedentry = \$($art.$name.adoc:.adoc=.feedentry)" echo "$art.$name.categorydata = \$($art.$name.adoc:.adoc=.categorydata)" - printf '%s/sortdata.txt:\tdeps.mk\n' "$c" - printf '\tprintf %s $(articles.%s.sortdata) > $@\n\n' "'%s\n'" "$name" + printf '\tprintf %s $(%s.%s.sortdata) > $@\n\n' "'%s\n'" "$art" "$name" + + listings=" + feed.xml + index.htmllisting + $plural.htmllisting + $plural.txt + " + for lst in $listings; do + printf '%s/%s:\t%s/sortdata.txt\n' "$c" "$lst" "$c" + printf '%s/%s:\t$(%s.%s.sortdata)\n' "$c" "$lst" "$art" "$name" + done + + printf '%s/index.htmllisting\t' "$c" + printf '%s/%s.htmllisting:\t' "$c" "$plural" + printf '$(%s.%s.indexentry)\n' "$art" "$name" + + printf '%s/%s.txt:\t' "$c" "$plural" + printf '$(%s.%s.categorydata)\n' "$art" "$name" + + printf '%s/%s.txt\t' "$c" "$plural" + printf '%s/feed.xml:\t' "$c" + printf '$(%s.%s.feedentry)\n' "$art" "$name" + + printf '%s/%s.htmllisting\t' "$c" "$plural" + printf '%s/%s.xml:\t' "$c" "$plural" + printf '%s/%s.txt\n' "$c" "$plural" + + printf '%s/%s.xml.gz:\t%s/%s.xml\n' "$c" "$plural" "$c" "$plural" +} - printf '%s/categories.txt\t%s/feed.xml\t%s/index.htmllisting:' \ - "$c" "$c" "$c" - printf '\t%s/sortdata.txt\t$(articles.%s.sortdata)\n' "$c" "$name" - printf '%s/index.htmllisting:\t$(articles.%s.indexentry)\n' "$c" "$name" - printf '%s/categories.txt:\t$(articles.%s.categorydata)\n' "$c" "$name" - printf '%s/categories.xml:\t%s/categories.txt\n' "$c" "$c" - printf '%s/categories.txt\t%s/feed.xml:\t$(articles.%s.feedentry)\n' \ - "$c" "$c" "$name" +for langlink in src/collections/*; do + for colllink in "$langlink"/*; do + collectionentries "$langlink" "$colllink" + done done |
