make: statistics (just for fun)
generates output:
chapter:
╭──────────────────────────────────┬──────────────────────╮
│ name (string) │ item_count (integer) │
├──────────────────────────────────┼──────────────────────┤
│ Free software │ 7 │
│ Documented │ 5 │
│ Semantic versioning │ 5 │
│ Compatible with itself │ 6 │
│ Compatible with others │ 6 │
│ Modular architecture │ 4 │
│ Extensible │ 7 │
│ Testable │ 4 │
│ Safe code and sustainability │ 6 │
│ Small code footprint │ 3 │
│ Sane dependencies │ 10 │
│ Easily auditable │ 3 │
│ Reproducible builds │ 2 │
│ Trustworthy packages and sources │ 6 │
│ Network interactions │ 4 │
│ Localized/internationalized │ 11 │
│ Communication channels │ 23 │
│ Accept contributions │ 13 │
│ Open development – has public: │ 4 │
╰──────────────────────────────────┴──────────────────────╯
Record count: 19
# Sane Software Manifesto helper tools
# Copyright © 2019 František Kučera (Frantovo.cz, GlobalCode.info)
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, version 3.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
validate:
xmllint --noout --schema ssm.xsd ssm.en.xml
xhtml:
xsltproc --output ssm.en.xhtml --nonet ssm.xsl ssm.en.xml
clean:
rm -f ssm.en.xhtml
publish:
scp ssm.en.xhtml globalcode.info:/var/www/sane-software.globalcode.info/v_0/index.xhtml
scp style.css globalcode.info:/var/www/sane-software.globalcode.info/v_0/
# Prints a table with number of items in particular chapters:
statistics:
cat ssm.en.xml \
| relpipe-in-xmltable \
--namespace "m" "tag:globalcode.info,2019:sane-software/manifesto" \
--relation "chapter" \
--records "//m:chapter" \
--attribute "name" string "m:name" \
--attribute "item_count" integer "count(descendant::m:item)" \
| relpipe-out-tabular
# try also relpipe-out-gui to get the chart