Enable BytesWarnings.
[portage.git] / bin / fixpackages
index 11cc4947771172361aa91a7092d9888ffc465d0f..3ec28321fbc581f609b54a59e2fe5156b5aff6a5 100755 (executable)
@@ -1,20 +1,52 @@
-#!/usr/bin/python
-# Copyright 1999-2006 Gentoo Foundation
+#!/usr/bin/python -bb
+# Copyright 1999-2014 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Id: /var/cvsroot/gentoo-src/portage/bin/fixpackages,v 1.6 2004/10/04 13:56:50 vapier Exp $
 
-import os,sys
-os.environ["PORTAGE_CALLER"]="fixpackages"
-sys.path = ["/usr/lib/portage/pym"]+sys.path
+from __future__ import print_function
 
-import portage
+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
 
-portage.global_updates(mysettings, mytrees, mtimedb["updates"])
+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
+print()
+print("Done.")
+print()