2019-09-04 17:26:53 -03:00
|
|
|
#!/usr/bin/python3
|
2010-12-03 00:06:43 +01:00
|
|
|
#
|
2010-12-24 13:38:59 +01:00
|
|
|
# Copyright (C) 2010, Benjamin Drung <bdrung@ubuntu.com>
|
2008-08-11 20:06:35 +02:00
|
|
|
#
|
2010-12-24 13:38:59 +01:00
|
|
|
# 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.
|
2009-05-31 21:45:35 +01:00
|
|
|
#
|
2010-12-24 13:38:59 +01:00
|
|
|
# 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.
|
2009-05-31 21:45:35 +01:00
|
|
|
|
2023-01-30 23:10:31 +01:00
|
|
|
# pylint: disable=invalid-name
|
|
|
|
# pylint: enable=invalid-name
|
|
|
|
|
2023-01-31 13:33:18 +01:00
|
|
|
import argparse
|
2009-05-31 21:45:35 +01:00
|
|
|
import os
|
|
|
|
import sys
|
2010-09-19 20:24:27 +02:00
|
|
|
|
2023-01-30 19:45:36 +01:00
|
|
|
from ubuntutools.update_maintainer import (
|
|
|
|
MaintainerUpdateException,
|
2023-01-30 21:28:47 +01:00
|
|
|
restore_maintainer,
|
|
|
|
update_maintainer,
|
2023-01-30 19:45:36 +01:00
|
|
|
)
|
2012-05-06 19:42:39 +02:00
|
|
|
|
2020-06-26 20:47:05 +02:00
|
|
|
|
2020-06-25 17:36:25 -07:00
|
|
|
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
|
|
|
|
"""
|
2023-01-30 19:45:36 +01:00
|
|
|
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")
|
|
|
|
):
|
2020-06-25 17:36:25 -07:00
|
|
|
return debian_path
|
|
|
|
return None
|
2010-12-24 13:38:59 +01:00
|
|
|
|
2020-06-26 20:47:05 +02:00
|
|
|
|
2010-12-24 13:38:59 +01:00
|
|
|
def main():
|
|
|
|
script_name = os.path.basename(sys.argv[0])
|
|
|
|
epilog = "See %s(1) for more info." % (script_name)
|
2023-01-31 13:33:18 +01:00
|
|
|
parser = argparse.ArgumentParser(epilog=epilog)
|
|
|
|
parser.add_argument(
|
2023-01-30 19:45:36 +01:00
|
|
|
"-d",
|
|
|
|
"--debian-directory",
|
|
|
|
dest="debian_directory",
|
2023-01-31 13:33:18 +01:00
|
|
|
help="location of the 'debian' directory (default: %(default)s).",
|
2023-01-30 19:45:36 +01:00
|
|
|
metavar="PATH",
|
|
|
|
default=find_debian_dir() or "./debian",
|
|
|
|
)
|
2023-01-31 13:33:18 +01:00
|
|
|
parser.add_argument(
|
|
|
|
"-r", "--restore", help="Restore the original maintainer", action="store_true"
|
2023-01-30 19:45:36 +01:00
|
|
|
)
|
2023-01-31 13:33:18 +01:00
|
|
|
parser.add_argument(
|
|
|
|
"-q", "--quiet", help="print no informational messages", dest="quiet", action="store_true"
|
2023-01-30 19:45:36 +01:00
|
|
|
)
|
2023-01-31 13:33:18 +01:00
|
|
|
args = parser.parse_args()
|
2010-12-24 13:38:59 +01:00
|
|
|
|
2023-01-31 13:33:18 +01:00
|
|
|
if not args.restore:
|
2012-05-06 19:42:39 +02:00
|
|
|
operation = update_maintainer
|
|
|
|
else:
|
|
|
|
operation = restore_maintainer
|
|
|
|
|
|
|
|
try:
|
2023-01-31 13:33:18 +01:00
|
|
|
operation(args.debian_directory, not args.quiet)
|
2012-05-06 19:42:39 +02:00
|
|
|
except MaintainerUpdateException:
|
|
|
|
sys.exit(1)
|
2010-07-30 03:51:33 +02:00
|
|
|
|
2017-05-01 00:20:03 +02:00
|
|
|
|
2010-12-24 13:38:59 +01:00
|
|
|
if __name__ == "__main__":
|
|
|
|
main()
|