diff options
| author | kaotisk <kaotisk@arching-kaos.org> | 2024-06-30 22:39:50 +0300 | 
|---|---|---|
| committer | kaotisk <kaotisk@arching-kaos.org> | 2024-06-30 22:39:50 +0300 | 
| commit | de53c55383ed07e0b65f69d33f5284a31d791664 (patch) | |
| tree | f1e426c88a5d0a48ca463eccd21c1d12524d8f3a /lib/_ak_zchain | |
| parent | 9531bcdffff4e44e8aadb000f0b577d59a32ea3f (diff) | |
| download | arching-kaos-tools-de53c55383ed07e0b65f69d33f5284a31d791664.tar.gz arching-kaos-tools-de53c55383ed07e0b65f69d33f5284a31d791664.tar.bz2 arching-kaos-tools-de53c55383ed07e0b65f69d33f5284a31d791664.zip  | |
Refactoring
Diffstat (limited to 'lib/_ak_zchain')
| -rwxr-xr-x | lib/_ak_zchain | 107 | 
1 files changed, 100 insertions, 7 deletions
diff --git a/lib/_ak_zchain b/lib/_ak_zchain index d15048a..5dbcf62 100755 --- a/lib/_ak_zchain +++ b/lib/_ak_zchain @@ -80,18 +80,18 @@ _ak_zchain_rebase(){  _ak_zchain_extract_cids(){      if [ ! -z $1 ] && [ -n "$1" ]      then -        ak-enter $1 | jq  -M | grep Qm | sed -e 's/".*"://g; s/ //g; s/[{,"]//g' | sort | uniq +        ak zchain --crawl $1 | jq  -M | grep Qm | sed -e 's/".*"://g; s/ //g; s/[{,"]//g' | sort | uniq      else -        ak-enter | jq -M | grep Qm | sed -e 's/".*"://g; s/ //g; s/[{,"]//g' | sort | uniq +        ak zchain --crawl | jq -M | grep Qm | sed -e 's/".*"://g; s/ //g; s/[{,"]//g' | sort | uniq      fi  }  _ak_zchain_extract_data_cids(){      if [ ! -z $1 ]      then -        ak-enter $1 | jq | grep ipfs | awk '{print $2}' | sed -e 's/"//g;s/,//g' +        ak zchain --crawl $1 | jq | grep ipfs | awk '{print $2}' | sed -e 's/"//g;s/,//g'      else -        ak-enter | jq | grep ipfs | awk '{print $2}' | sed -e 's/"//g;s/,//g' +        ak zchain --crawl | jq | grep ipfs | awk '{print $2}' | sed -e 's/"//g;s/,//g'      fi  } @@ -120,14 +120,107 @@ _ak_zchain_calculate_size(){      rm -rf $temp  } +_ak_zchain_crawl(){ +    entrance="$(cat $AK_ZLATEST)" +    verify=1 +    limit=0 +    fromIpns=0 +    while [ "$#" ]; do +        case "$1" in +            -h | --help) +                printf " +ak zchain --crawl [-N | --no-verify] [-l | --limit <number>] [zblock] +ak zchain --crawl [-N | --no-verify] [-l | --limit <number>] -n <zchain> +Usage: + +    --help, -h                             Print this help and exit + +    --chain <ipns-link>, -n <ipns-link>    Crawl specified chain + +    --no-verify, -N                        Don't verify signatures + +    <ipfs-link>                            Specify IPFS CID for entrance + +Note that combined flags don't work for now +Running with no flags crawls your chain based on AK_ZLATEST environment +variable" +                exit 1 +                ;; +            -l | --limit) +                limit=$2 +                shift 2 +                ;; +            -N | --no-verify) +                verify=0 +                shift +                ;; +            -n | --chain | --ipns) +                fromIpns=1 +                ipns=$1 +                shift +                ol=$1 +                entrance="$(_ak_ipns_resolve $1)" +                if [ $? -ne 0 ] +                then +                    _ak_log_error "Could not resolve IPNS name" +                    exit 1 +                fi +                shift +                ;; +            *) +                test="$1" +                if [ ! -z "$test" ] && [ $fromIpns -eq 0 ] +                then +                    _ak_ipfs_cid_v0_check "$test" +                    entrance="$test" +                elif [ -z "$entrance" ] && [ $fromIpns -eq 1 ] +                then +                    entrance="$(cat $AK_ZLATEST)" +                fi +                break +        esac +    done +    # We assign the IPFS CIDv0 of an empty file as this is used +    # as our GENESIS block, hence the "seed" that the tree grows +    # from. +    seed="$(cat $AK_ZGENESIS)" +    # We assume that we found the entrance inside a block, hence +    # ZBLOCK is labeled as previous +    zblock="$entrance" +    # Enter temp folder +    TEMPASSIN="$(_ak_make_temp_directory)" +    cd $TEMPASSIN +    counter=0 +    # The loop +    # We break the loop from inside the loop +    while true +    do +        if [ $counter -eq 0 ] +        then +            echo -n '[' +        fi +        counter=$(($counter + 1)) +        _ak_zblock_show "$zblock" +        if [ $limit -ne 0 ] && [ $limit -eq $counter ] +        then +            echo -n ']' +            exit 0 +        else +            echo -n ',' +        fi +    done +} +  _ak_zchain_crawl_self(){ -    ak enter +    _ak_zchain_crawl  }  _ak_zchain_crawl_remote_ipfs(){ -    ak enter $1 +    _ak_zchain_crawl $1 +    #ak enter $1  }  _ak_zchain_crawl_remote_ipns(){ -    ak enter -n $1 +    _ak_zchain_crawl -n $1 +    #ak enter -n $1  }  | 
