mirror of
https://github.com/mrrpnya/lipu-sona.git
synced 2025-02-13 16:44:39 +00:00
replaced neocities upload script with an rsync command
This commit is contained in:
parent
69390b380d
commit
aa096830d7
2 changed files with 1 additions and 107 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -4,4 +4,5 @@ remotehashes.txt
|
||||||
Makefile.cfg
|
Makefile.cfg
|
||||||
upload.pwd
|
upload.pwd
|
||||||
upload.lasttime
|
upload.lasttime
|
||||||
|
upload.sh
|
||||||
out/
|
out/
|
||||||
|
|
107
upload.sh
107
upload.sh
|
@ -1,107 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
# vi:sw=2
|
|
||||||
|
|
||||||
if ! [[ -f upload.pwd ]]; then
|
|
||||||
echo "You need a file named upload.pwd with the following format:"
|
|
||||||
echo "N_USER=[your neocities username]"
|
|
||||||
echo "N_PWD=[your neocities password]"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
source ./upload.pwd
|
|
||||||
|
|
||||||
if [ "$1" == "-h" ]; then
|
|
||||||
echo "Usage:"
|
|
||||||
echo "$0 -f filename [filename] ... -- upload specific files"
|
|
||||||
echo "$0 -n -- upload files whose moddates are later than last upload time"
|
|
||||||
echo ""
|
|
||||||
echo "By default, the program checks neocities for a list of files,"
|
|
||||||
echo "compares their sha1sums against ones in the out directory,"
|
|
||||||
echo "and uploads whichever files differ."
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
#echo "Last upload at $LASTUPLOAD"
|
|
||||||
|
|
||||||
UPFILES=()
|
|
||||||
UPARGS=()
|
|
||||||
|
|
||||||
if [ "$1" == "-f" ]; then
|
|
||||||
|
|
||||||
shift
|
|
||||||
for f in "$@"; do
|
|
||||||
UPFILES+=("$f")
|
|
||||||
UPARGS+=("-F" "$f=@out/$f")
|
|
||||||
done
|
|
||||||
elif [ "$1" == "-n" ]; then
|
|
||||||
|
|
||||||
LASTUPLOAD=`stat -c %Y upload.lasttime 2>/dev/null`
|
|
||||||
if [[ -z $LASTUPLOAD ]]; then LASTUPLOAD=0; fi
|
|
||||||
|
|
||||||
FILES=`find out/ -type f -name '[!.]*'`
|
|
||||||
|
|
||||||
for f in $FILES; do
|
|
||||||
MTIME=`stat -c %Y $f`
|
|
||||||
#echo "MTIME for $f: $MTIME"
|
|
||||||
if [[ $MTIME -gt $LASTUPLOAD ]]; then
|
|
||||||
REMOTENAME="${f#out/}"
|
|
||||||
echo "File $REMOTENAME needs uploading"
|
|
||||||
UPFILES+=("$REMOTENAME")
|
|
||||||
UPARGS+=("-F" "$REMOTENAME=@$f")
|
|
||||||
#curl -F "$REMOTENAME=@$f" "https://$N_USER:$N_PWD@neocities.org/api/upload"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
if ! command -v curl > /dev/null; then
|
|
||||||
echo "This program needs the 'curl' utility to perform HTTP requests."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! command -v jq > /dev/null; then
|
|
||||||
echo "This program needs the 'jq' utility to parse JSON outputs."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Checking neocities for a file list..."
|
|
||||||
FILELIST=`curl -sS "https://$N_USER:$N_PWD@neocities.org/api/list"`
|
|
||||||
|
|
||||||
FILERESULT=`echo "$FILELIST" | jq -r ".result"`
|
|
||||||
|
|
||||||
if [ "$FILERESULT" != 'success' ]; then
|
|
||||||
echo "Error while requesting file list."
|
|
||||||
echo "$FILELIST"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo $FILELIST | jq -cr '.files[]|select(.is_directory == false)|[.sha1_hash,.path] | @tsv' | sed 's/\t/ /' | sort -k2 > remotehashes.txt
|
|
||||||
|
|
||||||
( cd out; find . -name '[!.]*' -type f -exec sha1sum {} + | sort -k2 | sed 's/ \.\// /' ) > localhashes.txt
|
|
||||||
|
|
||||||
UPDFILES=`diff -U0 localhashes.txt remotehashes.txt | grep ^-[0-9a-f] | cut -d " " -f3`
|
|
||||||
|
|
||||||
for f in $UPDFILES; do
|
|
||||||
echo "* $f needs to be updated."
|
|
||||||
UPFILES+=("$f")
|
|
||||||
UPARGS+=("-F" "$f=@out/$f")
|
|
||||||
done
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ ${#UPARGS[@]} -gt 0 ]]; then
|
|
||||||
if [[ ! ${NOUPLOAD} ]]; then
|
|
||||||
# Upload 20 files at a time to avoid cURL crashes
|
|
||||||
STARTINDEX=0
|
|
||||||
while [ $STARTINDEX -lt ${#UPARGS[@]} ]; do
|
|
||||||
curl ${UPARGS[@]:$STARTINDEX:20} "https://$N_USER:$N_PWD@neocities.org/api/upload" && touch upload.lasttime
|
|
||||||
STARTINDEX=$(($STARTINDEX+20))
|
|
||||||
done
|
|
||||||
else
|
|
||||||
echo "Not uploading differing files."
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "No files need to be uploaded."
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue