free software resistance

 the cost of computing freedom is eternal vigilance

### gemlist02.fig *originally posted:* dec 2024 this program is a list generator for gemini. ive written lots of stuff like this, it basically creates a directory. its tailored for this website in that it searches first for "original date" then "originally posted" and if it finds neither it just uses stat -FL. version 0.2 accomplishes the goal of sorting output by month and year, a typo on the page for version 0.1 said "month and day". ``` proginf "gemlist 0.2" # original date: dec 2024 function odt each openf arropen each forin each openf ck instr each "original date:" iftrue ck ordt split each "original date:" mid 2 1 split ordt "*" join ordt "" ltrim rtrim plus " " now "original date: " plus ordt return now next next now "" return now next function op each openf arropen each forin each openf ck instr each "originally posted:" iftrue ck orp split each "originally posted:" mid 2 1 split orp "*" join orp "" ltrim rtrim plus " " now "originally posted: " plus orp return now next next now "" return now next function ost each q 34 chr qsp q plus " " plus q # mmm yyyy mmm d s st "stat -FL '" plus each plus "' | awk '{print $6 " plus qsp plus " $9 " plus qsp plus " $7 " plus qsp plus " $5}'" arrshell mid 1 1 lcase now return st next listbuf arr mid 1 0 counter 0 p "find . -type f" arrshell forin each p buf "" iftrue each orst = ost each ordt = odt each iftrue ordt try ordtrim split ordt " " mid 3 2 join ordtrim " " except ordtrim "" next buf ordtrim plus "=> " plus each plus " " plus ordt else orp = op each iftrue orp try orptrim split orp " " mid 3 2 join orptrim " " except orptrim "" next buf orptrim plus "=> " plus each plus " " plus orp else orstrim split orst " " mid 1 2 join orstrim " " buf orstrim plus "=> " plus each plus " " # now orst prints next next now buf plus "| " plus orst swap now buf listbuf plus buf next next mos "jan feb mar apr may jun jul aug sep oct nov dec" split mos " " yrs "2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024" split yrs " " forin y yrs forin m mos forin each listbuf filedate split each "=>" mid 1 1 ck instr filedate " " iftrue ck yr split filedate " " mid 2 1 mo split filedate " " mid 1 1 ifequal y yr ifequal m mo eachlen each len eachlink instr each "=>" times -1 plus eachlen plus 1 now each right eachlink print now counter plus 1 swap now counter ifmore counter 4 now "" print counter 0 next next next next next next next ``` license: 0-clause bsd ``` # 2018, 2019, 2020, 2021, 2022, 2023, 2024 # # 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