| #!/usr/bin/python -b |
| # Copyright 1999-2014 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| |
| from __future__ import print_function |
| |
| import os |
| import sys |
| |
| from os import path as osp |
| pym_path = osp.join(osp.dirname(osp.dirname(osp.realpath(__file__))), "pym") |
| sys.path.insert(0, pym_path) |
| import portage |
| portage._internal_caller = True |
| from portage import os |
| from portage.output import EOutput |
| from portage.util._argparse import ArgumentParser |
| from textwrap import wrap |
| from portage._global_updates import _global_updates |
| mysettings = portage.settings |
| mytrees = portage.db |
| mtimedb = portage.mtimedb |
| |
| description = """The fixpackages program performs package move updates on |
| configuration files, installed packages, and binary packages.""" |
| description = " ".join(description.split()) |
| |
| parser = ArgumentParser(description=description) |
| parser.parse_args() |
| |
| if mysettings['ROOT'] != "/": |
| out = EOutput() |
| msg = "The fixpackages program is not intended for use with " + \ |
| "ROOT != \"/\". Instead use `emaint --fix movebin` and/or " + \ |
| "`emaint --fix moveinst." |
| for line in wrap(msg, 72): |
| out.eerror(line) |
| sys.exit(1) |
| |
| try: |
| os.nice(int(mysettings.get("PORTAGE_NICENESS", "0"))) |
| except (OSError, ValueError) as e: |
| portage.writemsg("!!! Failed to change nice value to '%s'\n" % \ |
| mysettings["PORTAGE_NICENESS"]) |
| portage.writemsg("!!! %s\n" % str(e)) |
| del e |
| |
| _global_updates(mytrees, mtimedb["updates"], if_mtime_changed=False) |
| |
| print() |
| print("Done.") |
| print() |