#!/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 <http://www.gnu.org/licenses/>.
###
##
## Network tools
##
## Usage:
##
##    -h, --help                           Prints this help message
##    -c, --connect [ipfs|cjdns]           Connect to network(s)
##    -p, --peers [ipfs|cjdns|stellar]     Outputs peers found
##    -s, --scan [ipfs|cjdns|stellar]      Scan network(s) for peers
##
## Bonus: CJDNS network scanning modes
##
##    -s, --scan cjdns [-w|--whole]        Scan using HIA's knowledge
##    -s, --scan cjdns [-d|--dump]         Scan using CJDNS' dumpLinks (default)
##
fullprogrampath="$(realpath $0)"
PROGRAM=$(basename $0)
descriptionString="AK Nettool"

# At least these
source $AK_LIBDIR/_ak_log
source $AK_LIBDIR/_ak_script
source $AK_LIBDIR/_ak_network

# Flags to run
if [ ! -z $1 ]; then
    case $1 in
        -h | --help) _ak_usage; exit;;
        -s | --scan) shift; _ak_network_scan $*; exit;;
        -c | --connect) _ak_network_connect $2; exit;;
        -p | --peers) _ak_network_show_peers $2; exit;;
        * ) _ak_usage;;
    esac
else _ak_usage
fi