--- /dev/null
+#!/usr/bin/python
+
+import os
+
+os.system("clear")
+internalname = raw_input("Internal plugin name (no whitespaces, plugin directory): ")
+name = raw_input("Visible plugin name: ")
+print
+
+os.system("clear")
+dirlist = []
+count = 0
+print "Plugin categories:"
+for dir in os.listdir("."):
+ if os.path.isdir(dir):
+ count += 1
+ dirlist.append(dir)
+ print count, dir
+
+category = raw_input("Select plugin category: ")
+category = dirlist[int(category) - 1]
+
+def add_where_extensionsmenu(name, fnc):
+ description = raw_input("Plugin description: ")
+ return 'PluginDescriptor(name = "%s", description = _("%s"), where = PluginDescriptor.WHERE_EXTENSIONSMENU, fnc = %s)' % (name, description, fnc)
+
+def add_where_pluginmenu(name, fnc):
+ description = raw_input("Plugin description: ")
+ icon = raw_input("Icon (default: 'plugin.png': ")
+ if icon == "":
+ icon = "plugin.png"
+ return 'PluginDescriptor(name = "%s", description = _("%s"), icon = "%s", where = PluginDescriptor.WHERE_PLUGINMENU, fnc = %s)' % (name, description, icon, fnc)
+
+wherelist = []
+wherelist.append(("WHERE_EXTENSIONSMENU", add_where_extensionsmenu))
+wherelist.append(("WHERE_PLUGINMENU", add_where_pluginmenu))
+
+targetlist = []
+
+stop = False
+
+while not stop:
+ os.system("clear")
+ print "selected targets:"
+ for where in targetlist:
+ print where[0]
+
+ print
+ print "available targets:"
+ count = 0
+ for where in wherelist:
+ count += 1
+ print count, where[0]
+ print "x break"
+
+ target = raw_input("Select WHERE-target: ")
+ if target == "x":
+ stop = True
+ else:
+ if wherelist[int(target) - 1] not in targetlist:
+ targetlist.append(wherelist[int(target) - 1])
+ else:
+ targetlist.remove(wherelist[int(target) - 1])
+
+
+pluginpath = category + "/" + internalname
+os.mkdir(pluginpath)
+
+makefile = open(category + "/Makefile.am", "r")
+lines = makefile.readlines()
+lines = ''.join(lines)
+lines = lines.strip()
+lines += " " + internalname
+makefile.close()
+
+makefile = open(category + "/Makefile.am", "w")
+makefile.write(lines)
+makefile.close()
+
+lines = []
+print "open"
+configure = open("../../../configure.ac", "r")
+while True:
+ line = configure.readline()
+ if not line:
+ break
+ lines.append(line)
+ if line.strip() == "lib/python/Plugins/" + category + "/Makefile":
+ lines.append("lib/python/Plugins/" + pluginpath + "/Makefile\n")
+configure.close()
+print "close"
+
+configure = open("../../../configure.ac", "w")
+configure.writelines(lines)
+configure.close()
+
+file = open(pluginpath + "/plugin.py", "w")
+
+importlist = []
+for where in targetlist:
+ importlist.append(where[0])
+
+file.write("""from Screens.Screen import Screen
+from Plugins.Plugin import PluginDescriptor, %s
+""" % ', '.join(importlist))
+
+mainlist = []
+for count in range(len(targetlist)):
+ if count == 0:
+ mainlist.append("main")
+ else:
+ mainlist.append("main" + str(count))
+
+for main in mainlist:
+ file.write("""
+def %s(session, **kwargs):
+ pass
+""" % main)
+
+descriptorlist = []
+for count in range(len(targetlist)):
+ os.system("clear")
+ where = targetlist[count]
+ print "Options for target %s" % where[0]
+ descriptorlist.append(where[1](name, mainlist[count]))
+
+if len(descriptorlist) == 1:
+ descriptorlist = descriptorlist[0]
+else:
+ descriptorlist = "[" + ', '.join(descriptorlist) + "]"
+
+file.write("""
+def Plugins(**kwargs):
+ return %s
+ """ % descriptorlist)
+
+file.close()
+
+makefile = open(pluginpath + "/Makefile.am", "w")
+makefile.write("""installdir = $(LIBDIR)/enigma2/python/Plugins/%s/%s
+
+install_PYTHON = \\
+ __init__.py \\
+ plugin.py
+""" % (category, internalname))
+makefile.close()