Package: othman / 0.5.1-1.1

gen-index_setup.py.diff Patch series | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
Description: Move call to generate Qur'an index from Makefile to setup.py
 That would make the package build even if python2.5 is the default python.
Author: أحمد المحمودي (Ahmed El-Mahmoudy) <aelmahmoudy@users.sourceforge.net>
Forwarded: no

--- a/Makefile
+++ b/Makefile
@@ -5,7 +5,7 @@
 SOURCES=$(wildcard *.desktop.in)
 TARGETS=${SOURCES:.in=} othman-data/quran.db
 
-all: $(TARGETS) icons othman-data/ix.db
+all: $(TARGETS) icons
 
 icons:
 	for i in 96 72 64 48 36 32 24 22 16; do \
--- a/setup.py
+++ b/setup.py
@@ -6,6 +6,29 @@
 # to install type: 
 # python setup.py install --root=/
 
+from distutils.command.build import build
+from distutils.command.clean import clean
+
+class my_build(build):
+  def run(self):
+    build.run(self)
+    # generate data
+    from othman.core import othmanCore, searchIndexer
+
+    if not os.path.isfile('othman-data/ix.db'):
+      q=othmanCore(False)
+      ix=searchIndexer(True)
+      for n,(o,i) in enumerate(q.getAyatIter(1, 6236)):
+        for w in i.split(): ix.addWord(w,n+1)
+      d=os.path.dirname(sys.argv[0])
+      ix.save()
+
+class my_clean(clean):
+  def run(self):
+    clean.run(self)
+    try: os.unlink('othman-data/ix.db')
+    except OSError: pass
+
 locales=map(lambda i: ('share/'+i,[''+i+'/othman.mo',]),glob('locale/*/LC_MESSAGES'))
 data_files=[('share/othman/',glob('othman-data/*'))]
 data_files.extend(locales)
@@ -23,6 +46,7 @@
           'Operating System :: POSIX',
           'Programming Language :: Python',
           ],
+      cmdclass={'build': my_build, 'clean': my_clean},
       data_files=data_files
 )