diff options
author | kaotisk <kaotisk@arching-kaos.org> | 2025-03-17 19:19:07 +0200 |
---|---|---|
committer | kaotisk <kaotisk@arching-kaos.org> | 2025-03-17 19:19:07 +0200 |
commit | 4948af31d6edf9db7c85b012a3af27741a7a9c89 (patch) | |
tree | aab959b4ad33d5f53f9f6137c622af32bf43deaf | |
parent | 5cefcf9c88d0b85d651ec7b33ca4f408c55f5347 (diff) | |
download | arching-kaos-tools-4948af31d6edf9db7c85b012a3af27741a7a9c89.tar.gz arching-kaos-tools-4948af31d6edf9db7c85b012a3af27741a7a9c89.tar.bz2 arching-kaos-tools-4948af31d6edf9db7c85b012a3af27741a7a9c89.zip |
new functions in AKFS
-rwxr-xr-x | lib/_ak_fs | 60 |
1 files changed, 60 insertions, 0 deletions
@@ -617,6 +617,21 @@ function _ak_fs_net_cat(){ fi } +function _ak_fs_net_get(){ + if [ -z $1 ] + then + echo "Please provide a SHA512 hash" + exit 1 + fi + echo $1 | grep "[0123456789abcdef]\{128\}" > /dev/null 2>&1 + if [ $? -ne 0 ] + then + echo "Look, I asked for a SHA512 hash, please try again" + exit 1 + fi + _ak_fs_net_cat $1 $2 > $3 +} + function _ak_fs_from_map_net_get_original_hash(){ TEMPDIR=$(_ak_make_temp_directory) cd $TEMPDIR @@ -655,6 +670,44 @@ function _ak_fs_from_map_net_get_original_hash(){ fi } +function _ak_fs_from_map_net_get_original_filename(){ + TEMPDIR=$(_ak_make_temp_directory) + cd $TEMPDIR + if _ak_fs_verify_input_is_hash "$1" + then + _ak_he_list_peers | while read peer + do + _ak_log_debug "Trying $(_ak_he_url_request_map_hash_from_peer ${peer} $1)..." + curl -s --connect-timeout 3 -o ${TEMPDIR}/peer_${peer}.reply $(_ak_he_url_request_map_hash_from_peer ${peer} $1) + done + find . -type f | while read reply + do + cat ${reply} | jq >/dev/null 2>&1 + if [ $? -eq 0 ] + then + _ak_log_error "Found error in reply: $(cat ${reply} | jq -r '.error')" + else + if [ $(cat ${reply} | wc -l) -ne 2 ] + then + _ak_log_error "${reply} is not two lines long" + exit 1 + else + _ak_log_info "${reply} is two lines long" + fi + if [ $(cat ${reply} | grep '^[0-9a-z]\{128\} ' | wc -l) -eq 2 ] + then + _ak_log_info "${reply} contains two hashes" + else + _ak_log_error "${reply} doesn't contain the appropriate info" + exit 1 + fi + cat ${reply} | head -n 1 | awk '{print $2}' + break + fi + done + fi +} + function _ak_fs_from_map_net_get_root_hash(){ TEMPDIR=$(_ak_make_temp_directory) cd $TEMPDIR @@ -693,6 +746,13 @@ function _ak_fs_from_map_net_get_root_hash(){ fi } +function _ak_fs_net_get_from_map_hash(){ + if _ak_fs_verify_input_is_hash "$1" + then + _ak_fs_net_get `_ak_fs_from_map_net_get_root_hash $1` `_ak_fs_from_map_net_get_original_hash $1` `_ak_fs_from_map_get_original_filename $1` + fi +} + function _ak_fs_net_cat_from_map_hash(){ if _ak_fs_verify_input_is_hash "$1" then |