#!/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 . ### source $AK_LIBDIR/_ak_script _ak_settings_get(){ if [ ! -z "$1" ] && [ -n "$1" ] then cd $AK_SETTINGS echo $1 | grep '\.' > /dev/null 2>&1 if [ $? -ne 0 ] then _ak_log_error "No ungrouped settings allowed" exit 1 fi echo $1 | grep '\.\.' > /dev/null 2>&1 if [ $? -eq 0 ] then _ak_log_error "No '..' allowed" exit 1 fi subset="$(echo $1 | cut -d '.' -f 1)" echo "$subset" | grep '[.\-\*/~!@#$%^&*()_=\-\>\<,{}[]]' > /dev/null 2>&1 if [ $? -eq 0 ] then _ak_log_error "Names containing symbols are not allowed" exit 1 fi if [ ! -d $subset ] then _ak_log_error "Subsetting $subset not found" exit 1 fi cd $subset label="$(echo $1 | cut -d '.' -f 2-)" echo "$label" | grep '[.\-\*/~!@#$%^&*()_=\-\>\<,{}[]]' > /dev/null 2>&1 if [ $? -eq 0 ] then _ak_log_error "Names containing symbols are not allowed" exit 1 fi if [ ! -f $AK_SETTINGS/$subset/$label ] then _ak_log_error "Key: $subset.$label was not found" exit 1 fi cat $AK_SETTINGS/$subset/$label else cd $AK_SETTINGS find . -type f | while read setting do printf '%s:%s\n' "$(echo $setting| sed -e 's/^\.\///;s/\//./g')" "$(cat $setting)" done fi } _ak_settings_set(){ if [ ! -z "$1" ] && [ -n "$1" ] then echo $1 | grep '\.\.' > /dev/null 2>&1 if [ $? -eq 0 ] then _ak_log_error "No '..' allowed" exit 1 fi if [ ! -z "$2" ] && [ -n "$2" ] then cd $AK_SETTINGS echo $1 | grep '\.' > /dev/null 2>&1 if [ $? -ne 0 ] then _ak_log_error "No ungrouped settings allowed" exit 1 fi subset="$(echo $1 | cut -d '.' -f 1)" echo "$subset" | grep '[.\-\*/~!@#$%^&*()_=\-\>\<,{}[]]' > /dev/null 2>&1 if [ $? -eq 0 ] then _ak_log_error "Names containing symbols are not allowed" exit 1 fi if [ ! -d $subset ] then mkdir $subset if [ $? -ne 0 ] then _ak_log_error "Could not create $AK_SETTINGS/$subset" exit 1 fi fi label="$(echo $1 | cut -d '.' -f 2-)" echo "$label" | grep '[.\-\*/~!@#$%^&*()_=\-\>\<,{}[]]' > /dev/null 2>&1 if [ $? -eq 0 ] then _ak_log_error "Names containing symbols are not allowed" exit 1 fi if [ -f $AK_SETTINGS/$subset/$label ] then _ak_log_warning "Overwritting $subset.$label:$(cat $AK_SETTINGS/$subset/$label) with $2" fi printf '%s' "$2" > $AK_SETTINGS/$subset/$label else _ak_log_error "No value provided for $1" fi else _ak_log_error "No value provided to set" fi } _ak_settings_get_sub(){ _ak_not_implemented } _ak_settings_get_all(){ _ak_not_implemented }