UCI Umounter


Forum: DSL Tips and Tricks
Topic: UCI Umounter
started by: mikshaw

Posted by mikshaw on Dec. 08 2005,06:16
So the subject came up on #dsl-chat a while ago about how to make it convenient to umount UCI applications, instead of having to browse to the file or remember where it's located.  This little flua script will grab a list of .uci files from /etc/mtab and display them for you. Select a file and press umount to uninstall the program.
Code Sample
#!/bin/flua
ww = 400
wh = 120
Fl_Widget.initializers = {textfont=15,labelfont=15,labelcolor=0,scrollbar_width=15}
Fl_Window.initializers = {box=Boxtype.thin_down,color=15}
Fl_Button.initializers = {box = Boxtype.thin_up, down_box = Boxtype.thin_down}
tempfile = "/tmp/lsuci.tempfile"

w_main = Window{ww,wh,"UCI files mounted"}

file_list = Hold_Browser{10,10,ww-20,wh-50}
refresh = Button{40,wh-30,80,20,"refresh"}
function refresh.callback()
execute("grep \".uci \" /etc/mtab|awk '{print $1}' >"..tempfile)
file_list:load(tempfile)
remove(tempfile)
end
umount = Button{ww-120,wh-30,80,20,"umount"}
function umount.callback()
if file_list.value > 0 then  
execute("mydsl-load "..file_list:text(file_list.value))
refresh.callback()
end
end

w_main.size_range(w_main,ww,wh)
w_main.resizable = file_list
refresh.callback()
w_main:show()

EDIT: awk '{print $1}' /etc/mtab | grep .uci$ would probably be less likely to grab an inappropriate line.

Posted by struppi on Dec. 08 2005,09:17
i use rox and made this one for automatic loading/unloading of clicked uci-files:
Code Sample
#!/bin/flua -f

-- Install and uninstall .UCI-files

if getn(arg) == 1 then
   uci = arg[1]
else
   print("usage: uci-load-choice.lua [uci_name]")
   exit(1)
end

local file = openfile("/etc/mtab", "r")

-- uci-name
l=strlen(uci)

for counter=1,l,1 do
x = strsub(uci,counter,counter)
if x=="/" then
 lastSlash=counter
end
end

p=(l-lastSlash)*-1

uciFile=strsub(uci,p)

--escaping
escapedUciFile=""
blankFileName=uciFile
l=strlen(uciFile)
for counter=1,l,1 do
x = strsub(uciFile,counter,counter)
if x=="-" then
 x="%-"
end
escapedUciFile=escapedUciFile..x
end
uciFile=escapedUciFile

-- analyse
filetable = {}
line = read(file, "*l")
while line do
  if strfind(line,uciFile) then
     if fl_ask(blankFileName.." is allready mounted!\n\nDo you want to unmount "..blankFileName.."?") then
        execute("mydsl-load " .. uci )
closefile(file)
        exit(0)
       else
        return
      end
  end
  line = read(file,"*l")
end

closefile(file)

if fl_ask(blankFileName.." is not mounted!\n\nDo you want to mount "..blankFileName.."?") then
 execute("mydsl-load " .. uci )
 exit(0)
else
 exit(0)
end

Powered by Ikonboard 3.1.2a
Ikonboard © 2001 Jarvis Entertainment Group, Inc.