#!/usr/bin/env bash ### ### arching-kaos-tools ### Tools to interact and build an Arching Kaos Infochain ### Copyright (C) 2021 - 2025 kaotisk ### ### This program is free software: you can redistribute it and/or modify ### it under the terms of the GNU General Public License as published by ### the Free Software Foundation, either version 3 of the License, or ### (at your option) any later version. ### ### This program is distributed in the hope that it will be useful, ### but WITHOUT ANY WARRANTY; without even the implied warranty of ### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ### GNU General Public License for more details. ### ### You should have received a copy of the GNU General Public License ### along with this program. If not, see . ### ## ## Tools for zchains ## ## Usage: ## ## -h, --help Prints this help message ## -r, --reset Reset zchain ## Backs up your latest block into IPFS ## filesystem, replaces it with an empty file ## (GENESIS hardcode) and pushes its IPFS link ## as your zchain's latest zblock. ## Disclaimer: ## This program, does NOT delete anything from ## your IPFS repository, neither denies access to ## previously created blocks. ## --rebase Rebase zchain to a zblock ## Backs up your latest block into IPFS ## filesystem, replaces it with a zblock and ## pushes its IPFS link as your zchain's latest ## zblock. ## Disclaimer: ## This program, does NOT delete anything from ## your IPFS repository, neither denies access to ## previously created blocks. ## --rebase-back-one Rebase zchain one zblock back ## --extract-cids Extracts IPFS CIDv0 links of a zchain ## --extract-data-cids Extracts data IPFS CIDv0 links from a zchain ## --calculate-size Calculates the size of a zchain ## --crawl Crawls zchains ( --crawl --help for more ## options) ## --crawl-self Crawls the local zchain ## --crawl-remote-ipfs Crawls a remote zchain ## --crawl-remote-ipns Crawls a remote zchain from ipns key ## --get-latest Returns the latest zblock from your zchain ## fullprogrampath="$(realpath $0)" PROGRAM=$(basename $0) descriptionString="Zchain tools" source $AK_LIBDIR/_ak_log source $AK_LIBDIR/_ak_script source $AK_LIBDIR/_ak_zchain # Flags to run if [ ! -z $1 ]; then case $1 in -h | --help) _ak_usage; exit;; -r | --reset) _ak_zchain_reset; exit;; --rebase) if [ ! -z $2 ]; then _ak_zchain_rebase $2; else exit 1; fi; exit;; --rebase-back-one) _ak_zchain_rebase "`_ak_zchain_crawl -l 2 | jq -r '.[1].zblock'`" ; exit ;; --extract-cids) _ak_zchain_extract_cids $2; exit;; --extract-data-cids) _ak_zchain_extract_data_cids $2; exit;; --calculate-size) _ak_zchain_calculate_size $2; exit;; --crawl) shift; _ak_zchain_crawl $*; exit;; --crawl-self) _ak_zchain_crawl_self; exit;; --crawl-remote-ipfs) _ak_zchain_crawl_remote_ipfs $2; exit;; --crawl-remote-ipns) _ak_zchain_crawl_remote_ipns $2; exit;; --get-latest) _ak_zchain_get_latest; exit;; * ) _ak_usage;; esac else _ak_usage fi