# --- SDE-COPYRIGHT-NOTE-BEGIN ---
|
|
# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
|
|
#
|
|
# Filename: lib/libsde.in
|
|
# Copyright (C) 2006 - 2007 The OpenSDE Project
|
|
#
|
|
# More information can be found in the files COPYING and README.
|
|
#
|
|
# 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; version 2 of the License. A copy of the
|
|
# GNU General Public License can be found in the file COPYING.
|
|
# --- SDE-COPYRIGHT-NOTE-END ---
|
|
|
|
# version of the tree
|
|
#
|
|
sdever=trunk
|
|
|
|
[ -n "$SDEROOT" ] || SDEROOT='.'
|
|
export SDEROOT
|
|
|
|
. $SDEROOT/lib/term-functions.in
|
|
|
|
# default settings
|
|
#
|
|
[ -n "$SDESETTINGS" ] || SDESETTINGS="$HOME/.sde/settings"
|
|
export SDESETTINGS
|
|
|
|
if [ ! -e "$SDESETTINGS" ]; then
|
|
mkdir -p "${SDESETTINGS%/*}"
|
|
touch "$SDESETTINGS"
|
|
chmod 600 "$SDESETTINGS"
|
|
fi
|
|
|
|
# LOCK/UNLOCK facility
|
|
#
|
|
# FIXME: we must trap Ctrl-C on lock(), and restore the previous
|
|
# trap state after unlocking
|
|
lock() {
|
|
while ! ln -s "$1" "$1.lock" 2> /dev/null; do
|
|
sleep 1;
|
|
done
|
|
}
|
|
|
|
unlock() {
|
|
rm "$1.lock"
|
|
}
|
|
|
|
# INI format functions
|
|
# NOTE: if you want to write, source libsde-ini.in too.
|
|
|
|
# dumps the raw content of a section
|
|
# USAGE: ini_section_raw "file" "section"
|
|
#
|
|
ini_section_raw() {
|
|
gawk "BEGIN { show=0; }
|
|
/^\[/ {
|
|
if ( \$0 ~ /^\[$2\][ \t]*\$/ )
|
|
show=1;
|
|
else
|
|
show=0;
|
|
}
|
|
/^[^\[]/ { if ( show ) print; }" "$1"
|
|
}
|
|
|
|
# dumps the content of a section assuming variables are defined in there
|
|
# USAGE: ini_section_read "file" "section"
|
|
#
|
|
ini_section_read() {
|
|
ini_section_raw "$1" "$2" | sed -e '/^[ \t]*#/d;' -e '/^[ \t]*$/d;' -e 's,",\\",g' -e 's,=\(..*\)$,="\1",'
|
|
}
|
|
|
|
# list the available sections on a file
|
|
# USAGE: ini_section_list "file"
|
|
#
|
|
ini_section_list() {
|
|
sed -n -e 's,^\[\(.*\)\][ \t]*$,\1,p' "$1"
|
|
}
|
|
|