2019-05-28 20:49:58 +00:00
#!/bin/bash
echo not a script
exit 1
##
## create a test payload
head -c $(( 2 * 1024 * 1024 * 1024 )) /dev/zero | openssl enc -aes-256-ctr -pass pass:hunter2 -nosalt > garbage.file
2019-05-26 16:30:19 +00:00
##
## testing multiple parallel uploads
## usage: para | tee log
2019-06-18 18:33:31 +00:00
para( ) { for s in 1 2 3 4 5 6 7 8 12 16 24 32 48 64; do echo $s ; for r in { 1..4} ; do for ( ( n = 0; n<s; n++) ) ; do curl -sF "act=bput" -F "f=@garbage.file" http://127.0.0.1:1234/ 2>& 1 & done ; wait; echo; done ; done ; }
2019-05-26 16:30:19 +00:00
##
## display average speed
## usage: avg logfile
avg( ) { awk 'function pr(ncsz) {if (nsmp>0) {printf "%3s %s\n", csz, sum/nsmp} csz=$1;sum=0;nsmp=0} {sub(/\r$/,"")} /^[0-9]+$/ {pr($1);next} / MiB/ {sub(/ MiB.*/,"");sub(/.* /,"");sum+=$1;nsmp++} END {pr(0)}' " $1 " ; }
2019-05-30 13:17:45 +00:00
2019-06-10 19:47:01 +00:00
##
## bad filenames
2019-06-12 16:39:43 +00:00
dirs = ( " $HOME /vfs/ほげ " " $HOME /vfs/ほげ/ぴよ " " $HOME /vfs/ $( printf \\ xed\\ x91) " " $HOME /vfs/ $( printf \\ xed\\ x91/\\ xed\\ x92) " )
mkdir -p " ${ dirs [@] } "
for dir in " ${ dirs [@] } " ; do for fn in ふが " $( printf \\ xed\\ x93) " 'qwe,rty;asd fgh+jkl%zxc&vbn <qwe>"rty' "'" 'uio&asd fgh' ; do echo " $dir " > " $dir / $fn .html " ; done ; done
2019-06-10 19:47:01 +00:00
2019-07-10 01:15:35 +00:00
##
## upload mojibake
fn = $( printf '\xba\xdc\xab.cab' )
echo asdf > " $fn "
curl --cookie cppwd = wark -sF "act=bput" -F " f=@ $fn " http://127.0.0.1:1234/moji/%ED%91/
2019-06-26 18:26:18 +00:00
##
## test compression
wget -S --header= 'Accept-Encoding: gzip' -U 'MSIE 6.0; SV1' http://127.0.0.1:1234/.cpr/deps/ogv.js -O- | md5sum; p = ~ed/dev/copyparty/copyparty/web/deps/ogv.js.gz; md5sum $p ; gzip -d < $p | md5sum
2019-06-28 19:59:59 +00:00
##
## sha512(file) | base64
2019-07-02 00:14:55 +00:00
## usage: shab64 chunksize_mb filepath
2019-06-28 19:59:59 +00:00
2019-07-02 00:14:55 +00:00
shab64( ) { sp = $1 ; f = " $2 " ; v = 0; sz = $( stat -c%s " $f " ) ; while true; do w = $(( v+sp*1024*1024)) ; printf $( tail -c +$(( v+1)) " $f " | head -c $(( w-v)) | sha512sum | cut -c-64 | sed -r 's/ .*//;s/(..)/\\x\1/g' ) | base64 -w0 | cut -c-43 | tr '+/' '-_' ; v = $w ; [ $v -lt $sz ] || break; done ; }
2019-06-28 19:59:59 +00:00
2019-05-30 13:17:45 +00:00
##
## vscode
# replace variable name
# (^|[^\w])oldname([^\w]|$) => $1newname$2
2019-06-26 19:02:15 +00:00
# monitor linter progress
htop -d 2 -p $( ps ax | awk '/electron[ ]/ {printf "%s%s", v, $1;v=","}' )
# prep debug env (vscode embedded terminal)
renice 20 -p $$
# cleanup after a busted shutdown
2019-07-02 23:36:16 +00:00
ps ax | awk '/python[23]? -m copyparty|python[ ]-c from multiproc/ {print $1}' | tee /dev/stderr | xargs kill
# last line of each function in a file
cat copyparty/httpcli.py | awk '/^[^a-zA-Z0-9]+def / {printf "%s\n%s\n\n", f, pl; f=$2} /[a-zA-Z0-9]/ {pl=$0}'
2019-07-10 01:15:35 +00:00
##
## meta
# create a folder with symlinks to big files
for d in /usr /var; do find $d -type f -size +30M 2>/dev/null; done | while IFS = read -r x; do ln -s " $x " big/; done
2019-11-11 04:12:25 +01:00
# py2 on osx
brew install python@2
pip install virtualenv