r1510 - packages/trunk/mknonfreepkg

Gonéri Le Bouder goneri-guest at costa.debian.org
Wed Sep 6 18:00:41 UTC 2006


Author: goneri-guest
Date: 2006-09-06 18:00:29 +0000 (Wed, 06 Sep 2006)
New Revision: 1510

Modified:
   packages/trunk/mknonfreepkg/mknonfreepkg
Log:
some improvement but still in a dev stage


Modified: packages/trunk/mknonfreepkg/mknonfreepkg
===================================================================
--- packages/trunk/mknonfreepkg/mknonfreepkg	2006-09-05 20:56:54 UTC (rev 1509)
+++ packages/trunk/mknonfreepkg/mknonfreepkg	2006-09-06 18:00:29 UTC (rev 1510)
@@ -4,11 +4,26 @@
 
 version="0.0.1"
 sharedir='/usr/share/mknonfreepkg/'
-buildarea='/var/cache/mknonfreepkg/build'
+vardir='/var/cache/mknonfreepkg'
+tmpdir=vardir+'/tmp'
+tarballsdir=vardir+'/tarballs'
+buildarea=vardir+'/build'
 
 import os 
 import sys
+import urllib
 
+def run(cmd):
+  try:
+    err = os.system(cmd)
+  except Exception, value:
+    print >> sys.stderr, value
+    sys.exit(1) # of course, it needs a better error endler
+
+  if (err != 0):
+    print >> sys.stderr, 'this cmd failed: %s\n' % cmd 
+    sys.exit(1) # of course, it needs a better error endler
+
 class Params:
   def add(self, name, val):
     print 'set %s in %s parameter' % val, name
@@ -16,34 +31,42 @@
   def get(self, name):
     return 'totor'
 
+class RemoteObject:
+  def __init__(self, pkgname, urls):
+    # TODO read the 'urls' list and find the best URL 
+    self.url = 'http://localhost.localdomain/totorRi-li-1.2.0.tar.gz'
+    self.dirname, self.filename = os.path.split(self.url)
+    self.localpath = tarballsdir+'/'+self.filename
+    self.localtmppath = tmpdir+'/'+self.filename
+    self.preparefile = sharedir+'/'+pkgname+ '/prepare.make'
+    self.retrieve()
 
+  def retrieve(self):
+    if os.path.exists(self.localpath):
+      print 'The file is already on the system\n'
+      return
+
+    run('wget -c -O %s %s' % (self.localtmppath, self.url))
+    run('cd %s && make -f %s' % (tmpdir, self.preparefile))
+
+
 class MkNonFreePkg:
   def __init__(self):
     self.urls = []
     print 'MkNonFreePkg object created\n'
 
-  def extractCtrlFiles(self):
+  def installDebianFiles(self):
     ctrlfile = sharedir+self.pkgname+'/control.tar.gz'
     print 'Extracting ctrl.tar.gz in the build tree\n'
-    self.run('cd %s;tar xfz %s' % (buildarea+'/'+self.pkgname, ctrlfile))
+    run('cd %s;tar xfz %s' % (buildarea+'/'+self.pkgname, ctrlfile))
+    run('cp -r %s %s' % (sharedir+self.pkgname+'/debian',/buildarea+'/'+self.pkgname))
 
-  def run(self,cmd):
-    try:
-      err = os.system(cmd)
-    except Exception, value:
-      print >> sys.stderr, value
-      sys.exit(1) # of course, it needs a better error endler
 
-    if (err != 0):
-      print >> sys.stderr, 'this cmd failed: %s\n' % cmd 
-      sys.exit(1) # of course, it needs a better error endler
-
-
   def setPkgname(self, pkgname):
     self.pkgname = pkgname
 
+# TODO add ability to deal with more than one tarball
   def loadUrls(self):
-    #urlfile = "/usr/share/"+self.pkgname+"/totor/url.lst"
     urlfile = sharedir+self.pkgname+"/url.lst"
     print 'Opening urlfile: '+urlfile+'\n'
     try:
@@ -59,11 +82,14 @@
       self.urls.append(line)
     fd.close()
 
-  def download(self):
-    self.loadUrls()
-    for url in self.urls:
-      print 'Downloading pkg %s from %s' % (self.pkgname, url)
+#  def download(self):
+#    self.loadUrls()
+#    for url in self.urls:
+#      print 'Downloading pkg %s from %s' % (self.pkgname, url)
 
+  def getPkgRelease(self):
+    #TODO retrieve current package release 
+
   def prepare(self):
     print 'preparing %s build tree\n' % self.pkgname
 
@@ -73,11 +99,16 @@
 ########### 
   def create(self):
     print 'create %s\n' % self.pkgname
-    self.run('mkdir -p %s/%s' % (buildarea, self.pkgname))
+    run('mkdir -p %s/%s' % (buildarea, self.pkgname))
+    run('mkdir -p %s' % (tmpdir))
+    run('mkdir -p %s' % (tarballsdir))
     
-    self.download()
+#    self.download()
+    self.loadUrls()
+    self.getPkgRelease()
+    remoteobject = RemoteObject(self.pkgname, self.urls)
     self.prepare()
-    self.extractCtrlFiles()
+    self.installDebianFiles()
     self.build()
     self.clean()
 
@@ -104,13 +135,13 @@
 
 cmd = sys.argv[1]
 
-self = MkNonFreePkg()
+mknonfreepkg = MkNonFreePkg()
 
 if cmd == 'create':
   if len(sys.argv) == 3:
     print '->'+sys.argv[2]+'\n'
-    self.setPkgname(sys.argv[2])
-    self.create()
+    mknonfreepkg.setPkgname(sys.argv[2])
+    mknonfreepkg.create()
     sys.exit(0)
   else:
     print 'Usage: %s create pkgname\n' % sys.argv[0]




More information about the Pkg-games-commits mailing list