free software resistance

 the cost of computing freedom is eternal vigilance

### chtm.fig *originally posted:* oct 2024 chtm.fig: ``` proginf "chtm 0.1, oct 2024 mn" ## groups and matches instances of non-html.file with non-html.file.html ## to help locate files that do not have corresponding html pages # 2024 mn # # Permission to use, copy, modify, and/or distribute this software for any # purpose with or without fee is hereby granted. # # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. qu 34 chr p "echo ; for each in 02 10 11 12 14 15 16 17 18 19 20 21 22 23 24 ; do for mo in Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec ; do find . -type f -exec stat -FL {} + | tr -d '*' | awk '{print $9 " plus qu plus " " plus qu plus " $6 " plus qu plus " " plus qu plus " $7 " plus qu plus " " plus qu plus " $5 " plus qu plus " " plus qu plus " $10}' | grep " plus qu plus "^20$each $mo" plus qu plus " ; echo ; done | uniq ; echo ; echo ; done" arrshell ## get year, month, day, size, path buf arr mid 1 0 forin each p try lbuf split each " " on lbuf mid 1 1 tw lbuf mid 2 1 th lbuf mid 3 1 fo lbuf mid 4 1 fi lbuf mid 5 1 doth fi right 5 dot4 fi right 4 ## if it ends in .htm or .html leave it, print it- but if it doesnt, add .html and... ifequal dot4 ".htm" # dont count .htm files either doth ".html" next ifequal doth ".html" doth "" else ## ... and append "f" to the year now on plus "f" swap now on now fi plus ".html" swap now fi next now on plus " " plus tw plus " " plus th plus " " plus fo plus " " plus fi buf plus now except now "" print next next ## reverse each line, sort, reverse each line buflen buf len for each 1 buflen 1 now arrget buf each reverse buf arrset each now next buf arrsort buflen buf len for each 1 buflen 1 now arrget buf each reverse buf arrset each now next ## group by matching filename ## non-html files will now match html files following file.ext.html, plus year will be yyyyf show "2015" # only show groups that include this string bufette arr mid 1 0 b "" trimmed "" forin each buf try now each reverse eachlen instr now "/" minus 1 ifmore eachlen 0 trimmed now left eachlen reverse ifequal trimmed b now else cbuf join bufette "|" instr cbuf show iftrue cbuf forin every bufette now every print next now "" print next bufette 0 arr mid 1 0 next b trimmed bufette plus each next except now "" next next ``` license: 0-clause bsd ``` # 2024 mn # # Permission to use, copy, modify, and/or distribute this software for any # purpose with or without fee is hereby granted. # # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ``` => https://freesoftwareresistance.neocities.org