mirror of
				https://git.launchpad.net/ubuntu-dev-tools
				synced 2025-11-04 07:54:03 +00:00 
			
		
		
		
	wrap-and-sort: Add option to use on individual file (LP: #699696).
This commit is contained in:
		
							parent
							
								
									ce34dff75f
								
							
						
					
					
						commit
						bc3e647fc3
					
				
							
								
								
									
										5
									
								
								debian/changelog
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								debian/changelog
									
									
									
									
										vendored
									
									
								
							@ -10,7 +10,10 @@ ubuntu-dev-tools (0.114) UNRELEASED; urgency=low
 | 
			
		||||
    - purge the errno utility per request of the ubuntu-dev-tools
 | 
			
		||||
      maintainer;  errno now provided by the 'errno' package; (LP: #666540)
 | 
			
		||||
 | 
			
		||||
 -- Dustin Kirkland <kirkland@ubuntu.com>  Mon, 24 Jan 2011 00:40:03 -0600
 | 
			
		||||
  [ Benjamin Drung ]
 | 
			
		||||
  * wrap-and-sort: Add option to use on individual file (LP: #699696).
 | 
			
		||||
 | 
			
		||||
 -- Benjamin Drung <bdrung@debian.org>  Tue, 25 Jan 2011 21:52:55 +0100
 | 
			
		||||
 | 
			
		||||
ubuntu-dev-tools (0.113) unstable; urgency=low
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -27,8 +27,8 @@ control files and all .install files. Beside that \fBwrap\-and\-sort\fP removes
 | 
			
		||||
trailing spaces in these files.
 | 
			
		||||
.PP
 | 
			
		||||
This script should be run in the root of a Debian package tree. It searches for
 | 
			
		||||
debian/control, debian/control.in, debian/copyright, debian/copyright.in,
 | 
			
		||||
and debian/*.install.
 | 
			
		||||
control, control.in, copyright, copyright.in, install, and *.install in the
 | 
			
		||||
debian directory.
 | 
			
		||||
 | 
			
		||||
.SH OPTIONS
 | 
			
		||||
.TP
 | 
			
		||||
@ -59,6 +59,11 @@ do not remove trailing whitespaces
 | 
			
		||||
\fB\-d \fIPATH\fR, \fB\-\-debian\-directory\fR=\fIPATH\fR
 | 
			
		||||
location of the \fIdebian\fR directory (default: \fB./debian\fR)
 | 
			
		||||
.TP
 | 
			
		||||
\fB\-f\fI FILE\fR, \fB\-\-file\fR=\fIFILE\fR
 | 
			
		||||
Wrap and sort only the specified file.
 | 
			
		||||
You can specify this parameter multiple times.
 | 
			
		||||
All supported files will be processed if no files are specified.
 | 
			
		||||
.TP
 | 
			
		||||
\fB\-v\fR, \fB\-\-verbose\fR
 | 
			
		||||
print all files that are touched
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
#!/usr/bin/python
 | 
			
		||||
#
 | 
			
		||||
# Copyright (C) 2010, Benjamin Drung <bdrung@ubuntu.com>,
 | 
			
		||||
# Copyright (C) 2010-2011, Benjamin Drung <bdrung@ubuntu.com>
 | 
			
		||||
#               2010, Stefano Rivera <stefanor@ubuntu.com>
 | 
			
		||||
#
 | 
			
		||||
# Permission to use, copy, modify, and/or distribute this software for any
 | 
			
		||||
@ -19,6 +19,7 @@ import glob
 | 
			
		||||
import optparse
 | 
			
		||||
import os
 | 
			
		||||
import os.path
 | 
			
		||||
import re
 | 
			
		||||
import sys
 | 
			
		||||
 | 
			
		||||
from ubuntutools.control import Control
 | 
			
		||||
@ -37,6 +38,15 @@ CONTROL_LIST_FIELDS = (
 | 
			
		||||
    "Xb-Npp-MimeType",
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
SUPPORTED_FILES = (
 | 
			
		||||
    "control",
 | 
			
		||||
    "control.in",
 | 
			
		||||
    "copyright",
 | 
			
		||||
    "copyright.in",
 | 
			
		||||
    "install",
 | 
			
		||||
    "*.install",
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
class WrapAndSortControl(Control):
 | 
			
		||||
    def wrap_and_sort(self, wrap_always, short_indent, sort_paragraphs,
 | 
			
		||||
                      keep_first):
 | 
			
		||||
@ -123,10 +133,7 @@ def sort_list(unsorted_list):
 | 
			
		||||
    return sorted(normal) + sorted(param)
 | 
			
		||||
 | 
			
		||||
def wrap_and_sort(options):
 | 
			
		||||
    debdir = lambda x: os.path.join(options.debian_directory, x)
 | 
			
		||||
 | 
			
		||||
    possible_control_files = [debdir("control"), debdir("control.in")]
 | 
			
		||||
    control_files = [f for f in possible_control_files if os.path.isfile(f)]
 | 
			
		||||
    control_files = [f for f in options.files if re.search("/control[^/]*$", f)]
 | 
			
		||||
    for control_file in control_files:
 | 
			
		||||
        if options.verbose:
 | 
			
		||||
            print control_file
 | 
			
		||||
@ -137,23 +144,28 @@ def wrap_and_sort(options):
 | 
			
		||||
                              options.sort_binary_packages, options.keep_first)
 | 
			
		||||
        control.save()
 | 
			
		||||
 | 
			
		||||
    possible_copyright_files = [debdir("copyright"), debdir("copyright.in")]
 | 
			
		||||
    copyright_files = [f for f in possible_copyright_files if os.path.isfile(f)]
 | 
			
		||||
    copyright_files = [f for f in options.files
 | 
			
		||||
                       if re.search("/copyright[^/]*$", f)]
 | 
			
		||||
    for copyright_file in copyright_files:
 | 
			
		||||
        if options.verbose:
 | 
			
		||||
            print copyright_file
 | 
			
		||||
        remove_trailing_whitespaces(copyright_file)
 | 
			
		||||
 | 
			
		||||
    install_files = sorted(glob.glob(debdir("*.install")))
 | 
			
		||||
    if os.path.isfile(debdir("install")):
 | 
			
		||||
        install_files.insert(0, debdir("install"))
 | 
			
		||||
    for install_file in install_files:
 | 
			
		||||
    install_files = [f for f in options.files if re.search("install$", f)]
 | 
			
		||||
    for install_file in sorted(install_files):
 | 
			
		||||
        if options.verbose:
 | 
			
		||||
            print install_file
 | 
			
		||||
        install = Install(install_file)
 | 
			
		||||
        install.sort()
 | 
			
		||||
        install.save()
 | 
			
		||||
 | 
			
		||||
def get_files(debian_directory):
 | 
			
		||||
    """Returns a list of files that should be wrapped and sorted."""
 | 
			
		||||
    files = []
 | 
			
		||||
    for supported_files in SUPPORTED_FILES:
 | 
			
		||||
        files.extend(glob.glob(os.path.join(debian_directory, supported_files)))
 | 
			
		||||
    return files
 | 
			
		||||
 | 
			
		||||
def main():
 | 
			
		||||
    script_name = os.path.basename(sys.argv[0])
 | 
			
		||||
    usage = "%s [options]" % (script_name)
 | 
			
		||||
@ -182,7 +194,11 @@ def main():
 | 
			
		||||
    parser.add_option("-d", "--debian-directory", dest="debian_directory",
 | 
			
		||||
                      help="location of the 'debian' directory (default: "
 | 
			
		||||
                           "./debian)", metavar="PATH", default="debian")
 | 
			
		||||
    parser.add_option("-v", "--verbose", help="print more information",
 | 
			
		||||
    parser.add_option("-f", "--file", metavar="FILE",
 | 
			
		||||
                      dest="files", action="append", default=list(),
 | 
			
		||||
                      help="Wrap and sort only the specified file.")
 | 
			
		||||
    parser.add_option("-v", "--verbose",
 | 
			
		||||
                      help="print all files that are touched",
 | 
			
		||||
                      dest="verbose", action="store_true", default=False)
 | 
			
		||||
 | 
			
		||||
    (options, args) = parser.parse_args()
 | 
			
		||||
@ -195,6 +211,13 @@ def main():
 | 
			
		||||
        parser.error('Debian directory not found, expecting "%s".' % \
 | 
			
		||||
                     options.debian_directory)
 | 
			
		||||
 | 
			
		||||
    not_found = [f for f in options.files if not os.path.isfile(f)]
 | 
			
		||||
    if not_found:
 | 
			
		||||
        parser.error('Specified files not found: %s' % ", ".join(not_found))
 | 
			
		||||
 | 
			
		||||
    if not options.files:
 | 
			
		||||
        options.files = get_files(options.debian_directory)
 | 
			
		||||
 | 
			
		||||
    wrap_and_sort(options)
 | 
			
		||||
 | 
			
		||||
if __name__ == "__main__":
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user