#!/bin/busybox ash # (c) Robert Shingledecker 2009-2012 . /etc/init.d/tc-functions useBusybox selectList() { TMPFILE=`mktemp` for F in `ls ${TCEDIR}/${DIRNAME}/*${TYPE}`; do ITEM="${F##*/}" ADDITEM=1 # Exclude onboot items from select for on demand. [ "$TYPE" == "tcz" ] && if grep -qw "$ITEM" "$TCEDIR"/"$ONBOOTNAME"; then ADDITEM=0; fi # Exclude current ondemand items from select [ -e "$TCEDIR"/ondemand/"$ITEM" ] && ADDITEM=0 [ "$ADDITEM" == "1" ] && echo "$ITEM" >> "$TMPFILE" done sort -f "$TMPFILE" rm -f "$TMPFILE" } TCEDIR=/etc/sysconfig/tcedir [ -d "$TCEDIR" ] || exit 1 WBAR_ICON_DIR="/usr/local/tce.icons" FREEDESKTOP=/usr/local/share/applications 2>/dev/null read DESKTOP < /etc/sysconfig/desktop LOCALDIR="$HOME"/.local/share/applications [ -d /mnt/test ] || sudo /bin/mkdir -p /mnt/test while getopts clter OPTION do case ${OPTION} in c) CURRITEMS=1 ;; l) LISTITEMS=1 ;; t) TCZ=1; TYPE="tcz" ;; e) EXECITEM=1 ;; r) REMOVEITEM=1 ;; *) exit 1 ;; esac done shift `expr $OPTIND - 1` [ -n "$TYPE" ] || TYPE="tcz" ONBOOTNAME="$(getbootparam lst 2>/dev/null)" if [ -z "$ONBOOTNAME" ]; then [ "$TYPE" == "tcz" ] && ONBOOTNAME="onboot.lst" fi [ "$TYPE" == "tcz" ] && DIRNAME="optional" if [ "$LISTITEMS" ]; then selectList exit 0 fi if [ "$CURRITEMS" ]; then for F in `ls "$TCEDIR"/ondemand/*` do grep -l ."$TYPE" "$F" | awk 'BEGIN{FS="/"}{print $NF}' done exit 0 fi if [ "$REMOVEITEM" ]; then [ -z "$1" ] && exit 1 TYPE="${1##*.}" [ "$TYPE" == "tcz" ] && APPNAME="${1%.tcz}" || APPNAME="$1" TARGET="$TCEDIR"/ondemand/"$APPNAME" if [ -e "$TARGET" ]; then rm -f "$TARGET" [ $(which "$DESKTOP"_ondemand) ] && "$DESKTOP"_ondemand 2>/dev/null [ $(which "$DESKTOP"_restart) ] && "$DESKTOP"_restart 2>/dev/null fi exit 0 fi if [ -n "$1" ]; then EXTN="$1" APPNAME="${EXTN%.*}" if [ "$APPNAME" == "$EXTN" ]; then echo ".tcz is required." exit 1 fi else exit 1 fi if [ "$EXECITEM" ]; then TYPE="${1##*.}" if [ "$TYPE" == "tcz" ] then FROMWHERE="$TCEDIR"/"optional/" COMMAND="tce-load -is" fi INSTALLED=/usr/local/tce.installed if [ ! -e "$INSTALLED"/"$APPNAME" ]; then shift 1 && ${COMMAND} "$FROMWHERE""$APPNAME"."$TYPE" && launchApp "$APPNAME" "$@" else shift 1 && launchApp "$APPNAME" "$@" fi exit 0 fi # Arrive here if no flags were specified. # Create ondemand item.... # Generic shell script for OnDemand by all WMs [ -d "$TCEDIR"/ondemand ] || mkdir -p "$TCEDIR"/ondemand FILE="$TCEDIR"/ondemand/"$APPNAME" echo '#!/bin/sh' > "$FILE" echo 'ondemand -e '"$EXTN"' "$@"' >> "$FILE" chmod +x "$FILE" # Optional as flwm does not need a make_ondemand. [ $(which ${DESKTOP}_ondemand) ] && ${DESKTOP}_ondemand "$APPNAME" if [ $(which ${DESKTOP}_restart) ]; then ${DESKTOP}_restart fi