aboutsummaryrefslogtreecommitdiff
path: root/contrib/ls-config/lslib-core
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/ls-config/lslib-core')
-rw-r--r--contrib/ls-config/lslib-core199
1 files changed, 199 insertions, 0 deletions
diff --git a/contrib/ls-config/lslib-core b/contrib/ls-config/lslib-core
new file mode 100644
index 0000000..6ef21fa
--- /dev/null
+++ b/contrib/ls-config/lslib-core
@@ -0,0 +1,199 @@
+#!/bin/bash
+
+#title :lslib-core
+#description :core library for LS scripts
+#author :Łukasz A. Grabowski <www@lucas.net.pl>
+#date :20130928
+#version :1.0.3
+#notes :
+#bash_version :4.2.37(1)-release
+#copywrite :Copyright (C) 2013 Łukasz A. Grabowski
+#license :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 2 of the License or
+# :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/.
+#=======================================================================
+
+#################
+# Configuration #
+#################
+
+PACD="/usr/share/ls" #main directory for LS scripts
+LIBD="lib" #library dir for LS scripts
+
+#######################
+# Predefined and init #
+#######################
+
+if [ -z "$LS_EXEC" ]; then
+ echo "This script are only for inclusion in LS packet scripts. Don't use it itself." 1>&2
+ exit 1
+fi
+
+##############################
+# configuration read / write #
+##############################
+
+#get configuration
+# cfg_g PATH
+cfg_g() {
+ local PTH=""
+ if [ $# -gt 0 ]; then
+ local PTH="$1";
+ fi;
+ local DAT
+ local ERR
+ DAT="$($PACD/$LIBD/ls-config -f "$CFGFN" -qv --get="$PTH")"
+ ERR=$?
+ echo "$DAT"
+ return $ERR
+}
+
+#get configuration type
+# cfg_t PATH
+cfg_t() {
+ local PTH=""
+ if [ $# -gt 0 ]; then
+ local PTH="$1";
+ fi;
+ local DAT
+ local ERR
+ DAT="$($PACD/$LIBD/ls-config -f "$CFGFN" -qt --get="$PTH")"
+ ERR=$?
+ echo "$DAT"
+ return $ERR
+}
+
+#get configuration items count
+# cfg_c PATH
+cfg_c() {
+ local PTH=""
+ if [ $# -gt 0 ]; then
+ local PTH="$1";
+ fi;
+ local DAT
+ local ERR
+ DAT="$($PACD/$LIBD/ls-config -f "$CFGFN" -qc --get="$PTH")"
+ ERR=$?
+ echo "$DAT"
+ return $ERR
+}
+
+#set configuration
+# cfg_s PATH DATA [TYPE=string]
+cfg_s() {
+ local PTH=""
+ if [ $# -gt 0 ]; then
+ local PTH="$1";
+ fi;
+ local DATA=""
+ if [ $# -gt 1 ]; then
+ local DATA="$2";
+ fi;
+ local TYPE="string"
+ if [ $# -gt 2 ]; then
+ local TYPE="$3";
+ fi;
+ local DAT
+ local ERR
+ DAT="$($PACD/$LIBD/ls-config -f "$CFGFN" -q --set="$PTH" --data="$DATA" --type="$TYPE")"
+ ERR=$?
+ echo "$DAT"
+ return $ERR
+}
+
+#remove configuration
+# cfg_u PATH
+cfg_u() {
+ local PTH=""
+ if [ $# -gt 0 ]; then
+ local PTH="$1";
+ fi;
+ local DAT
+ local ERR
+ DAT="$($PACD/$LIBD/ls-config -f "$CFGFN" -q --set="$PTH" --unset)"
+ ERR=$?
+ return $ERR
+}
+
+cfg_f_g() {
+ local BCFN="$CFGFN"
+ local EX
+ CFGFN="$1"
+ shift
+ cfg_g "$@"
+ EX=$?
+ CFGFN="$BCFN"
+ return $EX
+}
+
+cfg_f_t() {
+ local BCFN="$CFGFN"
+ local EX
+ CFGFN="$1"
+ shift
+ cfg_t "$@"
+ EX=$?
+ CFGFN="$BCFN"
+ return $EX
+}
+
+cfg_f_c() {
+ local BCFN="$CFGFN"
+ local EX
+ CFGFN="$1"
+ shift
+ cfg_c "$@"
+ EX=$?
+ CFGFN="$BCFN"
+ return $EX
+}
+
+cfg_f_s() {
+ local BCFN="$CFGFN"
+ local EX
+ CFGFN="$1"
+ shift
+ cfg_s "$@"
+ EX=$?
+ CFGFN="$BCFN"
+ return $EX
+}
+
+cfg_f_u() {
+ local BCFN="$CFGFN"
+ local EX
+ CFGFN="$1"
+ shift
+ cfg_u "$@"
+ EX=$?
+ CFGFN="$BCFN"
+ return $EX
+}
+
+
+######################
+# base variable init #
+######################
+
+#package name
+SCRFN="$(basename "$0")"
+
+#configuriation directory and file
+if [ -z "$CFGD" ]; then
+ CFGD="/etc/ls"
+fi;
+CFGFN="$CFGD/$SCRFN"
+
+