ubuntu-dev-tools/update-maintainer
Benjamin Drung 3354b526b5 style: Format Python code with black
```
PYTHON_SCRIPTS=$(grep -l -r '^#! */usr/bin/python3$' .)
black -C -l 99 . $PYTHON_SCRIPTS
```

Signed-off-by: Benjamin Drung <benjamin.drung@canonical.com>
2023-01-30 19:45:36 +01:00

95 lines
2.8 KiB
Python
Executable File

#!/usr/bin/python3
#
# 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:
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)
if __name__ == "__main__":
main()