|
|
# --- 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" }
|