<xmp><!-- <body><!--'"</title></head>--> <script type="text/javascript"> //OwnerIQ var __oiq_pct = 50; if( __oiq_pct>=100 || Math.floor(Math.random()*100/(100-__oiq_pct)) > 0 ) { var _oiqq = _oiqq || []; _oiqq.push(['oiq_addPageBrand','Lycos']); _oiqq.push(['oiq_addPageCat','Internet > Websites']); _oiqq.push(['oiq_addPageLifecycle','Intend']); _oiqq.push(['oiq_doTag']); (function() { var oiq = document.createElement('script'); oiq.type = 'text/javascript'; oiq.async = true; oiq.src = document.location.protocol + '//px.owneriq.net/stas/s/lycosn.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(oiq, s); })(); } //Google Analytics var _gaq = _gaq || []; _gaq.push(['_setAccount','UA-21402695-19']); _gaq.push(['_setDomainName','tripod.com']); _gaq.push(['_setCustomVar',1,'member_name','trcmdisk01',3]); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); //Lycos Init function getReferrer() { var all= this.document.cookie; if (all== '') return false; var cookie_name = 'REFERRER='; var start = all.lastIndexOf(cookie_name); if (start == -1) return false; start += cookie_name.length; var end = all.indexOf(';', start); if (end == -1) end = all.length; return all.substring(start, end); } function getQuery() { var rfr = getReferrer(); if (rfr == '') return false; var q = extractQuery(rfr, 'yahoo.com', 'p='); if (q) return q; q = extractQuery(rfr, '', 'q='); return q ? q : ""; } function extractQuery(full, site, q_param) { var start = full.lastIndexOf(site); if (start == -1) return false; start = full.lastIndexOf(q_param); if (start == -1) return false; start += q_param.length; var end = full.indexOf('&', start); if (end == -1) end = full.length; return unescape(full.substring(start, end)).split(" ").join("+"); } function generateHref(atag, template){ atag.href=template.replace('_MYURL_', window.location.href.replace('http://', '')).replace('_MYTITLE_','Check%20out%20this%20Tripod%20Member%20site!'); } var lycos_ad = Array(); var lycos_onload_timer; var cm_role = "live"; var cm_host = "tripod.lycos.com"; var cm_taxid = "/memberembedded"; var tripod_member_name = "trcmdisk01"; var tripod_member_page = "trcmdisk01/linux/ndslf01.htm"; var tripod_ratings_hash = "1713488635:1a667701f19060eb4a7d3c194a519ddc"; var lycos_ad_category = null; var lycos_ad_remote_addr = "209.202.244.9"; var lycos_ad_www_server = "www.tripod.lycos.com"; var lycos_ad_track_small = ""; var lycos_ad_track_served = ""; var lycos_search_query = getQuery(); </script> <script type="text/javascript" src="https://scripts.lycos.com/catman/init.js"></script> <script type='text/javascript'> var googletag = googletag || {}; googletag.cmd = googletag.cmd || []; (function() { var gads = document.createElement('script'); gads.async = true; gads.type = 'text/javascript'; var useSSL = 'https:' == document.location.protocol; gads.src = (useSSL ? 'https:' : 'http:') + '//www.googletagservices.com/tag/js/gpt.js'; var node = document.getElementsByTagName('script')[0]; node.parentNode.insertBefore(gads, node); })(); </script> <script type='text/javascript'> googletag.cmd.push(function() { googletag.defineSlot('/95963596/TRI_300X250_dfp', [300, 250], 'div-gpt-ad-1450204159126-0').addService(googletag.pubads()); googletag.defineSlot('/95963596/TRI_above_728x90_dfp', [728, 90], 'div-gpt-ad-1450204159126-1').addService(googletag.pubads()); googletag.defineSlot('/95963596/TRI_below_728x90_dfp', [728, 90], 'div-gpt-ad-1450204159126-2').addService(googletag.pubads()); googletag.pubads().enableSingleRequest(); googletag.enableServices(); }); </script> <script type="text/javascript"> (function(isV) { if( !isV ) { return; } var adMgr = new AdManager(); var lycos_prod_set = adMgr.chooseProductSet(); var slots = ["leaderboard", "leaderboard2", "toolbar_image", "toolbar_text", "smallbox", "top_promo", "footer2", "slider"]; var adCat = this.lycos_ad_category; adMgr.setForcedParam('page', (adCat && adCat.dmoz) ? adCat.dmoz : 'member'); if (this.lycos_search_query) { adMgr.setForcedParam("keyword", this.lycos_search_query); } else if(adCat && adCat.find_what) { adMgr.setForcedParam('keyword', adCat.find_what); } for (var s in slots) { var slot = slots[s]; if (adMgr.isSlotAvailable(slot)) { this.lycos_ad[slot] = adMgr.getSlot(slot); } } adMgr.renderHeader(); adMgr.renderFooter(); }((function() { var w = 0, h = 0, minimumThreshold = 300; if (top == self) { return true; } if (typeof(window.innerWidth) == 'number' ) { w = window.innerWidth; h = window.innerHeight; } else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) { w = document.documentElement.clientWidth; h = document.documentElement.clientHeight; } else if (document.body && (document.body.clientWidth || document.body.clientHeight)) { w = document.body.clientWidth; h = document.body.clientHeight; } return ((w > minimumThreshold) && (h > minimumThreshold)); }()))); window.onload = function() { var f = document.getElementById("FooterAd"); var b = document.getElementsByTagName("body")[0]; b.appendChild(f); f.style.display = "block"; document.getElementById('lycosFooterAdiFrame').src = '/adm/ad/footerAd.iframe.html'; // DOM Inj Ad (function(isTrellix) { var e = document.createElement('iframe'); e.style.border = '0'; e.style.margin = 0; e.style.display = 'block'; e.style.cssFloat = 'right'; e.style.height = '254px'; e.style.overflow = 'hidden'; e.style.padding = 0; e.style.width = '300px'; var isBlokedByDomain = function( href ) { var blockedDomains = [ "ananyaporn13000.tripod.com", "xxxpornxxx.tripod.com" ]; var flag = false; for( var i=0; i<blockedDomains.length; i++ ) { if( href.search( blockedDomains[ i ] ) >= 0 ) { flag = true; } } return flag; } var getMetaContent = function( metaName ) { var metas = document.getElementsByTagName('meta'); for (i=0; i<metas.length; i++) { if( metas[i].getAttribute("name") == metaName ) { return metas[i].getAttribute("content"); } } return false; } var getCommentNodes = function(regexPattern) { var nodes = {}; var nodesA = []; var preferredNodesList = ['a', 'c', 'b']; (function getNodesThatHaveComments(n, pattern) { if (n.hasChildNodes()) { if (n.tagName === 'IFRAME') { return false; } for (var i = 0; i < n.childNodes.length; i++) { if ((n.childNodes[i].nodeType === 8) && (pattern.test(n.childNodes[i].nodeValue))) { var areaName = pattern.exec(n.childNodes[i].nodeValue)[1]; nodes[areaName] = n; } else if (n.childNodes[i].nodeType === 1) { getNodesThatHaveComments(n.childNodes[i], pattern); } } } }(document.body, regexPattern)); for (var i in preferredNodesList) { if (nodes[preferredNodesList[i]]) { if( isTrellix && nodes[preferredNodesList[i]].parentNode.parentNode.parentNode.parentNode ) { nodesA.push(nodes[preferredNodesList[i]].parentNode.parentNode.parentNode.parentNode); } else { nodesA.push( nodes[preferredNodesList[i]] ); } } } return nodesA; } var properNode = null; var areaNodes = getCommentNodes( new RegExp( '^area Type="area_(\\w+)"' ) ); for (var i = 0; i < areaNodes.length; i++) { var a = parseInt(getComputedStyle(areaNodes[i]).width); if ((a >= 300) && (a <= 400)) { properNode = areaNodes[i]; break; } } var propertyName = getMetaContent("property") || false; if( isTrellix && (properNode) ) { e.src = '/adm/ad/injectAd.iframe.html'; properNode.insertBefore(e, properNode.firstChild); } else if( isTrellix && !( properNode ) ) // Slap the ad eventhought there is no alocated slot { e.src = '/adm/ad/injectAd.iframe.html'; e.style.cssFloat = 'none'; var cdiv = document.createElement('div'); cdiv.style = "width:300px;margin:10px auto;"; cdiv.appendChild( e ); b.insertBefore(cdiv, b.lastChild); } else if( !isBlokedByDomain( location.href ) ) { var injF = document.createElement('iframe'); injF.style.border = '0'; injF.style.margin = 0; injF.style.display = 'block'; injF.style.cssFloat = 'none'; injF.style.height = '254px'; injF.style.overflow = 'hidden'; injF.style.padding = 0; injF.style.width = '300px'; injF.src = '/adm/ad/injectAd.iframe.html'; if( b && ( !isTrellix || ( typeof isTrellix == "undefined" ) ) ) // All other tripod props { var cdiv = document.createElement('div'); cdiv.style = "width:300px;margin:10px auto;"; cdiv.appendChild( injF ); b.insertBefore(cdiv, b.lastChild); } } }( document.isTrellix )); } </script> <div id="tb_container" style="background:#DFDCCF; border-bottom:1px solid #393939; position:relative; z-index:999999999!important"> <!--form name="search" onSubmit="return searchit()" id='header_search' > <input type="text" placeholder="Search" size=30 name="search2" value=""> <input type="button" value="Go!" onClick="searchit()"> </form> <style> form#header_search { width: 916px; margin: 0 auto 8px; position: relative; } form#header_search input { height: 40px; font-size: 14px; line-height: 40px; padding: 0 8px; box-sizing: border-box; background: #F4F2E9; border: 1px solid #BBB8B8; transition: background-color 300ms ease-out, color 300ms ease; } form#header_search input[type="text"] { width: 100%; } form#header_search input[type="text"]:focus { border-color: #A2D054; background-color: #fff; box-shadow: 0 0px 12px -4px #A2D054; } form#header_search input[type="button"] { position: absolute; top: 1px; right: 1px; opacity: 1; background: #DFDCCF; color: #463734; width: 125px; cursor: pointer; height: 38px; border: none; } form#header_search input[type="text"]:focus ~ input[type='button']:hover, form#header_search input[type='button']:hover { background-color: #A5CE56; color: #fff; } form#header_search input[type="text"]:focus ~ input[type='button'] { background-color: #52AEDF; color: #fff; } </style> <script> function searchit(){ // determine environment var search_env if (lycos_ad_www_server.indexOf(".pd.") > -1) { search_env = 'http://search51.pd.lycos.com/a/'; } else if (lycos_ad_www_server.indexOf(".qa.") > -1) { search_env = 'http://search51.qa.lycos.com/a/'; } else { search_env = 'http://search51.lycos.com/a/'; } var search_term = encodeURIComponent(document.search.search2.value) var search_url = search_env+search_term; window.open(search_url); return false } </script--> <style> .adCenterClass{margin:0 auto} </style> <div id="tb_ad" class="adCenterClass" style="display:block!important; overflow:hidden; width:916px;"> <div id="ad_container" style="display:block!important; float:left; width:728px "> <script type="text/javascript"> if (typeof lycos_ad !== "undefined" && "leaderboard" in lycos_ad) { document.write(lycos_ad['leaderboard']); } </script> </div> </div> </div> <script type="text/javascript"> if (typeof lycos_ad !== "undefined" && "slider" in lycos_ad) { document.write(lycos_ad['slider']); } </script> <!-- added 7/22 --> <div id="FooterAd" style="background:#DFDCCF; border-top:1px solid #393939; clear:both; display:none; width:100%!important; position:relative; z-index:999999!important; height:90px!important"> <div class="adCenterClass" style="display:block!important; overflow:hidden; width:916px;"> <div id="footerAd_container" style="display:block!important; float:left; width:728px"> <iframe id="lycosFooterAdiFrame" style="border:0; display:block; float:left; height:96px; overflow:hidden; padding:0; width:750px"></iframe> </div> </div> </div> --></xmp>


Linux logo

DSL Fixes.

Home:: Info :: shlocate :: kxsetup :: shxtdesk :: kswitch.lua :: mydsl-toad :: Credits :: &c.


+++ shlocate
#!/bin/sh
#========

echo ooo
echo Linux file locator v2.1
echo =======================

if [ ":$2:" == "::" ] 
then
  echo Usage: $0 '"--nam filespec" | "--str | --kno string [parm]"'
  echo
  echo '--nam searches entire system for specified files'
  echo '--str searches for files containing string; includes (most) hidden'
  echo '      (current dir & below)'
  echo '--kno searches for files containing string; visible only'
  echo '      (/KNOPPIX: dev, var, etc/skel/.dfmdesk omitted'
  echo
  echo 'short style parms accepted (-n -s -k)'
  echo 'strings containing spaces must be quoted'
  echo '(optional parm following string is passed to grep: "l" is useful)'
  echo
  exit 1
fi

FUNC=$1
SPEC=$2
PARM=$3

selgrep() { MAINDIR=$1 ; OMITDIR=$2
# SELective GREP: skips directories known to be *problems*
  cd ${MAINDIR}
  echo Scanning ${MAINDIR} for \"${SPEC}\" ...
  sudo grep -is${PARM} "${SPEC}" *
  for DIR in $(ls | sed "s_${OMITDIR}__g" | sed "s_dev__g" | sed "s_var__g")
  do
    sudo grep -irs${PARM} "${SPEC}" ${DIR}
  done
  return 0
}

findnam() {

  echo Searching for files matching ${SPEC} ...
  find / -name ${SPEC} 2>/dev/null
  return 0
}

findstr() {

  echo Scanning $(pwd) for \"${SPEC}\" ...
# non-hidden files
  sudo grep -irs${PARM} "${SPEC}" * 
# (most) dotfiles but *not* parent directory
  sudo grep -irs${PARM} "${SPEC}" .[a-zA-Z0-9]*
  return 0
}

findkno() {

  selgrep /KNOPPIX          etc
  selgrep /KNOPPIX/etc      skel
  selgrep /KNOPPIX/etc/skel .dfmdesk
  return 0
}

case ${FUNC} in
  --nam | -n ) findnam ;;
  --str | -s ) findstr ;;
  --kno | -k ) findkno ;;
           * ) echo $0 : undefined function ;;
esac

exit 0


+++ DSL xsetup.sh enhancer
#!/bin/sh
#========

# Screaming CuckooBroad Associates 2009
# wrapper for DSL xsetup.sh (ie /usr/sbin/kbdconfig)
# undoes Shingledeckerian damage to runtime environment
# repairs /opt/bootlocal.sh & permits customisation of generated .xserverrc

aterm +tr --title "Xwindow configuration" -e xsetup.sh
sudo loadkeys ~/kp

# repair /opt/bootlocal.sh

INIT=/opt/bootlocal.sh
  chown dsl.staff ${INIT}
  chmod 777       ${INIT}

# customise .xserverrc

cd ~
cp -p .xserverrc .xserverrcV

cat >.xserverrc << :EOF:

# customisations to .xserverrc added by kxsetup (qv comments therein)
# syslogd is to mask APM vs ACPI messages at server init time
# exec has to wait until its actually up (& then some)

  echo '.xserverrc (!)'
  pidof syslogd &>/dev/null || sudo syslogd
  while [ 0 == 0 ]
  do
    pidof syslogd &>/dev/null && break
  done
  sleep 1

# generated server invocation follows:

:EOF:

cat .xserverrcV >>.xserverrc

exit 0


+++ shxtdesk
#!/bin/sh
#========

# shxtdesk : xtdesk driver for DSL 4.4.10 : Screaming CuckooBroad Associates 2009
# performs reinitialisation of xtdesk from .xinitrc or without cycling Xwindow
# when X cycled: takes spec from .desktop as maintained via kswitch.lua
# (permits population of .xtdesktop directory with user-defined icon complement)
# run within X: properly updates sessiontime icons after UCI dismounts
# /tmp/xicostat flagfile establishes session stasis; boottime reinit if removed
# let the healing begin

# echo 'shxtdesk starting ...'

cd ~
ORIGIN=/KNOPPIX/etc/skel/.xtdesktop
KES=$(dirname  ${ORIGIN})
XTD=$(basename ${ORIGIN})
sudo chmod 777 ${XTD}
sudo chmod 777 ${XTD}/*

# $1 is only nonblank run from .xinitrc; "xtdeskuser" returned from .desktop
  [ -f /tmp/xicostat ] || rm -rf ${XTD}/* &>/dev/null
  [ "$1" == "xtdesk" ] && KSOURCE=${ORIGIN} || KSOURCE=${XTD}K
  cp -p ${KSOURCE}/* ${XTD}
  echo "delete me for coldstart-style icon repopulation via xtdesk" >/tmp/xicostat

# set up proper mp3 symlink for NTFS / FAT / ext2 / ISO
  KDATA=$(echo $(zkp) | sed "s_/unx__g")
  [ -d ${KDATA}/mp3 ] && KPMP3=mp3 || KPMP3=MP3
  ln -sfn ${KDATA}/${KPMP3} /opt/bin/kpmp3

# xtdesk will fail to start if *.lnk files have no corresponding *.png or *.xpm
for i in $(ls ${XTD}/*.lnk)
do
  ICON=0
  BASE=${i%.lnk}
  [ -f ${BASE}.png ] && ICON=1
  [ -f ${BASE}.xpm ] && ICON=1
  [ "${ICON}" == "0" ] && cp ${ORIGIN}/program.png ${BASE}.png
done

# terminate xscreensaver daemon & reset screenblanker
pidof xscreensaver &>/dev/null && sudo pkill -x xscreensaver &>/dev/null
xset s default

# The rest is verbatim replacement of iconsnap.sh. Thanx Bob.

# this is unquestionably the best form; encountered often
# while KPID=$(pidof xtdesk)
# do
#   sudo kill ${KPID}
# done

# this is fine but it kills *everything* on Solaris; dont get used to it
# pidof xtdesk &>/dev/null && sudo killall  xtdesk &>/dev/null

# if you must use a name then use pgrep w/ the "exact" switch
  pidof xtdesk &>/dev/null && sudo pkill -x xtdesk &>/dev/null

iconsnap.lua
# echo 'iconsnap.lua complete; starting xtdesk ...'
  nohup xtdesk &>/dev/null &
exit 0


+++ kswitch.lua
#!/bin/lua

-- Screaming CuckooBroad Associates
-- kswitch.lua v1.03.0002
-- DSL 4.4.10 [Debian / Knoppix] Linux 2.4.31 

-- permits independent switching among
-- multiple Window Managers & multiple icon modes
-- reenables xtdesk icons

-- based loosely on original by Robert Shingledecker
-- MurgaLua Version 0.6.8 (http://www.murga-projects.com/murgaLua/
-- MurgaLua FLTK bindings: Copyright 2006-8 John Murga, GPL license.
-- Warning: FLTK bindings is a subset of the full MurgaLua environment.

-- Please send *me* a check
-- I am a volunteer part of the GNU/Linux "community"
-- I "volunteered" to clean up the mess. Cheers you guyz

require("fltk")
dofile("/etc/init.d/functions5.lua")

boxwidth = 200
boxheight = 220
groupleft = 10
groupx = boxwidth - groupleft

w = fltk:Fl_Double_Window(boxwidth, boxheight, "DSL Desktop")
w:callback(
function(w)
  os.exit(0)
end)

wmGroup = fltk:Fl_Group(groupleft, 10, groupx, 90)

wmleft = 10
wmx = boxwidth - (2 * wmleft)
wmy = 25

icewmBtn = fltk:Fl_Round_Button(wmleft, 20, wmx, wmy, "IceWM Window Mgr")
icewmBtn:type(fltk.FL_RADIO_BUTTON)
icewmBtn:value(1)

fluxboxBtn = fltk:Fl_Round_Button(wmleft, 40, wmx, wmy, "Fluxbox Window Mgr")
fluxboxBtn:type(fltk.FL_RADIO_BUTTON)
fluxboxBtn:value(0)

jwmBtn = fltk:Fl_Round_Button(wmleft, 60, wmx, wmy, "JWM: Joes Window Mgr")
jwmBtn:type(fltk.FL_RADIO_BUTTON)
jwmBtn:value(0)

fltk:Fl_End()  -- End of wm group

iconGroup = fltk:Fl_Group(groupleft, 80, groupx, 110)

iconleft = 40
iconx = boxwidth - (2 * iconleft)
icony = 25

xtuserBtn = fltk:Fl_Round_Button(iconleft, 90, iconx, icony, "XTuser icons")
xtuserBtn:type(fltk.FL_RADIO_BUTTON)
xtuserBtn:value(1)

xtdeskBtn = fltk:Fl_Round_Button(iconleft, 110, iconx, icony, "XTdesk icons")
xtdeskBtn:type(fltk.FL_RADIO_BUTTON)
xtdeskBtn:value(0)

dfmBtn = fltk:Fl_Round_Button(iconleft, 130, iconx, icony, "DFM icons")
dfmBtn:type(fltk.FL_RADIO_BUTTON)
dfmBtn:value(0)

noiconsBtn = fltk:Fl_Round_Button(iconleft, 150, iconx, icony, "no icons")
noiconsBtn:type(fltk.FL_RADIO_BUTTON)
noiconsBtn:value(0)

fltk:Fl_End()  -- End of icon group

okBtn = fltk:Fl_Return_Button(20, 180, 60, 25, "OK")
okBtn:callback(
function(okBtn)
  wm = "iwprog"
  icons = "xtdesk"

-- Greetings from Shingledecker Lualand (!)
-- When /usr/bin/mydsl-load is run & it finds xtdesk running
-- it executes /usr/bin/iconsnap.sh. This will pkill xtdesk
-- but not restart it unless it finds 'xtdesk' in .desktop.
-- 'xtdesk user' is returned *without* the space in .xinitrc
-- when .desktop is parsed by /usr/bin/getoption.lua.

  if xtuserBtn:value() == 1 then
     icons = "xtdesk user"
  end
  if xtdeskBtn:value() == 1 then
     icons = "xtdesk"
  end
  if dfmBtn:value() == 1 then
     icons = "dfm"
  end
  if noiconsBtn:value() == 1 then
     icons = "noicons"
  end

  if icewmBtn:value() == 1 then
     wm = "iwprog"
  end
  if fluxboxBtn:value() == 1 then
     wm = "fluxbox"
  end
  if jwmBtn:value() == 1 then
     wm = "jwm"
  end

  home = os.getenv("HOME")
  file = home.."/.desktop"
  io.output(file)
  io.write("wm: "..wm.."\n")
  io.write("icons: "..icons.."\n")
  io.flush()
  io.output()

  os.execute("cp /opt/.mydsl_menu/"..wm.."/menu_template /opt/.mydsl_menu/"..wm.."/menu")
  for _,appname in ipairs(readDir("/tmp/mydsl.menu")) do
    os.execute("/usr/bin/desktop.sh "..appname)
  end

  os.execute("touch /tmp/xvesa")
  os.execute("killall Xvesa Xfbdev 2>/dev/null &")
  os.exit(0)
end)

cancelBtn = fltk:Fl_Button(120, 180, 60, 25, "Cancel")
cancelBtn:callback(
function(cancelBtn)
  os.exit(1)
end)

w:show()
Fl:run()


+++ mydsl-toad
#!/bin/sh
#(c) Robert Shingledecker 2004,2005,2006,2007
#
. /etc/init.d/dsl-functions
#
MYMENU="/tmp/mydsl.menu"
CMDLINE="$(cat /proc/cmdline)"
#
# Main
#
#if [ -n "$DISPLAY" ] && [ $UID != 1001 ]; then
#   echo "Non DSL User error." > /tmp/noload
#   echo "You must be logged in as user \"dsl\" to install a myDSL extension."
#   exit 1
#else
   rm -f /tmp/noload
#fi
if [ -n "$1" ]; then
   APP="$1"
else
   whiptail --title "Specify myDSL Extensions" --inputbox "Enter extension, e.g. /mnt/hda3/optional/myapp.dsl" 0 0 2>/tmp/mydsl.app
   APP=$(cat /tmp/mydsl.app)
   if [ ! -n "$APP" ]; then
      exit 1
   fi
fi
if [ -n "$2" ]; then
   mydsl-wget "$APP" "$2"
   if [ -f /tmp/noload ]; then
      cat /tmp/noload
      exit 1;
   fi
fi
#
case "$APP" in
   *.uci )
      APPNAME=$(getbasefile "$APP" 1)
      sudo /etc/init.d/mountci "$APP"
   ;;
   *.unc )
      if [ -f /etc/sysconfig/unionfs ]; then
        APPNAME=$(getbasefile "$APP" 1)
        sudo /etc/init.d/mountci "$APP"
      fi
   ;;
   *.dsl)
      APPNAME=$(getbasefile "$APP" 1)
      sudo /etc/init.d/mydsl-install "$APP"
      desktop.sh "$APPNAME"
   ;;
   *.tar.gz)
      APPNAME=$(getbasefile "$APP" 2)
      sudo /etc/init.d/mydsl-install "$APP"
      desktop.sh "$APPNAME"
   ;;
esac

# Following if fails at deinstall time because /tmp/mydsl.menu entry has
# already been deleted by mountci. Even without the WM tasks being checked
# theres no reason not to restart xtdesk or jwm at any time. Fluxbox part
# looks completely spurious tho. Maybe Ill care later.

# if [ -f "$MYMENU/$APPNAME" ]; then
     pidof xtdesk && iconsnap.sh
     pidof jwm >/dev/null && jwm -restart
     FLUXPID=$(pidof fluxbox) && kill -s SIGUSR2 "$FLUXPID"
# fi

# Above FLUXPID assignment results in $?=1 which makes VFU complain
# of a failed execution if the script drops thru. Yet another reason
# always to include an exit 0 if its your opinion your exceptionally 
# lousy script may have terminated successfully. Rest of code mine.

BSDIR=/opt/.mydsl_menu/iwprog
mkdir ${BSDIR} &>/dev/null
touch ${BSDIR}/menu_template
echo MyDSL-toad completed successfully. Press a key.
read
exit 0


GPL
© 2009 TRCM TranceRave Capital Management

Screaming CuckooBroad Associates part of the CircleOmega organisation TRCM
<noscript> <!-- ooo