diff options
author | kaotisk <kaotisk@arching-kaos.org> | 2024-07-16 05:24:52 +0300 |
---|---|---|
committer | kaotisk <kaotisk@arching-kaos.org> | 2024-07-16 05:24:52 +0300 |
commit | 38ad449f562af439640563112e2dc38fe2a960cd (patch) | |
tree | b3d957e61d0de180e258d0479a9d11e51caa55d8 /modules/smfiles | |
parent | 887f912491cdeaa1c1a8b4d13d48c46909f391b7 (diff) | |
download | arching-kaos-tools-38ad449f562af439640563112e2dc38fe2a960cd.tar.gz arching-kaos-tools-38ad449f562af439640563112e2dc38fe2a960cd.tar.bz2 arching-kaos-tools-38ad449f562af439640563112e2dc38fe2a960cd.zip |
Moved `ak-sm-files` to module `smfiles`
Also, cleaning up the `bin/` directory:
- ak-sm-filejoiner and
- ak-sm-filesplitter
are now part of `lib/_ak_smfiles`
Updated README as well removing the above scripts and fixing the typo:
- sm-files -> smfiles
from the modules list.
Note that the module part, as well as the `files` module are going to be
removed in favor of `ak-fs`. Stay tuned for that.
To update, do:
```
git pull
./update.sh
```
Diffstat (limited to 'modules/smfiles')
-rwxr-xr-x | modules/smfiles/lib.sh | 129 | ||||
-rwxr-xr-x | modules/smfiles/main.sh | 56 |
2 files changed, 185 insertions, 0 deletions
diff --git a/modules/smfiles/lib.sh b/modules/smfiles/lib.sh new file mode 100755 index 0000000..ef88278 --- /dev/null +++ b/modules/smfiles/lib.sh @@ -0,0 +1,129 @@ +#!/bin/bash + +source $AK_LIBDIR/_ak_log +source $AK_LIBDIR/_ak_ipfs +source $AK_LIBDIR/_ak_gpg +source $AK_LIBDIR/_ak_zblock +source $AK_LIBDIR/_ak_smfiles + +_ak_sm_files_add(){ + FILENAME="$1" + _ak_sm_files_main $FILENAME $CRD + cat data | jq -M +} +_ak_sm_files_main(){ + FILENAME="$1" + CRP="$2" + + TEMPASSIN="$(_ak_make_temp_directory)" + cd $TEMPASSIN + + echo "Adding $FILENAME" + _ak_log_info "Switching to tmp folder..." + if [ $? -eq 0 ] + then + _ak_log_info "Success" + else + _ak_log_error "Error with tmp folder" + exit 5 + fi + _ak_log_info "Copying $1 to $TEMPASSIN" + + cp $CRP/$FILENAME $FILENAME + if [ $? -eq 0 ] + then + _ak_log_info "Copied successfully" + else + _ak_log_error "Error copying..." + fi + + _ak_log_info "Adding $FILENAME to IPFS..." + FILE_IPFS_HASH=$(_ak_ipfs_add $FILENAME) + if [ $? -eq 0 ] + then + _ak_log_info "Added $FILENAME to IPFS" + else + _ak_log_error "Error in adding the $FILENAME to IPFS" + fi + + _ak_log_info "Adding $FILE to SHAMAPSYS..." + FILEMAP_SHA512_HASH=$(_ak_sm_file_splitter $FILENAME) + if [ $? -eq 0 ] + then + _ak_log_info "Added $FILENAME to SHAMAPSYS" + else + _ak_log_error "Error in adding the $FILENAME to SHAMAPSYS" + fi + + _ak_log_info "Signing..." + SIGN_FILE=$FILENAME".asc" + _ak_gpg_sign_detached $SIGN_FILE $FILENAME + if [ $? -eq 0 ] + then + _ak_log_info "Signed" + else + _ak_log_error "Error while signing" + fi + + _ak_log_info "Adding signature to IPFS" + SIGNATURE=$(_ak_ipfs_add $SIGN_FILE) + if [ $? -eq 0 ] + then + _ak_log_info "Added" + else + _ak_log_error "Error while adding" + fi + + _ak_log_info "Adding signature to SHAMAPSYS" + SHAMAPSIGMAP=$(_ak_sm_file_splitter $SIGN_FILE) + if [ $? -eq 0 ] + then + _ak_log_info "Added" + else + _ak_log_error "Error while adding" + fi + + cat > data <<EOF +{ + "timestamp":"$(date -u +%s)", + "filename":"$FILENAME", + "shamap":"$FILEMAP_SHA512_HASH", + "shamapsig":"$SHAMAPSIGMAP", + "ipfs":"$FILE_IPFS_HASH", + "detach":"$SIGNATURE" +} +EOF + + echo "Printing data..." + cat data + echo "Publishing..." + + _ak_zblock_pack sha-files/announce $(pwd)/data + if [ $? -eq 0 ] + then + echo "cool" + else + echo "not?" + exit 2 + fi +} + +_ak_sm_files_index(){ + tail -n1 $AK_WORKDIR/fmp/* | grep '^[abcdef1234567890]' | awk '{ print $2 }' +} + +_ak_sm_files_ls_mapfiles(){ + cd $AK_WORKDIR/fmp + for f in `find . -type f | sed -e 's/\.\///g'` + do + FILENAME="$(tail -n 1 $f | grep '^[abcdef1234567890]' | awk '{ print $2 }')" + FILEHASH="$(tail -n 1 $f | grep '^[abcdef1234567890]' | awk '{ print $1 }')" + MAPFILE="$f" + printf "\nMap: %s\nFilename: %s\nSum: %s\n\n" $MAPFILE $FILENAME $FILEHASH + done +} + +_ak_sm_files_full_index(){ + tail -n 1 $AK_WORKDIR/fmp/* | grep '^[abcdef1234567890]' +} + diff --git a/modules/smfiles/main.sh b/modules/smfiles/main.sh new file mode 100755 index 0000000..f7662c3 --- /dev/null +++ b/modules/smfiles/main.sh @@ -0,0 +1,56 @@ +#!/bin/bash +## sm files +## +## -h, --help Prints this help message +## +## --add <file> Adds file to zchain as a zblock +## +## --index List files +## +## --full-index List all files +## +## --ls-map-files List map files +## +ZFILESDIR="$AK_WORKDIR/files" +pwd > .pwd +CRD=$(cat .pwd) + +fullprogrampath="$(realpath $0)" +PROGRAM="$(realpath $0 | rev |cut -d '/' -f 2 | rev)" +descriptionString="Module to files in zchain" + +source $AK_LIBDIR/_ak_log +source $AK_LIBDIR/_ak_script +source $AK_MODULESDIR/$PROGRAM/lib.sh + +if [ ! -d $ZFILESDIR ] +then + mkdir $ZFILESDIR + if [ $? -eq 0 ] + then + _ak_log_info "Folder $ZFILESDIR created!" + else + _ak_log_error "Failed to create $ZFILESDIR folder" + exit 1 + fi + cd $ZFILESDIR +else + _ak_log_info "$ZFILESDIR found!" +fi + + + +if [ ! -z $1 ] +then + case $1 in + -h | --help) _ak_usage; exit;; + --add) _ak_sm_files_add $2; exit;; + --index) _ak_sm_files_index; exit;; + --full-index) _ak_sm_files_full_index; exit;; + --ls-map-files) _ak_sm_files_ls_mapfiles; exit;; + *) _ak_usage; exit;; + esac +else + _ak_usage +fi + |