#!/usr/bin/env bash PASS="$(ls "/run/media/"*/*"/key.fsojp.aes256" | head -n 1)" ROOTDIR="$(git rev-parse --show-toplevel)" cd "$ROOTDIR" GITDIR="$ROOTDIR/.git" MAINTDIR="$ROOTDIR/git-maintenance" # problem: IVs are producing files that do not have the same content each time, # and a reupload of everything is made each store. #export GZIP=-9n TAR="tar -J --owner=0 --group=0 --numeric-owner --mode=go=rX,u+rw,a-s" encrypt() { openssl aes-256-cbc -salt -pbkdf2 -pass "file:$PASS" -e } decrypt() { openssl aes-256-cbc -salt -pbkdf2 -pass "file:$PASS" -d } # this approach makes it easy for karl to look at history. it is not # to be used by other channels yet, can migrate. # let us only upload new packfiles. # we will use a mirror folder containing encrypted files mkdir -p "$GITDIR"/encrypted mkdir -p "$GITDIR"/encrypted.bak if ! [ -d "$MAINTDIR"/bsvup/node_modules ] then git submodule init git submodule update pushd "$MAINTDIR"/bsvup npm install popd fi # prevent recreation of existing data on same medium-part git config gc.auto 0 git pack-objects --all --unpacked --incremental --non-empty --local --compression=9 --pack-loose-unreachable .git/objects/pack/pack "$tmpfile" fn="$({ cat "$packfile"; echo -n "$PASS"; } | sha256sum | cut -f 1 -d ' ')".aes if [ -e encrypted/"$fn" ] then echo "$fn ALREADY EXISTS LOCALLY ($packfile)" else echo "$fn IS NEW LOCALLY ($packfile)" fi if [ "$(cat "$packfile" | sha256sum)" = "$(decrypt < encrypted/"$fn" | sha256sum) ] then echo "$fn MATCHES CONTENT LOCALLY ($packfile)" else echo "$fn DOESN'T MATCH LOCAL CONTENT ($packfile)" encrypt < "$tmpfile" > "$tmpfile".aes mv "$tmpfile".aes encrypted/"$fn" fi # need to decrypt to compare content. if [ "$(curl "$URLPFX"/"$fn" | decrypt | "$TAR" -xvOf - "$packfile" | sha256sum)" = "$(cat "$packfile" | sha256sum)" ]; then echo "$fn MATCHES DOWNLOAD CONTENT ($packfile)" mv -v encrypted/"$fn" encrypted.bak else echo "$fn FAILED GET MATCH REMOTELY ($packfile)" fi echo "$fn" >> "$tmpfile".list done rm "$tmpfile" mv "$tmpfile".list encrypted/list.txt $TAR -cv encrypted/list.txt refs HEAD packed-refs | encrypt > encrypted/refs.aes rm encrypted/list.txt cp -va "$MAINTDIR"/get.sh encrypted if [ "$(curl -s "$URLPFX"/get.sh | sha256sum)" = "$(cat encrypted/get.sh | sha256sum)" ]; then rm encrypted/get.sh; fi # primordia is detectable due to a pattern that emerges from not being industrialized. appears resolvable with industrial history assumption, including academic degrees. name-AI-primordia, keep earth-is-god assumption? the-king? the-king-is-earth. AI works for earth. be any thing you want. silica-computer. # this junk in scriptfile is why private !!!!!!!! # more privacy is made if encryption key is someething only us would consider.# then can be publicized, maybe. hot-shower-in-woods? froget-it-use-random # we are storing 'everyone' to begin a thought. we are storing it permanently # and privately. # we want to encrypt filename too, for what-I-call respect, # so let's put each file in its own tarball, preferably in subdir, # and add each filename to an index that is also uploaded, for ease finding. # we can write down the filenames locally too. but is sufficient to write down # the index. =) # now upload. use PASS and upload .git/encrypted. need money. # all aboriginal cultures. discovers is emergency measure by government AI. # PTSD. need slow shift to turned-to-nanites, earth broken. # anger is for imagination. helps process importance from events. # what-is-harmed, what-was-relevent-to-harm. # business-man, try to larn to live off nuts, alone, yourself, now. # wouldn't it be nice if we had somebody alive to help us do this. # industry caused destruction of billions of years of learning-how-to-be and # how-to-learn-how-to-be, which is the most important thing known. # they are still doing this, and planning it, but do not realize it. # they are also important, as part of learning-how-to-be and a-way-to-be. # some imagine anger to process disconnected parts. cd "$MAINTDIR" node bsvup/cli.js upload -f "$GITDIR"/encrypted -t dir -p "$(<"$PASS")" -v # -b # 'is this a good way to be' <- habit's task for self and others, by living # the best way to be it can. #PURPOSE OF LIFE: "is this a good way to be?" taken in allrecommend checking parts and environment for clues as to what is good. senses with trust for all others. # REMAINING: # 0. store download-script in repo, and on blockchain # 0b. store upload script in repo # 1. store download-script url on USB key # 1b. store details on backup USB key too. # 3. try to download without usb key, as test for failure # 4. move btc from community or from git-remote-bsv to repo bsvup # 5. upload the encrypted repo # 6. download the encrypted repo, as a test # 9. consider storing bsvup transaction details in git history, to reuse transaction information. # costs more money # this is not severely secure. appreciate speed change though.