1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
#
# File: geneticone/helper.py
# This file is part of the Genetic/One-Project, a graphical portage-frontend.
#
# Copyright (C) 2006 Necoro d.M.
# 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 Necoro d.M. <necoro@necoro.net> et.al.
import traceback, textwrap, os.path
def debug(*args, **kwargs):
"""Prints a debug message including filename and lineno.
A variable number of positional arguments are allowed.
If lineno(obj0, obj1, obj2) is called, the text part of the output
looks like the output from print obj0, obj1, obj2 .
The optional keyword "wrap" causes the message to be line-wrapped. The
argument to "wrap" should be "1" or "True". "name" is another optional
keyword parameter.
(This function is adapted from Edward Jones as published under: http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/279155)"""
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)
#if wrap:
# text = textwrap.fill(text)
text = "***DEBUG*** %s ***DEBUG***" % text
print text
def am_i_root ():
"""Returns True if the current user is root, False otherwise."""
if os.getuid() == 0:
return True
else:
return False
|