summaryrefslogtreecommitdiff
path: root/portato/helper.py
diff options
context:
space:
mode:
Diffstat (limited to 'portato/helper.py')
-rw-r--r--portato/helper.py60
1 files changed, 60 insertions, 0 deletions
diff --git a/portato/helper.py b/portato/helper.py
new file mode 100644
index 0000000..2a492cc
--- /dev/null
+++ b/portato/helper.py
@@ -0,0 +1,60 @@
+# -*- coding: utf-8 -*-
+#
+# File: portato/helper.py
+# This file is part of the Portato-Project, a graphical portage-frontend.
+#
+# Copyright (C) 2006 René 'Necoro' Neumann
+# This is free software. You may redistribute copies of it under the terms of
+# the GNU General Public License version 2.
+# There is NO WARRANTY, to the extent permitted by law.
+#
+# Written by René 'Necoro' Neumann <necoro@necoro.net> et.al.
+
+import traceback, os.path
+
+DEBUG = True
+
+def set_debug (d):
+ """Sets the global DEBUG variable. Do not set it by your own - always use this function.
+
+ @param d: True to enable debugging; False otherwise
+ @type d: boolean"""
+
+ global DEBUG
+ DEBUG = d
+
+def debug(*args, **kwargs):
+ """Prints a debug message including filename and lineno.
+ A variable number of positional arguments are allowed.
+
+ If debug(obj0, obj1, obj2) is called, the text part of the output
+ looks like the output from print obj0, obj1, obj2.
+
+ If you pass the optional keyword-argument "name", it is used for the function-name instead of the original one."""
+
+
+ if not DEBUG : return
+
+ stack = traceback.extract_stack()
+ a, b, c, d = stack[-2]
+ a = os.path.basename(a)
+ out = []
+ for obj in args:
+ out.append(str(obj))
+ text = ' '.join(out)
+ if "name" in kwargs:
+ text = 'In %s (%s:%s): %s' % (kwargs["name"], a, b, text)
+ else:
+ text = 'In %s (%s:%s): %s' % (c, a, b, text)
+
+ text = "***DEBUG*** %s ***DEBUG***" % text
+
+ print text
+
+def am_i_root ():
+ """Returns True if the current user is root, False otherwise.
+ @rtype: boolean"""
+ if os.getuid() == 0:
+ return True
+ else:
+ return False