-rwxr-xr-x | development/mkHelpSkeleton | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/development/mkHelpSkeleton b/development/mkHelpSkeleton new file mode 100755 index 0000000..d7914fe --- a/dev/null +++ b/development/mkHelpSkeleton | |||
@@ -0,0 +1,116 @@ | |||
1 | #!/usr/bin/env python | ||
2 | """ | ||
3 | This skript creates a help skeleton for a certain application | ||
4 | (C) Michael 'Mickey' Lauer who did this even if he had a lot of other stuff to do... THANKS | ||
5 | """ | ||
6 | |||
7 | import os | ||
8 | import sys | ||
9 | |||
10 | COUNTRYCODES = "da de en fr nl pl hu no pt it pt_BR ja sl zh_CN es ko zh_TW".split() | ||
11 | OPIEDIR = os.environ["OPIEDIR"] | ||
12 | |||
13 | #Package: opie-appskey-help-en | ||
14 | #Files: help/en/html/opie-appskey.html | ||
15 | #Priority: optional | ||
16 | #Section: opie/onlinedoc | ||
17 | #Maintainer: ljp <llornkcor@handhelds.org> | ||
18 | #Architecture: arm | ||
19 | #Version: $QPE_VERSION-$SUB_VERSION | ||
20 | #Depends: opie-appskey | ||
21 | #License: GPL | ||
22 | #Description: Application Key help files (english) | ||
23 | |||
24 | def doit( name, cc ): | ||
25 | """Create a help skeleton corresponding to a package described by a desktop file.""" | ||
26 | |||
27 | desktop = {} | ||
28 | for line in file( name ): | ||
29 | try: | ||
30 | key, value = line.split( '=' ) | ||
31 | except ValueError: | ||
32 | pass | ||
33 | else: | ||
34 | desktop[key.strip()] = value.strip() | ||
35 | |||
36 | try: | ||
37 | application = desktop["Exec"] | ||
38 | except: | ||
39 | fail( "No Exec given in .desktop file" ) | ||
40 | |||
41 | print "Generating help skeleton for application '%s'..." % application | ||
42 | helpdirname = "%s/help/%s/html" % ( OPIEDIR, cc ) | ||
43 | helpappdirname = "%s/%s" % ( helpdirname, application ) | ||
44 | makecontrol( helpdirname, application, cc, desktop ) | ||
45 | makedir( helpappdirname ) | ||
46 | makehtml( helpdirname, application, cc, desktop ) | ||
47 | |||
48 | #------------------------------------------------------# | ||
49 | def makehtml( directory, application, cc, desktop ): | ||
50 | """Creates the help template file.""" | ||
51 | |||
52 | helpfilename = "%s/%s.html" % ( directory, application ) | ||
53 | print "Creating help file '%s'" % helpfilename | ||
54 | h = file( helpfilename, "w" ) | ||
55 | print >> h, """<html> <head> <title>%s</title> </head> | ||
56 | <body> | ||
57 | <center><h1>%s</h1></center> | ||
58 | <hr> | ||
59 | </body> | ||
60 | </html> | ||
61 | """ % ( application, application ) | ||
62 | |||
63 | #------------------------------------------------------# | ||
64 | def makecontrol( directory, application, cc, desktop ): | ||
65 | """Creates the .control file.""" | ||
66 | |||
67 | controlfilename = "%s/opie-%s-help-%s.control" % ( directory, application, cc ) | ||
68 | print "Creating control file '%s'" % controlfilename | ||
69 | c = file( controlfilename, "w" ) | ||
70 | print >> c, "Package: opie-%s-help-%s" % ( application, cc ) | ||
71 | print >> c, "Files: help/%s/html/%s.html help/%s/html/%s" % ( cc, application, cc, application ) | ||
72 | print >> c, "Priority: optional" | ||
73 | print >> c, "Section: opie/onlinedoc" | ||
74 | print >> c, "Maintainer: %s" % desktop.get( "Maintainer", "Team Opie <opie@handhelds.org>" ) | ||
75 | print >> c, "Version: $QPE_VERSION-$SUB_VERSION" | ||
76 | print >> c, "Depends: opie-%s" % application | ||
77 | print >> c, "License: GPL" | ||
78 | print >> c, "Description: %s help files (%s)" % ( application, cc ) | ||
79 | |||
80 | #------------------------------------------------------# | ||
81 | def makedir( name ): | ||
82 | """Creates a directory.""" | ||
83 | |||
84 | print "Creating directory '%s'" % name | ||
85 | if not os.path.exists( name ): os.mkdir( name ) | ||
86 | |||
87 | #------------------------------------------------------# | ||
88 | def fail( reason ): | ||
89 | """Fails with a reason.""" | ||
90 | print reason | ||
91 | sys.exit( -1 ) | ||
92 | |||
93 | #------------------------------------------------------# | ||
94 | def checkUsage( args ): | ||
95 | """Checks calling syntax.""" | ||
96 | |||
97 | if len( args ) < 2: | ||
98 | fail( """ | ||
99 | Usage: %s <application>.desktop [countrycode] | ||
100 | |||
101 | If no countrycode is given, defaults to 'en' | ||
102 | If countrycode 'all' is given, generates skeletons | ||
103 | for all known countrycodes: %s""" % ( args[0], ", ".join( COUNTRYCODES ) ) ) | ||
104 | |||
105 | #------------------------------------------------------# | ||
106 | |||
107 | if __name__ == "__main__": | ||
108 | checkUsage( sys.argv ) | ||
109 | |||
110 | if len ( sys.argv ) == 2: | ||
111 | doit( sys.argv[1], "en" ) | ||
112 | elif len( sys.argv ) == 3: | ||
113 | if sys.argv[2] == "all": | ||
114 | [ doit( sys.argv[1], x ) for x in split() ] | ||
115 | else: | ||
116 | doit( sys.argv[1], sys.argv[2] ) | ||