summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rwxr-xr-xscripts/mkHelpSkeleton118
1 files changed, 118 insertions, 0 deletions
diff --git a/scripts/mkHelpSkeleton b/scripts/mkHelpSkeleton
new file mode 100755
index 0000000..ffb21c2
--- a/dev/null
+++ b/scripts/mkHelpSkeleton
@@ -0,0 +1,118 @@
1#!/usr/bin/env python
2"""
3This 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...
5"""
6
7import os
8import sys
9
10COUNTRYCODES = "da de en fr nl pl hu no pt it pt_BR ja sl zh_CN es ko zh_TW".split()
11OPIEDIR = 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
24def 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#------------------------------------------------------#
49def makehtml( directory, application, cc, desktop ):
50 """Creates the help template file."""
51
52 helpfilename = "%s/opie-%s.html" % ( directory, application )
53 print "Creating help file '%s'" % helpfilename
54 h = file( helpfilename, "w" )
55 print >> h, """
56<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
57<html> <head> <title>%s</title> </head>
58<body>
59 <center><h1>%s</h1></center>
60 <hr>
61</body>
62</html>
63""" % ( application, application )
64
65#------------------------------------------------------#
66def makecontrol( directory, application, cc, desktop ):
67 """Creates the .control file."""
68
69 controlfilename = "%s/opie-%s-help-%s.control" % ( directory, application, cc )
70 print "Creating control file '%s'" % controlfilename
71 c = file( controlfilename, "w" )
72 print >> c, "Package: opie-%s-help-%s" % ( application, cc )
73 print >> c, "Files: help/%s/html/opie-%s.html help/%s/html/%s" % ( cc, application, cc, application )
74 print >> c, "Priority: optional"
75 print >> c, "Section: opie/onlinedoc"
76 print >> c, "Maintainer: %s" % desktop.get( "Maintainer", "Team Opie <opie@handhelds.org>" )
77 print >> c, "Version: $QPE_VERSION-$SUB_VERSION"
78 print >> c, "Depends: opie-%s" % application
79 print >> c, "License: GPL"
80 print >> c, "Description: %s help files (%s)" % ( application, cc )
81
82#------------------------------------------------------#
83def makedir( name ):
84 """Creates a directory."""
85
86 print "Creating directory '%s'" % name
87 if not os.path.exists( name ): os.mkdir( name )
88
89#------------------------------------------------------#
90def fail( reason ):
91 """Fails with a reason."""
92 print reason
93 sys.exit( -1 )
94
95#------------------------------------------------------#
96def checkUsage( args ):
97 """Checks calling syntax."""
98
99 if len( args ) < 2:
100 fail( """
101Usage: %s <application>.desktop [countrycode]
102
103If no countrycode is given, defaults to 'en'
104If countrycode 'all' is given, generates skeletons
105for all known countrycodes: %s""" % ( args[0], ", ".join( COUNTRYCODES ) ) )
106
107#------------------------------------------------------#
108
109if __name__ == "__main__":
110 checkUsage( sys.argv )
111
112 if len ( sys.argv ) == 2:
113 doit( sys.argv[1], "en" )
114 elif len( sys.argv ) == 3:
115 if sys.argv[2] == "all":
116 [ doit( sys.argv[1], x ) for x in split() ]
117 else:
118 doit( sys.argv[1], sys.argv[2] )