aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorkaotisk <kaotisk@arching-kaos.org>2024-06-06 17:09:47 +0300
committerkaotisk <kaotisk@arching-kaos.org>2024-06-06 17:09:47 +0300
commitab9b088ad0c097f803bd489a68a7f45db9af8570 (patch)
tree4fec40ba8679d78585963aed529717aa1f2cf284 /lib
parentdef1c0e0360fc87dd49512183dcc1d35c3b388f9 (diff)
downloadarching-kaos-tools-ab9b088ad0c097f803bd489a68a7f45db9af8570.tar.gz
arching-kaos-tools-ab9b088ad0c097f803bd489a68a7f45db9af8570.tar.bz2
arching-kaos-tools-ab9b088ad0c097f803bd489a68a7f45db9af8570.zip
Settings setter getter
Diffstat (limited to 'lib')
-rwxr-xr-xlib/_ak_settings95
1 files changed, 95 insertions, 0 deletions
diff --git a/lib/_ak_settings b/lib/_ak_settings
new file mode 100755
index 0000000..ce0f9c4
--- /dev/null
+++ b/lib/_ak_settings
@@ -0,0 +1,95 @@
+#!/bin/bash
+
+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
+ 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
+ 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
+ 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
+ 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
+}