Menu conversion script
Adam Stephens
adam.c.stephens at ohiou.edu
Wed Jul 30 02:01:02 EDT 2003
Hi,
I just updated to version 3 today, and already I liked it better than
version 2.
I don't claim to be a master programmer, but I wrote a script to convert
version 2 (blackbox) style menus to the new version 3 xml format. The
script prolly will break in some situations, but it worked just fine for
me. I used python, as I am trying to become more familiar with it, but
feel free to convert it, change it, lick it and make it more friendly.
Hopefully this will benefit others.
Enjoy,
-atom
------begin convertmenu.py ------
#!/usr/bin/python
#
# written by/for atom.
# it may not work for you.
#
#
import os, sys, re, string
from string import find, replace, upper, lower, strip
linenumber = 0
indent = ''
menuheader0 = '<menu id=\"'
menuheader1 = '\" label=\"'
menuheader2 = '\">'
menuend = '</menu>'
execute0 = '<item label=\"'
execute1 = '\">\n'
execute2 = '<action name=\"execute\"><execute>'
execute3 = '</execute></action>\n'
execute4 = '</item>'
try:
file = open(sys.argv[1], 'r')
except IndexError:
print 'usage: convertmenu.py <oldmenufile>'
sys.exit()
for line in file.readlines():
if find(line, '(') > -1:
object = strip(re.search('\(.*\)', line).group(), '()')
if find(line, '{') > -1:
runthis = strip(re.search('\{.*\}', line).group(), '{}')
if (find(line, '[begin]') > -1) or (find(line, '[submenu]') > -1) :
line =
indent+menuheader0+upper(object)+menuheader1+lower(object)\
+menuheader2
indent = indent+' '
elif find(line, '[end]') > -1:
indent = indent[:-1]
line = indent+menuend
elif find(line, '[exec]') > -1:
line = indent+execute0+lower(object)+execute1+indent+'
'+execute2\
+runthis+execute3+indent+execute4
else:
line = ''
if len(line) == 0:
continue
print line
linenumber += 1
file.close()
------end------
More information about the openbox
mailing list