free software resistance
the cost of computing freedom is eternal vigilance
### cklinks.fig
*originally posted:* oct 2024
this program may be buggy, code was just added to try to add the path from the file containing the link to the link, if it doesnt have one. this checks all the text files from the path (recursively) for lines with gemini links to local files, then checks for broken links.
```
links "find . -type f -exec grep -H '^=>' {} + | grep -v ':=> http'" arrshell
forin each links
try
filep split each ":" mid 1 1
urlp split each ":=> " mid 2 1 split urlp " " mid 1 1
extplen split filep "/" len minus 1
ckfilep instr filep "/"
iftrue ckfilep
ckurlp urlp left 2
ifequal ckurlp "./"
urlplen urlp len minus 2
urlpr urlp right urlplen
next
extp split filep "/" left extplen join extp "/" plus "/"
now extp plus urlp swap now urlp
extpextp extp plus extp
now split urlp extpextp join now extp swap now urlp
now split urlp "//" join now "/" swap now urlp
next
# now filep plus "|" plus urlp print
p arropen urlp
except
p each print
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.
```
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