200 lines
3.9 KiB
Bash
Executable File
200 lines
3.9 KiB
Bash
Executable File
#!/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"
|
|
|
|
|