32 lines
890 B
Plaintext
32 lines
890 B
Plaintext
|
Title: Cached Neocities Uploads
|
||
|
Brief: Making uploading of directories to Neocities less painful.
|
||
|
Date: 1707585916
|
||
|
Tags: Bash
|
||
|
CSS: /style.css
|
||
|
|
||
|
Quick and dirty Bash-based sha256sum checksum solution to create stamps for later checking and rejection.
|
||
|
|
||
|
```bash
|
||
|
#!/usr/bin/bash
|
||
|
|
||
|
for cur in ./html/{*,*/*,*/*/*}; do
|
||
|
if [ -f "$cur" ] && [[ ! "$cur" == *.upload-checksum ]]; then
|
||
|
if [ -f "$cur.upload-checksum" ]; then
|
||
|
c=$(cat "$cur.upload-checksum" | sha256sum -c 2> /dev/null)
|
||
|
if [[ "$c" == *OK ]]; then
|
||
|
echo "$cur is up-to-date, skipping"
|
||
|
continue
|
||
|
fi
|
||
|
fi
|
||
|
echo $(sha256sum "$cur") > "$cur.upload-checksum"
|
||
|
d=$(dirname $(realpath --relative-to="./html" "$cur"))
|
||
|
if [[ "$d" == "." ]]; then
|
||
|
neocities upload $cur
|
||
|
else
|
||
|
neocities upload -d $(dirname $(realpath --relative-to="./html" "$cur")) $cur
|
||
|
fi
|
||
|
fi
|
||
|
done
|
||
|
|
||
|
```
|