commit 78bc0e05d951a2eee5f6169443c47c281df05e95
parent 2bc2d9a37d89529c37a013e89809a66f9dfad0b2
Author: Christoph Lohmann <20h@r-36.net>
Date: Sat, 27 Dec 2014 11:02:08 +0100
Adding three new tools: edepclean, euseflags and eworld
Diffstat:
3 files changed, 106 insertions(+), 0 deletions(-)
diff --git a/bin/edepclean b/bin/edepclean
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+emerge --depclean
+
diff --git a/bin/euseflags b/bin/euseflags
@@ -0,0 +1,98 @@
+#!/usr/bin/env python
+# coding=utf-8
+#
+# Copy me if you can.
+# by 20h
+#
+
+import os
+import sys
+import getopt
+import requests
+from lxml import etree
+import io
+from termcolor import colored
+
+def xmlhtml(fd):
+ return etree.parse(io.StringIO(fd.text), etree.HTMLParser())
+
+def usage(app):
+ app = os.path.basename(app)
+ sys.stderr.write("usage: %s [-hc] [-b baseuri] [useflag]\n" % (app))
+ sys.exit(1)
+
+def main(args):
+ try:
+ opts, largs = getopt.getopt(args[1:], "hb:cl")
+ except getopt.GetoptError as err:
+ print(str(err))
+ usage(args[0])
+
+ baseuri = "http://www.gentoo.org/dyn/use-index.xml"
+ docolor = False
+ dolist = False
+ for o, a in opts:
+ if o == "-h":
+ usage(args[0])
+ elif o == "-b":
+ baseuri = a
+ elif o == "-c":
+ docolor = True
+ elif o == "-l":
+ dolist = True
+ else:
+ assert False, "unhandled option"
+
+ suseflag = None
+ if len(largs) > 0:
+ suseflag = largs[0]
+
+ xml = xmlhtml(requests.get(baseuri))
+
+ table = xml.xpath("//table[@class=\"ntable\"]")
+ if len(table) < 1:
+ return 1
+
+ useflags = {}
+
+ trs = table[0].xpath("./tr")
+ if len(trs) < 2:
+ return 1
+
+ for tr in trs[1:]:
+ tds = tr.xpath("./td")
+ if len(tds) < 2:
+ continue
+
+ useflag = ("".join(tds[0].itertext())).strip()
+ text = ("".join(tds[1].itertext())).strip()
+
+ useflags[useflag] = text
+
+ if dolist == True:
+ for k in sorted(useflags.keys()):
+ print("%s" % (k))
+ else:
+ if docolor == True:
+ color = "yellow"
+ else:
+ color = None
+
+ if suseflag != None:
+ if not suseflag in useflags:
+ sys.stderr.write("'%s' not found.\n" % \
+ (suseflag))
+ return 1
+ iuseflags = [suseflag]
+ else:
+ iuseflags = sorted(useflags.keys())
+
+ for useflag in iuseflags:
+ print("%s %s" % (colored("%15s" % (useflag), color=color),\
+ useflags[useflag]))
+
+ return 0
+
+if __name__ == "__main__":
+ sys.exit(main(sys.argv))
+
diff --git a/bin/eworld b/bin/eworld
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+emerge "$@" @world
+