From cd4351906daaac3b77a2f5fe6b3a2f664e9b88b4 Mon Sep 17 00:00:00 2001 From: olpc user Date: Tue, 7 Jan 2020 15:46:05 -0800 Subject: scripts to store and get --- git-maintenance/.bsv/key | 1 + git-maintenance/bsvup | 1 + git-maintenance/get.sh | 41 ++++++++++++++++++++ git-maintenance/store.sh | 97 ++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 140 insertions(+) create mode 100644 git-maintenance/.bsv/key create mode 160000 git-maintenance/bsvup create mode 100755 git-maintenance/get.sh create mode 100755 git-maintenance/store.sh (limited to 'git-maintenance') diff --git a/git-maintenance/.bsv/key b/git-maintenance/.bsv/key new file mode 100644 index 0000000..20b23c3 --- /dev/null +++ b/git-maintenance/.bsv/key @@ -0,0 +1 @@ +d4ae1361897c3df81e3c1abaf4a304c949657cb3e1d5dceba222ebbaf7f941e8a61882ebaca555cbb4828a1b55d54e9b16e0896c0182b7e21180ce9f3c488649 \ No newline at end of file diff --git a/git-maintenance/bsvup b/git-maintenance/bsvup new file mode 160000 index 0000000..cb8d1fb --- /dev/null +++ b/git-maintenance/bsvup @@ -0,0 +1 @@ +Subproject commit cb8d1fb6165213b08549cdc3bc352337aa5aa0b7 diff --git a/git-maintenance/get.sh b/git-maintenance/get.sh new file mode 100755 index 0000000..f05d388 --- /dev/null +++ b/git-maintenance/get.sh @@ -0,0 +1,41 @@ +#!/usr/bin/env bash + +PASS="$(ls "/run/media/"*/*"/key.fsojp.aes256" | head -n 1)" +PUBKEY=1KwpZECcrGWnM3AFVSbv3Xr5qguV4yG2sV + +URLPFX="https://bico.media/$PUBKEY" +REPONAME=for-slow-organization-job-private + +echo "" +echo "This script is expected to be kept in sync with:" +echo " ${URLPFX}/get.sh" +echo "" + +# 2. mkdir -p .git/encrypted and git init +mkdir -p "$REPONAME" +cd "$REPONAME" +git init + +# prevent recreation of existing data on same medium-part +git config gc.auto 0 + +mkdir -p .git/encrypted + +# 3. download .git/encrypted with wget +wget "$URLPFX"/refs.aes -O .git/encrypted/refs.aes +openssl aes-256-cbc -salt -pbkdf2 -pass "file:$PASS" -d -in .git/encrypted/refs.aes | tar -zxvf - + +for encpack in $(<.git/encrypted/list.txt) +do + wget "$URLPFX"/"$encpack" -O .git/encrypted/"$encpack" + openssl aes-256-cbc -salt -pbkdf2 -pass "file:$PASS" -d -in .git/encrypted/"$encpack" | tar -zxvf - +done + +for pack in .git/objects/pack/*.pack +do + git index-pack "$pack" +done + +git checkout + +echo DONE diff --git a/git-maintenance/store.sh b/git-maintenance/store.sh new file mode 100755 index 0000000..b073e71 --- /dev/null +++ b/git-maintenance/store.sh @@ -0,0 +1,97 @@ +#!/usr/bin/env bash + +PASS="$(ls "/run/media/"*/*"/key.fsojp.aes256" | head -n 1)" +ROOTDIR="$(git rev-parse --show-toplevel)" +GITDIR="$ROOTDIR/.git" +MAINTDIR="$ROOTDIR/git-maintenance" +cd "$ROOTDIR" + +export GZIP=-9n +TAR="tar -z --owner=0 --group=0 --numeric-owner --mode=go=rX,u+rw,a-s" + +# 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 +if ! [ -d "$GITDIR"/encrypted ] +then + mkdir -p "$GITDIR"/encrypted +fi +if ! [ -d "$MAINTDIR"/bsvup/node_modules ] +then + git submodule init + git submodule update + pushd "$MAINTDIR"/bsvup + npm install + popd +fi + +# TODO: once key picked, do what? + +# prevent recreation of existing data on same medium-part +git config gc.auto 0 + +tmpfile="$(mktemp)" +for packfile in "$GITDIR"/objects/pack/*.pack +do + $TAR -cv "$packfile" > "$tmpfile" + openssl aes-256-cbc -salt -pbkdf2 -pass "file:$PASS" -e -in "$tmpfile" -out "$tmpfile".aes + fn="$({ cat "$tmpfile"; echo -n "$PASS"; } | sha256sum | cut -f 1 -d ' ')".aes + mv "$tmpfile".aes "$GITDIR"/encrypted/"$fn" + echo "$fn" >> "$tmpfile".list +done +rm "$tmpfile" +mv "$tmpfile".list "$GITDIR"/encrypted/list.txt +$TAR -cv ""$GITDIR"/encrypted/list.txt" ""$GITDIR"/refs" ""$GITDIR"/HEAD" ""$GITDIR"/packed-refs" | openssl aes-256-cbc -salt -pbkdf2 -pass "file:$PASS" -e -out ."$GITDIR"/encrypted/refs.aes +rm "$GITDIR"/encrypted/list.txt +cp -va "$MAINTDIR"/get.sh "$GITDIR"/encrypted +# 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 "$MAINTDIR"/bsvup/cli.js upload -f "$GITDIR"/encrypted -t none -p "$(<"$PASS")" -vb + +# '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. -- cgit v1.2.3