ubuntu-dev-tools/update-maintainer
Benjamin Drung aa556af89d Use f-strings
pylint complains about C0209: Formatting a regular string which could be
a f-string (consider-using-f-string)

Signed-off-by: Benjamin Drung <benjamin.drung@canonical.com>
2023-01-31 19:32:58 +01:00

80 lines
2.5 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.
# pylint: disable=invalid-name
# pylint: enable=invalid-name
import argparse
import os
import sys
from ubuntutools.update_maintainer import (
MaintainerUpdateException,
restore_maintainer,
update_maintainer,
)
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 = f"{path}debian"
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])
epilog = f"See {script_name}(1) for more info."
parser = argparse.ArgumentParser(epilog=epilog)
parser.add_argument(
"-d",
"--debian-directory",
dest="debian_directory",
help="location of the 'debian' directory (default: %(default)s).",
metavar="PATH",
default=find_debian_dir() or "./debian",
)
parser.add_argument(
"-r", "--restore", help="Restore the original maintainer", action="store_true"
)
parser.add_argument(
"-q", "--quiet", help="print no informational messages", dest="quiet", action="store_true"
)
args = parser.parse_args()
if not args.restore:
operation = update_maintainer
else:
operation = restore_maintainer
try:
operation(args.debian_directory, not args.quiet)
except MaintainerUpdateException:
sys.exit(1)
if __name__ == "__main__":
main()