gnewsense-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gnewsense-dev] Debderive


From: Stayvoid
Subject: Re: [Gnewsense-dev] Debderive
Date: Thu, 23 Feb 2012 02:35:08 +0300

Hello,

Please check this patch. There is a pastebin copy. [1] I haven't
checked it in a shell, but the syntax looks right.

--- debderiver.py
+++ debderiver_patch3.py
@@ -152,8 +152,8 @@
     def _add_filter_list(self, codename, filter_list=None,
             dist_codename=None):
         if not filter_list and not dist_codename:
-            print >> sys.stderr, ('Either filter_list or dist_codename '
-                    'must be given.')
+            sys.stderr.write('Either filter_list or dist_codename '
+                    'must be given\n')
             sys.exit(1)
         if filter_list:
             self._filter_lists[codename] = filter_list
@@ -252,8 +252,8 @@
                 try:
                     os.mkdir(path)
                 except:
-                    print >> sys.stderr, 'Unable to create directory %s.' % \
-                            path
+                    sys.stderr.write('Unable to create directory "%s"\n' % \
+                            path)

         # Reprepro wants some fields after others (e.g. Codename first).
         # Sorting them all is the easiest way to do that. We take scalars
@@ -295,14 +295,14 @@
             try:
                 os.mkdir(incoming_dir_path)
             except:
-                print >> sys.stderr, 'Unable to create directory %s.' % \
-                        incoming_dir_path
+                sys.stderr.write('Unable to create directory "%s"\n' % \
+                        incoming_dir_path)
         if not os.path.isdir(temp_dir_path):
             try:
                 os.mkdir(temp_dir_path)
             except:
-                print >> sys.stderr, 'Unable to create directory %s.' % \
-                        temp_dir_path
+                sys.stderr.write('Unable to create directory "%s"\n' % \
+                        temp_dir_path)
         f_inc = open(incoming_path, 'w')
         f_inc.write('Name: all\n')
         f_inc.write('Allow: ' +
@@ -319,7 +319,7 @@
                 try:
                     os.mkdir(p)
                 except:
-                    print >> sys.stderr, 'Unable to create directory %s.' % p
+                    sys.stderr.write('Unable to create directory "%s"\n' % p)

     def _write_filter_file(self, codename, purge_list):
         filter_path = os.path.join(self._conf_path, 'filters', codename)
@@ -360,59 +360,59 @@
     try:
         main_conf = yaml.load(open(conf_file_path, 'r'))
     except:
-        print >> sys.stderr, 'Unable to load %s.' % conf_file_path
+        sys.stderr.write('Unable to load "%s"\n' % conf_file_path)
         sys.exit(1)

     # Validate operating system level.
     for key in ('os', 'base_dir', 'description', 'signing_key',
'distributions'):
         if not main_conf.has_key(key):
-            print >> sys.stderr, 'Missing key: "%s".' % key
+            sys.stderr.write('Missing key: %s\n' % key)
             sys.exit(1)

     # Validate upstreams.
     ups = main_conf['upstreams']
     if not ups:
-        print >> sys.stderr, 'No upstreams defined.'
+        sys.stderr.write('No upstreams defined\n')
         sys.exit(1)
     for up in ups:
         if not isinstance(ups[up], dict):
-            print >> sys.stderr, 'Upstream %s, no properties defined.' % up
+            sys.stderr.write('Upstream %s: no properties defined\n' % up)
             sys.exit(1)
         for key in ('method', 'suite'):
             if not ups[up].has_key(key):
-                print >> sys.stderr, 'Upstream %s, missing key: "%s"' % \
-                        (up, key)
+                sys.stderr.write('Upstream %s: missing key: %s\n' % \
+                        (up, key))
                 sys.exit(1)

     # Validate distributions.
     dists = main_conf['distributions']
     if not dists:
-        print >> sys.stderr, 'No distributions defined.'
+        sys.stderr.write('No distributions defined\n')
         sys.exit(1)
     for dist in dists:
         if not isinstance(dists[dist], dict):
-            print >> sys.stderr, 'Distribution %s, no properties defined.' % \
-                    dist
+            sys.stderr.write('Distribution %s: no properties defined\n' % \
+                    dist)
             sys.exit(1)
         for key in ('alias', 'architectures', 'upstream', 'version'):
             if not dists[dist].has_key(key):
-                print >> sys.stderr, 'Distribution %s, missing key: "%s".' % \
-                        (dist, key)
+                sys.stderr.write('Distribution %s: missing key: %s\n' % \
+                        (dist, key))
                 sys.exit(1)
         if not dists[dist]['architectures']:
-            print >> sys.stderr, 'Distribution %s, no architectures defined.' \
-                    % dist
+            sys.stderr.write('Distribution %s: no architectures defined\n' \
+                    % dist)
             sys.exit(1)
         if dists[dist].has_key('supplementary_suites'):
             suites = dists[dist]['supplementary_suites']
             if not isinstance(suites, dict):
-                print >> sys.stderr, ('Distribution %s, no supplementary '
-                        'suites defined.' % dist)
+                sys.stderr.write('Distribution %s: no supplementary '
+                        'suites defined\n' % dist)
                 sys.exit(1)
             for suite in suites:
                 if not suites[suite].has_key('upstream'):
-                    print >> sys.stderr, 'Supplementary suite %s-%s, missing \
-                            key: "%s".' % (dist, suite, 'upstream')
+                    sys.stderr.write('Supplementary suite %s-%s: missing \
+                            key: %s\n' % (dist, suite, 'upstream'))

     filter_dir_path = os.path.join(conf_dir_path, 'filters')
     for filter_file_name in os.listdir(filter_dir_path):
@@ -420,17 +420,16 @@
         try:
             filter_list = yaml.load(open(filter_file_path, 'r'))
         except:
-            print >> sys.stderr, 'Unable to load %s.' % filter_file_path
+            sys.stderr.write('Unable to load "%s"\n' % filter_file_path)
             sys.exit(1)
         if not isinstance(filter_list, list):
-            print >> sys.stderr, \
-                    'Filter file %s must contain a list of source
packages.' % \
-                    filter_file_path
+            sys.stderr.write('Filter file "%s" must contain a list of
source packages\n' % \
+                    filter_file_path)
             sys.exit(1)
         for item in filter_list:
             if not isinstance(item, basestring):
-                print >> sys.stderr, 'Filter file %s: %s is not valid source \
-                        package name.' % (filter_file_path, item)
+                sys.stderr.write('Filter file "%s": "%s" is not a
valid source \
+                        package name\n' % (filter_file_path, item))

     # Pour into objects.
     opsys = OperatingSystem(main_conf['os'], main_conf['description'], \
@@ -478,12 +477,17 @@


 if __name__ == "__main__":
-    # Check for reprepro
-    if not os.path.exists('/usr/bin/reprepro'):
-        raise IOError, 'Missing dependency: install reprepro and try again.'
+    try:
+        open('/usr/bin/reprepro')
+    except IOError:
+        sys.stderr.write('Missing dependency: install reprepro and
try again\n')

     CONF_DIR_PATH = '/etc/debderiver'

+    try:
+        open('%s/debderiver.yaml' % CONF_DIR_PATH)
+    except IOError:
+        sys.stderr.write('Copy "debderiver.yaml" to "%s" and edit it
to suit your needs\n' % CONF_DIR_PATH)
     conf = parse(CONF_DIR_PATH)
     rr = Reprepro(conf)
     rr.configure()


I tried to follow this guide. [2, 3]

Maybe we should make MAIN_CONF_FILE_NAME global to have a chance to
call it in checks. What do you think?
(MAIN_CONF_FILE_NAME = 'debderiver.yaml')

Are there any other checks that need to be done? What should I do next?

[1] http://pastebin.com/raw.php?i=rN9Rj8uN
[2] http://www.gnu.org/prep/standards/standards.html#Errors
[3] http://www.gnu.org/prep/standards/standards.html#Quote-Characters

Cheers



reply via email to

[Prev in Thread] Current Thread [Next in Thread]