org.guifications.plugins.buildsystem_rewrite: 70ec40043ffac8959fd068e14cd5378d018467dd

grim at guifications.org grim at guifications.org
Mon Mar 31 23:30:16 CDT 2008


-----------------------------------------------------------------
Revision: 70ec40043ffac8959fd068e14cd5378d018467dd
Ancestor: 4daba4e23ff2d06bb50c64c795b68109c336c056
Author: grim at guifications.org
Date: 2008-04-01T04:25:07
Branch: org.guifications.plugins.buildsystem_rewrite

Modified files:
        plugin_pack.py

ChangeLog: 

Some more work towards plugin_pack.py

The new flag options word, but command parsing needs to be completed


-----------------------------------------------------------------
This revision's diffstat output:
 plugin_pack.py |   75 +++++++++++++++++++++++++++++++--------------------------
 1 file changed, 42 insertions(+), 33 deletions(-)
-------------- next part --------------
============================================================
--- plugin_pack.py	b90682fe9641bdac607443926c0601ece040bea0
+++ plugin_pack.py	a180b5cf0d2b58592cd2e610200e42ba073506a1
@@ -91,7 +91,13 @@ class PluginPack:
 class PluginPack:
 	plugins = {}
 
-	def load_plugins(self):
+	def load_plugins(self, types, depends):
+		if len(types) == 0:
+			types = None
+
+		if len(depends) == 0:
+			depends = None
+
 		for file in glob.glob('*/plugins.cfg'):
 			parser = ConfigParser.ConfigParser()
 
@@ -104,6 +110,20 @@ class PluginPack:
 			for plugin in parser.sections():
 				p = Plugin(os.path.dirname(file), plugin, parser)
 
+				# this is kind of hacky, but if we have types, we check to see
+				# if the type is in list of types to load.
+				if types:
+					try:
+						types.index(p.type)
+					except ValueError:
+						continue
+				
+				# now we check if the give plugins depends match the search
+				# depends
+				if depends:
+					if len(set(depends).intersection(set(p.depends))) == 0:
+						continue
+
 				self.plugins[p.name] = p
 
 	def list_type(self, type):
@@ -204,47 +224,36 @@ def main():
 	# create our main instance
 	pp = PluginPack()
 
-	# load all our plugin data
-	pp.load_plugins()
+	types = []
+	depends = []
 
 	try:
-		shortopts = 'aDdhip:'
-		longopts = [
-			'abusive-plugins',
-			'dependency-graph',
-			'default-plugins',
-			'dist-dirs',
-			'help',
-			'incomplete-plugins',
-			'plugin',
-		]
+		shortopts = 'adfiPp'
 
-		opts, args = getopt.getopt(sys.argv[1:], shortopts, longopts)
+		opts, args = getopt.getopt(sys.argv[1:], shortopts)
 	except getopt.error, msg:
 		print msg
 		print __doc__
 		sys.exit(1)
 
-	if not opts:
-		print __doc__
-		sys.exit(1)
+	for o, a in opts:
+		if o == '-a':
+			types.append('abusive')
+		elif o == '-d':
+			types.append('default')
+		elif o == '-i':
+			types.append('incomplete')
+		elif o == '-f':
+			depends.append('finch')
+		elif o == '-P':
+			depends.append('pidgin')
+		elif o == '-p':
+			depends.append('purple')
 
-	for o, a in opts:
-		if o in ('-a', '--abusive-plugins'):
-			pp.print_names(pp.abusive_plugins())
-		elif o == '--dependency-graph':
-			pp.dependency_graph()
-		elif o in ('-D', '--dist-dirs'):
-			pp.dist_dirs()
-		elif o in ('-d', '--default-plugins'):
-			pp.print_names(pp.default_plugins())
-		elif o in ('-h', '--help'):
-			print __doc__
-			sys.exit(0)
-		elif o in ('-i', '--incomplete-plugins'):
-			pp.print_names(pp.incomplete_plugins())
-		elif o in ('-p', '--plugin'):
-			print pp.plugins[a]
+	print "args: %s"  % (string.join(args, ' '))
 
+	pp.load_plugins(types, depends)
+	pp.print_names(pp.plugins.values())
+
 if __name__ == "__main__":
 	main()


More information about the Plugins-commits mailing list