xref: /aosp_15_r20/external/libconfig/contrib/ls-config/lslib-core (revision 2e9d491483b805f09ea864149eadd5680efcc72a)
1#!/bin/bash
2
3#title          :lslib-core
4#description    :core library for LS scripts
5#author         :Łukasz A. Grabowski <[email protected]>
6#date           :20130928
7#version        :1.0.3
8#notes          :
9#bash_version   :4.2.37(1)-release
10#copywrite      :Copyright (C) 2013 Łukasz A. Grabowski
11#license        :This program is free software: you can redistribute
12#               :it and/or modify it under the terms of the GNU General
13#               :Public License as published by the Free Software
14#               :Foundation, either version 2 of the License or
15#               :any later version.
16#               :
17#               :This program is distributed in the hope that it will
18#               :be useful, but WITHOUT ANY WARRANTY; without even the
19#               :implied warranty of MERCHANTABILITY or FITNESS FOR
20#               :A PARTICULAR PURPOSE. See the GNU General Public
21#               :License for more details.
22#               :
23#               :You should have received a copy of the GNU General
24#               :Public License along with this program. If not, see
25#               :http://www.gnu.org/licenses/.
26#=======================================================================
27
28#################
29# Configuration #
30#################
31
32PACD="/usr/share/ls" #main directory for LS scripts
33LIBD="lib"           #library dir for LS scripts
34
35#######################
36# Predefined and init #
37#######################
38
39if [ -z "$LS_EXEC" ]; then
40    echo "This script are only for inclusion in LS packet scripts. Don't use it itself." 1>&2
41    exit 1
42fi
43
44##############################
45# configuration read / write #
46##############################
47
48#get configuration
49# cfg_g PATH
50cfg_g() {
51    local PTH=""
52    if [ $# -gt 0 ]; then
53	local PTH="$1";
54    fi;
55    local DAT
56    local ERR
57    DAT="$($PACD/$LIBD/ls-config -f "$CFGFN" -qv --get="$PTH")"
58    ERR=$?
59    echo "$DAT"
60    return $ERR
61}
62
63#get configuration type
64# cfg_t PATH
65cfg_t() {
66    local PTH=""
67    if [ $# -gt 0 ]; then
68	local PTH="$1";
69    fi;
70    local DAT
71    local ERR
72    DAT="$($PACD/$LIBD/ls-config -f "$CFGFN" -qt --get="$PTH")"
73    ERR=$?
74    echo "$DAT"
75    return $ERR
76}
77
78#get configuration items count
79# cfg_c PATH
80cfg_c() {
81    local PTH=""
82    if [ $# -gt 0 ]; then
83	local PTH="$1";
84    fi;
85    local DAT
86    local ERR
87    DAT="$($PACD/$LIBD/ls-config -f "$CFGFN" -qc --get="$PTH")"
88    ERR=$?
89    echo "$DAT"
90    return $ERR
91}
92
93#set configuration
94# cfg_s PATH DATA [TYPE=string]
95cfg_s() {
96    local PTH=""
97    if [ $# -gt 0 ]; then
98	local PTH="$1";
99    fi;
100    local DATA=""
101    if [ $# -gt 1 ]; then
102	local DATA="$2";
103    fi;
104    local TYPE="string"
105    if [ $# -gt 2 ]; then
106	local TYPE="$3";
107    fi;
108    local DAT
109    local ERR
110    DAT="$($PACD/$LIBD/ls-config -f "$CFGFN" -q --set="$PTH" --data="$DATA" --type="$TYPE")"
111    ERR=$?
112    echo "$DAT"
113    return $ERR
114}
115
116#remove configuration
117# cfg_u PATH
118cfg_u() {
119    local PTH=""
120    if [ $# -gt 0 ]; then
121	local PTH="$1";
122    fi;
123    local DAT
124    local ERR
125    DAT="$($PACD/$LIBD/ls-config -f "$CFGFN" -q --set="$PTH" --unset)"
126    ERR=$?
127    return $ERR
128}
129
130cfg_f_g() {
131    local BCFN="$CFGFN"
132    local EX
133    CFGFN="$1"
134    shift
135    cfg_g "$@"
136    EX=$?
137    CFGFN="$BCFN"
138    return $EX
139}
140
141cfg_f_t() {
142    local BCFN="$CFGFN"
143    local EX
144    CFGFN="$1"
145    shift
146    cfg_t "$@"
147    EX=$?
148    CFGFN="$BCFN"
149    return $EX
150}
151
152cfg_f_c() {
153    local BCFN="$CFGFN"
154    local EX
155    CFGFN="$1"
156    shift
157    cfg_c "$@"
158    EX=$?
159    CFGFN="$BCFN"
160    return $EX
161}
162
163cfg_f_s() {
164    local BCFN="$CFGFN"
165    local EX
166    CFGFN="$1"
167    shift
168    cfg_s "$@"
169    EX=$?
170    CFGFN="$BCFN"
171    return $EX
172}
173
174cfg_f_u() {
175    local BCFN="$CFGFN"
176    local EX
177    CFGFN="$1"
178    shift
179    cfg_u "$@"
180    EX=$?
181    CFGFN="$BCFN"
182    return $EX
183}
184
185
186######################
187# base variable init #
188######################
189
190#package name
191SCRFN="$(basename "$0")"
192
193#configuriation directory and file
194if [ -z "$CFGD" ]; then
195    CFGD="/etc/ls"
196fi;
197CFGFN="$CFGD/$SCRFN"
198
199
200