A) Add/move functions to 'functions' file
Add ini*() and tests Add GetOSVersion() Add install_package(), yum_install() Add *_service() Rebased Change-Id: I570dba5ed4d2b988cdd1771cf6bed0aaf8e0fe27
This commit is contained in:
parent
60df29a234
commit
13dc5ccd13
163
functions
163
functions
@ -1,4 +1,7 @@
|
|||||||
# functions - Common functions used by DevStack components
|
# functions - Common functions used by DevStack components
|
||||||
|
#
|
||||||
|
# ENABLED_SERVICES is used by is_service_enabled()
|
||||||
|
|
||||||
|
|
||||||
# Save trace setting
|
# Save trace setting
|
||||||
XTRACE=$(set +o | grep xtrace)
|
XTRACE=$(set +o | grep xtrace)
|
||||||
@ -6,7 +9,7 @@ set +o xtrace
|
|||||||
|
|
||||||
|
|
||||||
# apt-get wrapper to set arguments correctly
|
# apt-get wrapper to set arguments correctly
|
||||||
# apt_get package [package ...]
|
# apt_get operation package [package ...]
|
||||||
function apt_get() {
|
function apt_get() {
|
||||||
[[ "$OFFLINE" = "True" || -z "$@" ]] && return
|
[[ "$OFFLINE" = "True" || -z "$@" ]] && return
|
||||||
local sudo="sudo"
|
local sudo="sudo"
|
||||||
@ -70,6 +73,71 @@ function get_field() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Determine OS Vendor, Release and Update
|
||||||
|
# Tested with OS/X, Ubuntu, RedHat, CentOS, Fedora
|
||||||
|
# Returns results in global variables:
|
||||||
|
# os_VENDOR - vendor name
|
||||||
|
# os_RELEASE - release
|
||||||
|
# os_UPDATE - update
|
||||||
|
# os_PACKAGE - package type
|
||||||
|
# os_CODENAME - vendor's codename for release
|
||||||
|
# GetOSVersion
|
||||||
|
GetOSVersion() {
|
||||||
|
# Figure out which vendor we are
|
||||||
|
if [[ -n "`which sw_vers 2>/dev/null`" ]]; then
|
||||||
|
# OS/X
|
||||||
|
os_VENDOR=`sw_vers -productName`
|
||||||
|
os_RELEASE=`sw_vers -productVersion`
|
||||||
|
os_UPDATE=${os_RELEASE##*.}
|
||||||
|
os_RELEASE=${os_RELEASE%.*}
|
||||||
|
os_PACKAGE=""
|
||||||
|
if [[ "$os_RELEASE" =~ "10.7" ]]; then
|
||||||
|
os_CODENAME="lion"
|
||||||
|
elif [[ "$os_RELEASE" =~ "10.6" ]]; then
|
||||||
|
os_CODENAME="snow leopard"
|
||||||
|
elif [[ "$os_RELEASE" =~ "10.5" ]]; then
|
||||||
|
os_CODENAME="leopard"
|
||||||
|
elif [[ "$os_RELEASE" =~ "10.4" ]]; then
|
||||||
|
os_CODENAME="tiger"
|
||||||
|
elif [[ "$os_RELEASE" =~ "10.3" ]]; then
|
||||||
|
os_CODENAME="panther"
|
||||||
|
else
|
||||||
|
os_CODENAME=""
|
||||||
|
fi
|
||||||
|
elif [[ -x $(which lsb_release 2>/dev/null) ]]; then
|
||||||
|
os_VENDOR=$(lsb_release -i -s)
|
||||||
|
os_RELEASE=$(lsb_release -r -s)
|
||||||
|
os_UPDATE=""
|
||||||
|
if [[ "Debian,Ubuntu" =~ $os_VENDOR ]]; then
|
||||||
|
os_PACKAGE="deb"
|
||||||
|
else
|
||||||
|
os_PACKAGE="rpm"
|
||||||
|
fi
|
||||||
|
os_CODENAME=$(lsb_release -c -s)
|
||||||
|
elif [[ -r /etc/redhat-release ]]; then
|
||||||
|
# Red Hat Enterprise Linux Server release 5.5 (Tikanga)
|
||||||
|
# CentOS release 5.5 (Final)
|
||||||
|
# CentOS Linux release 6.0 (Final)
|
||||||
|
# Fedora release 16 (Verne)
|
||||||
|
os_CODENAME=""
|
||||||
|
for r in "Red Hat" CentOS Fedora; do
|
||||||
|
os_VENDOR=$r
|
||||||
|
if [[ -n "`grep \"$r\" /etc/redhat-release`" ]]; then
|
||||||
|
ver=`sed -e 's/^.* \(.*\) (\(.*\)).*$/\1\|\2/' /etc/redhat-release`
|
||||||
|
os_CODENAME=${ver#*|}
|
||||||
|
os_RELEASE=${ver%|*}
|
||||||
|
os_UPDATE=${os_RELEASE##*.}
|
||||||
|
os_RELEASE=${os_RELEASE%.*}
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
os_VENDOR=""
|
||||||
|
done
|
||||||
|
os_PACKAGE="rpm"
|
||||||
|
fi
|
||||||
|
export os_VENDOR os_RELEASE os_UPDATE os_PACKAGE os_CODENAME
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
# git clone only if directory doesn't exist already. Since ``DEST`` might not
|
# git clone only if directory doesn't exist already. Since ``DEST`` might not
|
||||||
# be owned by the installation user, we create the directory and change the
|
# be owned by the installation user, we create the directory and change the
|
||||||
# ownership to the proper user.
|
# ownership to the proper user.
|
||||||
@ -115,6 +183,42 @@ function git_clone {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Comment an option in an INI file
|
||||||
|
# optset config-file section option
|
||||||
|
function inicomment() {
|
||||||
|
local file=$1
|
||||||
|
local section=$2
|
||||||
|
local option=$3
|
||||||
|
sed -i -e "/^\[$section\]/,/^\[.*\]/ s|^\($option[ \t]*=.*$\)|#\1|" $file
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Get an option from an INI file
|
||||||
|
# optget config-file section option
|
||||||
|
function iniget() {
|
||||||
|
local file=$1
|
||||||
|
local section=$2
|
||||||
|
local option=$3
|
||||||
|
local line
|
||||||
|
line=$(sed -ne "/^\[$section\]/,/^\[.*\]/ { /^$option[ \t]*=/ p; }" $file)
|
||||||
|
echo ${line#*=}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Set an option in an INI file
|
||||||
|
# This is NOT a complete option setter, it assumes that the section and
|
||||||
|
# option already exist in the INI file. If the section does not exist,
|
||||||
|
# nothing happens.
|
||||||
|
# optset config-file section option value
|
||||||
|
function iniset() {
|
||||||
|
local file=$1
|
||||||
|
local section=$2
|
||||||
|
local option=$3
|
||||||
|
local value=$4
|
||||||
|
sed -i -e "/^\[$section\]/,/^\[.*\]/ s|^\($option[ \t]*=[ \t]*\).*$|\1$value|" $file
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
# is_service_enabled() checks if the service(s) specified as arguments are
|
# is_service_enabled() checks if the service(s) specified as arguments are
|
||||||
# enabled by the user in **ENABLED_SERVICES**.
|
# enabled by the user in **ENABLED_SERVICES**.
|
||||||
#
|
#
|
||||||
@ -138,6 +242,20 @@ function is_service_enabled() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Distro-agnostic package installer
|
||||||
|
# install_package package [package ...]
|
||||||
|
function install_package() {
|
||||||
|
if [[ -z "$os_PACKAGE" ]]; then
|
||||||
|
GetOSVersion
|
||||||
|
fi
|
||||||
|
if [[ "$os_PACKAGE" = "deb" ]]; then
|
||||||
|
apt_get install "$@"
|
||||||
|
else
|
||||||
|
yum_install "$@"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
# Test if the named environment variable is set and not zero length
|
# Test if the named environment variable is set and not zero length
|
||||||
# is_set env-var
|
# is_set env-var
|
||||||
function is_set() {
|
function is_set() {
|
||||||
@ -153,10 +271,39 @@ function is_set() {
|
|||||||
# pip_install package [package ...]
|
# pip_install package [package ...]
|
||||||
function pip_install {
|
function pip_install {
|
||||||
[[ "$OFFLINE" = "True" || -z "$@" ]] && return
|
[[ "$OFFLINE" = "True" || -z "$@" ]] && return
|
||||||
|
if [[ -z "$os_PACKAGE" ]]; then
|
||||||
|
GetOSVersion
|
||||||
|
fi
|
||||||
|
if [[ "$os_PACKAGE" = "deb" ]]; then
|
||||||
|
CMD_PIP=/usr/bin/pip
|
||||||
|
else
|
||||||
|
CMD_PIP=/usr/bin/pip-python
|
||||||
|
fi
|
||||||
sudo PIP_DOWNLOAD_CACHE=/var/cache/pip \
|
sudo PIP_DOWNLOAD_CACHE=/var/cache/pip \
|
||||||
HTTP_PROXY=$http_proxy \
|
HTTP_PROXY=$http_proxy \
|
||||||
HTTPS_PROXY=$https_proxy \
|
HTTPS_PROXY=$https_proxy \
|
||||||
pip install --use-mirrors $@
|
$CMD_PIP install --use-mirrors $@
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Service wrapper to restart services
|
||||||
|
# restart_service service-name
|
||||||
|
function restart_service() {
|
||||||
|
sudo /usr/sbin/service $1 restart
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Service wrapper to start services
|
||||||
|
# start_service service-name
|
||||||
|
function start_service() {
|
||||||
|
sudo /usr/sbin/service $1 start
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Service wrapper to stop services
|
||||||
|
# stop_service service-name
|
||||||
|
function stop_service() {
|
||||||
|
sudo /usr/sbin/service $1 stop
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -172,5 +319,17 @@ function trueorfalse() {
|
|||||||
echo "$default"
|
echo "$default"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# yum wrapper to set arguments correctly
|
||||||
|
# yum_install package [package ...]
|
||||||
|
function yum_install() {
|
||||||
|
[[ "$OFFLINE" = "True" ]] && return
|
||||||
|
local sudo="sudo"
|
||||||
|
[[ "$(id -u)" = "0" ]] && sudo="env"
|
||||||
|
$sudo http_proxy=$http_proxy https_proxy=$https_proxy \
|
||||||
|
yum install -y "$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
# Restore xtrace
|
# Restore xtrace
|
||||||
$XTRACE
|
$XTRACE
|
||||||
|
32
stack.sh
32
stack.sh
@ -107,7 +107,7 @@ if [[ $EUID -eq 0 ]]; then
|
|||||||
|
|
||||||
# since this script runs as a normal user, we need to give that user
|
# since this script runs as a normal user, we need to give that user
|
||||||
# ability to run sudo
|
# ability to run sudo
|
||||||
dpkg -l sudo || apt_get update && apt_get install sudo
|
dpkg -l sudo || apt_get update && install_package sudo
|
||||||
|
|
||||||
if ! getent passwd stack >/dev/null; then
|
if ! getent passwd stack >/dev/null; then
|
||||||
echo "Creating a user called stack"
|
echo "Creating a user called stack"
|
||||||
@ -268,6 +268,7 @@ function read_password {
|
|||||||
set -o xtrace
|
set -o xtrace
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# Nova Network Configuration
|
# Nova Network Configuration
|
||||||
# --------------------------
|
# --------------------------
|
||||||
|
|
||||||
@ -590,7 +591,7 @@ function get_packages() {
|
|||||||
|
|
||||||
# install apt requirements
|
# install apt requirements
|
||||||
apt_get update
|
apt_get update
|
||||||
apt_get install $(get_packages $FILES/apts)
|
install_package $(get_packages $FILES/apts)
|
||||||
|
|
||||||
# install python requirements
|
# install python requirements
|
||||||
pip_install $(get_packages $FILES/pips | sort -u)
|
pip_install $(get_packages $FILES/pips | sort -u)
|
||||||
@ -677,7 +678,7 @@ fi
|
|||||||
# ------
|
# ------
|
||||||
|
|
||||||
if [[ $SYSLOG != "False" ]]; then
|
if [[ $SYSLOG != "False" ]]; then
|
||||||
apt_get install -y rsyslog-relp
|
install_package rsyslog-relp
|
||||||
if [[ "$SYSLOG_HOST" = "$HOST_IP" ]]; then
|
if [[ "$SYSLOG_HOST" = "$HOST_IP" ]]; then
|
||||||
# Configure the master host to receive
|
# Configure the master host to receive
|
||||||
cat <<EOF >/tmp/90-stack-m.conf
|
cat <<EOF >/tmp/90-stack-m.conf
|
||||||
@ -692,7 +693,7 @@ EOF
|
|||||||
EOF
|
EOF
|
||||||
sudo mv /tmp/90-stack-s.conf /etc/rsyslog.d
|
sudo mv /tmp/90-stack-s.conf /etc/rsyslog.d
|
||||||
fi
|
fi
|
||||||
sudo /usr/sbin/service rsyslog restart
|
restart_service rsyslog
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
@ -703,7 +704,7 @@ if is_service_enabled rabbit; then
|
|||||||
# Install and start rabbitmq-server
|
# Install and start rabbitmq-server
|
||||||
# the temp file is necessary due to LP: #878600
|
# the temp file is necessary due to LP: #878600
|
||||||
tfile=$(mktemp)
|
tfile=$(mktemp)
|
||||||
apt_get install rabbitmq-server > "$tfile" 2>&1
|
install_package rabbitmq-server > "$tfile" 2>&1
|
||||||
cat "$tfile"
|
cat "$tfile"
|
||||||
rm -f "$tfile"
|
rm -f "$tfile"
|
||||||
# change the rabbit password since the default is "guest"
|
# change the rabbit password since the default is "guest"
|
||||||
@ -738,13 +739,13 @@ EOF
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Install and start mysql-server
|
# Install and start mysql-server
|
||||||
apt_get install mysql-server
|
install_package mysql-server
|
||||||
# Update the DB to give user ‘$MYSQL_USER’@’%’ full control of the all databases:
|
# Update the DB to give user ‘$MYSQL_USER’@’%’ full control of the all databases:
|
||||||
sudo mysql -uroot -p$MYSQL_PASSWORD -h127.0.0.1 -e "GRANT ALL PRIVILEGES ON *.* TO '$MYSQL_USER'@'%' identified by '$MYSQL_PASSWORD';"
|
sudo mysql -uroot -p$MYSQL_PASSWORD -h127.0.0.1 -e "GRANT ALL PRIVILEGES ON *.* TO '$MYSQL_USER'@'%' identified by '$MYSQL_PASSWORD';"
|
||||||
|
|
||||||
# Edit /etc/mysql/my.cnf to change ‘bind-address’ from localhost (127.0.0.1) to any (0.0.0.0) and restart the mysql service:
|
# Edit /etc/mysql/my.cnf to change ‘bind-address’ from localhost (127.0.0.1) to any (0.0.0.0) and restart the mysql service:
|
||||||
sudo sed -i 's/127.0.0.1/0.0.0.0/g' /etc/mysql/my.cnf
|
sudo sed -i 's/127.0.0.1/0.0.0.0/g' /etc/mysql/my.cnf
|
||||||
sudo service mysql restart
|
restart_service mysql
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Our screenrc file builder
|
# Our screenrc file builder
|
||||||
@ -801,7 +802,7 @@ screen -r stack -X hardstatus alwayslastline "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<
|
|||||||
if is_service_enabled horizon; then
|
if is_service_enabled horizon; then
|
||||||
|
|
||||||
# Install apache2, which is NOPRIME'd
|
# Install apache2, which is NOPRIME'd
|
||||||
apt_get install apache2 libapache2-mod-wsgi
|
install_package apache2 libapache2-mod-wsgi
|
||||||
|
|
||||||
|
|
||||||
# Remove stale session database.
|
# Remove stale session database.
|
||||||
@ -826,7 +827,7 @@ if is_service_enabled horizon; then
|
|||||||
s,%GROUP%,$APACHE_GROUP,g;
|
s,%GROUP%,$APACHE_GROUP,g;
|
||||||
s,%HORIZON_DIR%,$HORIZON_DIR,g;
|
s,%HORIZON_DIR%,$HORIZON_DIR,g;
|
||||||
" -i /etc/apache2/sites-enabled/000-default
|
" -i /etc/apache2/sites-enabled/000-default
|
||||||
sudo service apache2 restart
|
restart_service apache2
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
@ -905,8 +906,7 @@ if is_service_enabled q-svc; then
|
|||||||
# Install deps
|
# Install deps
|
||||||
# FIXME add to files/apts/quantum, but don't install if not needed!
|
# FIXME add to files/apts/quantum, but don't install if not needed!
|
||||||
kernel_version=`cat /proc/version | cut -d " " -f3`
|
kernel_version=`cat /proc/version | cut -d " " -f3`
|
||||||
apt_get install linux-headers-$kernel_version
|
install_package openvswitch-switch openvswitch-datapath-dkms linux-headers-$kernel_version
|
||||||
apt_get install openvswitch-switch openvswitch-datapath-dkms
|
|
||||||
# Create database for the plugin/agent
|
# Create database for the plugin/agent
|
||||||
if is_service_enabled mysql; then
|
if is_service_enabled mysql; then
|
||||||
mysql -u$MYSQL_USER -p$MYSQL_PASSWORD -e 'DROP DATABASE IF EXISTS ovs_quantum;'
|
mysql -u$MYSQL_USER -p$MYSQL_PASSWORD -e 'DROP DATABASE IF EXISTS ovs_quantum;'
|
||||||
@ -1019,7 +1019,7 @@ if is_service_enabled n-cpu; then
|
|||||||
|
|
||||||
# Virtualization Configuration
|
# Virtualization Configuration
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
apt_get install libvirt-bin
|
install_package libvirt-bin
|
||||||
|
|
||||||
# Force IP forwarding on, just on case
|
# Force IP forwarding on, just on case
|
||||||
sudo sysctl -w net.ipv4.ip_forward=1
|
sudo sysctl -w net.ipv4.ip_forward=1
|
||||||
@ -1043,7 +1043,7 @@ if is_service_enabled n-cpu; then
|
|||||||
# to simulate multiple systems.
|
# to simulate multiple systems.
|
||||||
if [[ "$LIBVIRT_TYPE" == "lxc" ]]; then
|
if [[ "$LIBVIRT_TYPE" == "lxc" ]]; then
|
||||||
if [[ "$DISTRO" > natty ]]; then
|
if [[ "$DISTRO" > natty ]]; then
|
||||||
apt_get install cgroup-lite
|
install_package cgroup-lite
|
||||||
else
|
else
|
||||||
cgline="none /cgroup cgroup cpuacct,memory,devices,cpu,freezer,blkio 0 0"
|
cgline="none /cgroup cgroup cpuacct,memory,devices,cpu,freezer,blkio 0 0"
|
||||||
sudo mkdir -p /cgroup
|
sudo mkdir -p /cgroup
|
||||||
@ -1062,7 +1062,7 @@ if is_service_enabled n-cpu; then
|
|||||||
# libvirt detects various settings on startup, as we potentially changed
|
# libvirt detects various settings on startup, as we potentially changed
|
||||||
# the system configuration (modules, filesystems), we need to restart
|
# the system configuration (modules, filesystems), we need to restart
|
||||||
# libvirt to detect those changes.
|
# libvirt to detect those changes.
|
||||||
sudo /etc/init.d/libvirt-bin restart
|
restart_service libvirt-bin
|
||||||
|
|
||||||
|
|
||||||
# Instance Storage
|
# Instance Storage
|
||||||
@ -1113,7 +1113,7 @@ fi
|
|||||||
# Storage Service
|
# Storage Service
|
||||||
if is_service_enabled swift; then
|
if is_service_enabled swift; then
|
||||||
# Install memcached for swift.
|
# Install memcached for swift.
|
||||||
apt_get install memcached
|
install_package memcached
|
||||||
|
|
||||||
# We first do a bit of setup by creating the directories and
|
# We first do a bit of setup by creating the directories and
|
||||||
# changing the permissions so we can run it as our user.
|
# changing the permissions so we can run it as our user.
|
||||||
@ -1297,7 +1297,7 @@ if is_service_enabled n-vol; then
|
|||||||
# By default, the backing file is 2G in size, and is stored in /opt/stack.
|
# By default, the backing file is 2G in size, and is stored in /opt/stack.
|
||||||
|
|
||||||
# install the package
|
# install the package
|
||||||
apt_get install tgt
|
install_package tgt
|
||||||
|
|
||||||
if ! sudo vgs $VOLUME_GROUP; then
|
if ! sudo vgs $VOLUME_GROUP; then
|
||||||
VOLUME_BACKING_FILE=${VOLUME_BACKING_FILE:-$DEST/nova-volumes-backing-file}
|
VOLUME_BACKING_FILE=${VOLUME_BACKING_FILE:-$DEST/nova-volumes-backing-file}
|
||||||
|
@ -37,3 +37,89 @@ if [[ $? = 0 ]]; then
|
|||||||
echo "die_if_not_set [X='' false] Failed"
|
echo "die_if_not_set [X='' false] Failed"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
echo "Testing INI functions"
|
||||||
|
|
||||||
|
cat >test.ini <<EOF
|
||||||
|
[default]
|
||||||
|
# comment an option
|
||||||
|
#log_file=./log.conf
|
||||||
|
log_file=/etc/log.conf
|
||||||
|
handlers=do not disturb
|
||||||
|
|
||||||
|
[aaa]
|
||||||
|
# the commented option should not change
|
||||||
|
#handlers=cc,dd
|
||||||
|
handlers = aa, bb
|
||||||
|
|
||||||
|
[bbb]
|
||||||
|
handlers=ee,ff
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Test with spaces
|
||||||
|
|
||||||
|
VAL=$(iniget test.ini aaa handlers)
|
||||||
|
if [[ "$VAL" == "aa, bb" ]]; then
|
||||||
|
echo "OK: $VAL"
|
||||||
|
else
|
||||||
|
echo "iniget failed: $VAL"
|
||||||
|
fi
|
||||||
|
|
||||||
|
iniset test.ini aaa handlers "11, 22"
|
||||||
|
|
||||||
|
VAL=$(iniget test.ini aaa handlers)
|
||||||
|
if [[ "$VAL" == "11, 22" ]]; then
|
||||||
|
echo "OK: $VAL"
|
||||||
|
else
|
||||||
|
echo "iniget failed: $VAL"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Test without spaces, end of file
|
||||||
|
|
||||||
|
VAL=$(iniget test.ini bbb handlers)
|
||||||
|
if [[ "$VAL" == "ee,ff" ]]; then
|
||||||
|
echo "OK: $VAL"
|
||||||
|
else
|
||||||
|
echo "iniget failed: $VAL"
|
||||||
|
fi
|
||||||
|
|
||||||
|
iniset test.ini bbb handlers "33,44"
|
||||||
|
|
||||||
|
VAL=$(iniget test.ini bbb handlers)
|
||||||
|
if [[ "$VAL" == "33,44" ]]; then
|
||||||
|
echo "OK: $VAL"
|
||||||
|
else
|
||||||
|
echo "iniget failed: $VAL"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Test section not exist
|
||||||
|
|
||||||
|
VAL=$(iniget test.ini zzz handlers)
|
||||||
|
if [[ -z "$VAL" ]]; then
|
||||||
|
echo "OK"
|
||||||
|
else
|
||||||
|
echo "iniget failed: $VAL"
|
||||||
|
fi
|
||||||
|
|
||||||
|
iniset test.ini zzz handlers "999"
|
||||||
|
|
||||||
|
VAL=$(iniget test.ini zzz handlers)
|
||||||
|
if [[ -z "$VAL" ]]; then
|
||||||
|
echo "OK"
|
||||||
|
else
|
||||||
|
echo "iniget failed: $VAL"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Test comments
|
||||||
|
|
||||||
|
inicomment test.ini aaa handlers
|
||||||
|
|
||||||
|
VAL=$(iniget test.ini aaa handlers)
|
||||||
|
if [[ -z "$VAL" ]]; then
|
||||||
|
echo "OK"
|
||||||
|
else
|
||||||
|
echo "inicomment failed: $VAL"
|
||||||
|
fi
|
||||||
|
Loading…
x
Reference in New Issue
Block a user