ubuntu-dev-tools/update-maintainer

75 lines
2.8 KiB
Plaintext
Raw Permalink Normal View History

2019-09-04 17:26:53 -03:00
#!/usr/bin/python3
2010-12-03 00:06:43 +01:00
#
# Copyright (C) 2010, Benjamin Drung <bdrung@ubuntu.com>
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
import optparse
import os
import sys
from ubuntutools.update_maintainer import (update_maintainer,
restore_maintainer,
MaintainerUpdateException)
def find_debian_dir(depth=6):
"""Scans up the directory hierarchy looking for a ./debian dir
:param int depth: Levels to scan up the directory tree.
:rtype: str
:returns: a path to an existing debian/ directory, or None
"""
for path in ['../'*n or './' for n in list(range(0, depth+1))]:
debian_path = '{}debian'.format(path)
if os.path.exists(os.path.join(debian_path, 'control')) \
and os.path.exists(os.path.join(debian_path, 'changelog')):
return debian_path
return None
def main():
script_name = os.path.basename(sys.argv[0])
usage = "%s [options]" % (script_name)
epilog = "See %s(1) for more info." % (script_name)
parser = optparse.OptionParser(usage=usage, epilog=epilog)
parser.add_option("-d", "--debian-directory", dest="debian_directory",
help="location of the 'debian' directory (default: "
"%default).", metavar="PATH",
default=find_debian_dir() or './debian')
parser.add_option("-r", "--restore",
help="Restore the original maintainer",
action='store_true', default=False)
parser.add_option("-q", "--quiet", help="print no informational messages",
dest="quiet", action="store_true", default=False)
(options, args) = parser.parse_args()
if len(args) != 0:
2019-09-04 17:26:53 -03:00
print("%s: Error: Unsupported additional parameters specified: %s"
% (script_name, ", ".join(args)), file=sys.stderr)
sys.exit(1)
if not options.restore:
operation = update_maintainer
else:
operation = restore_maintainer
try:
operation(options.debian_directory, not options.quiet)
except MaintainerUpdateException:
sys.exit(1)
2017-05-01 00:20:03 +02:00
if __name__ == "__main__":
main()