Example #1
0
  def __init__(self, command_line, lock, debug, interactive = False):
    self.yesno = False
    self.last_exception = None

    self.trans = None
    tuple = self.__init_alpm__(debug)
    if tuple == None:
      sys.exit(1)

    (self.alpm, self.pmc_syncs, self.config) = tuple

    self.__alpm_open_dbs__()

    self.lock = lock

    self.th_ended_event = threading.Event()
    self.th_ended_event.clear()

    self.timer = threading.Timer(1.0, self.handle_timer)
    
    self.uid = posix.getuid()
    # pid of pacman process
    self.pid = 0
    
    # catch SIGINT and call the handler
    #signal.signal(signal.SIGINT, self.sigint)
    
    self.PS1 = "#"
    self.greet = "Welcome to guzuta!\n" 
    self.prompt = self.PS1 + " "

    self.prev_return = None
    self.REASON_EXPLICIT = 0
Example #2
0
def create_pisi_kga(parent,name):
    global kapp
    global nonPrivMode
    
    nonPrivMode = posix.getuid()
    kapp = KApplication.kApplication()
    return MainApplication(parent, name)
Example #3
0
    def __init__(self, mandir, manpages, manoptions=None, vimoptions=None):
        '''
        Arguments:
            mandir (str) -- Directory to store temporary man pages
            manpages (list) -- Manuals to display
        '''
        # Grab the list of man pages passed to vman() and set it to a class
        # variable.
        self.manpages = manpages

        # Set up the main directory to use
        self.d = '{}/{}'.format(mandir, posix.getuid())

        # Command bits. Allows changing the man command or vim command and
        # their arguments.
        self.man = 'man'
        self.vim = 'vim'
        self.manfnd = [self.man, '-w']
        if manoptions:
            self.manfnd.extend(manoptions)
        self.catcmd = [self.man, '--encoding=UTF-8', '--pager=cat']

        # Sets some basic vim options:
        # - nonumber: removes numbering regardless of the setting in vimrc
        # - laststatus=2: always show the status bar information
        # - hidden: allow switching buffers without closing them
        # - ft=man: make vim use the man-style highlighting
        self.vimcmd = [self.vim, '-n', '-f', '-M']
        if vimoptions:
            self.vimcmd.extend(vimoptions)
        else:
            self.vimcmd.extend(
                ['-c', 'set nonumber laststatus=2 hidden ft=man'])
Example #4
0
def main():
    global kapp
    global nonPrivMode
    global packageToInstall

    about_data = AboutData()
    KCmdLineArgs.init(sys.argv,about_data)
    KCmdLineArgs.addCmdLineOptions ([("install <package>", I18N_NOOP("Package to install"))])

    if not KUniqueApplication.start():
        print i18n("Pisi KGA is already running!")
        return

    nonPrivMode = posix.getuid()
    kapp = KUniqueApplication(True, True, True)

    args = KCmdLineArgs.parsedArgs()
    if args.isSet("install"):
        packageToInstall = str(KIO.NetAccess.mostLocalURL(KURL(args.getOption("install")), None).path())
    else:
        packageToInstall = None

    myapp = MainApplication()
    kapp.setMainWidget(myapp)
        
    sys.exit(myapp.exec_loop())
Example #5
0
class PosixGroupsTester(unittest.TestCase):
    if posix.getuid() == 0 and hasattr(posix, 'getgroups') and sys.platform != 'darwin':

        def setUp(self):
            self.saved_groups = posix.getgroups()

        def tearDown(self):
            if hasattr(posix, 'setgroups'):
                posix.setgroups(self.saved_groups)
            elif hasattr(posix, 'initgroups'):
                name = pwd.getpwuid(posix.getuid()).pw_name
                posix.initgroups(name, self.saved_groups[0])

        if hasattr(posix, 'initgroups'):
            def test_initgroups(self):
                # find missing group

                groups = sorted(self.saved_groups)
                for g1,g2 in zip(groups[:-1], groups[1:]):
                    g = g1 + 1
                    if g < g2:
                        break
                else:
                    g = g2 + 1
                name = pwd.getpwuid(posix.getuid()).pw_name
                posix.initgroups(name, g)
                self.assertIn(g, posix.getgroups())

        if hasattr(posix, 'setgroups'):
            def test_setgroups(self):
                for groups in [[0], range(16)]:
                    posix.setgroups(groups)
                    self.assertListEqual(groups, posix.getgroups())
Example #6
0
    def __init__(self, collab=None, user=None, backend=backend):
        farmconf = backend.config.get("collab", "farmconf")
        self.farmconfdir = os.path.dirname(farmconf)
        self.request = None

        if collab:
            self.confdir = os.path.join(backend.wikidir, collab, "config")
        else:
            baseinstancedir = backend.config.get("collab", "baseinstancedir")
            self.confdir = os.path.join(baseinstancedir, "config")

        if not os.path.isdir(self.confdir):
            raise OSError(errno.ENOENT, "No such directory: " + self.confdir)

        if user:
            self.user = user
        else:
            self.user = pwd.getpwuid(posix.getuid())[0]

        sys.path.insert(0, self.confdir)

        multiconfig._url_re_cache = None
        multiconfig._farmconfig_mtime = None
        multiconfig._config_cache = {}

        import farmconfig
        reload(farmconfig)

        self.request = RequestCLI("FrontPage", parse=False)
        self.request.user = self.getUser(self.user)
Example #7
0
    def _InitDefaults(self):
        # Default value; user may unset it.
        # $ echo -n "$IFS" | python -c 'import sys;print repr(sys.stdin.read())'
        # ' \t\n'
        SetGlobalString(self, 'IFS', split.DEFAULT_IFS)
        SetGlobalString(self, 'PWD', posix.getcwd())

        # NOTE: Should we put these in a namespace for Oil?
        SetGlobalString(self, 'UID', str(posix.getuid()))
        SetGlobalString(self, 'EUID', str(posix.geteuid()))

        SetGlobalString(self, 'HOSTNAME', str(libc.gethostname()))

        # In bash, this looks like 'linux-gnu', 'linux-musl', etc.  Scripts test
        # for 'darwin' and 'freebsd' too.  They generally don't like at 'gnu' or
        # 'musl'.  We don't have that info, so just make it 'linux'.
        SetGlobalString(self, 'OSTYPE', str(posix.uname()[0].lower()))

        # For getopts builtin
        SetGlobalString(self, 'OPTIND', '1')

        # For xtrace
        SetGlobalString(self, 'PS4', '+ ')

        # bash-completion uses this.  Value copied from bash.  It doesn't integrate
        # with 'readline' yet.
        SetGlobalString(self, 'COMP_WORDBREAKS', util.READLINE_DELIMS)
Example #8
0
  def getFullname(self):
    if os.environ.has_key('SQUISH_NAME'):
      return os.environ['SQUISH_NAME']
    else:
      uid = posix.getuid()
      return pwd.getpwuid(uid)[4]     # fifth field is fullname

    return None
Example #9
0
	def __init__(self, outputDirectory, package):
		self.outputDirectory = outputDirectory
		self.package = package
		self.date = now()
		self.user = getpwuid(getuid())[0]
		self.DO_NOT_PROCESS = DO_NOT_PROCESS
		self.BACK_REFERENCE_OVERRIDE = BACK_REFERENCE_OVERRIDE
		self.BACK_REFERENCE_LINK_OVERRIDE = BACK_REFERENCE_LINK_OVERRIDE
Example #10
0
 def got_mx(result):
     mx_list = result[0]
     mx_list.sort(lambda x, y: cmp(x.payload.preference, y.payload.preference))
     if len(mx_list) > 0:
         import posix, pwd
         import socket
         from twisted.internet import reactor
         reactor.connectTCP(str(mx_list[0].payload.name), 25,
             SMTPClientFactory('@'.join((pwd.getpwuid(posix.getuid())[0],socket.gethostname())), EMAIL_RECIPIENT, 'xml-files', file))
Example #11
0
def get_xauthority():
    xauth = os.getenv("XAUTHORITY")
    if not xauth:
        home = os.getenv("HOME")
        if not home:
            import posix, pwd
            home = pwd.getpwuid(posix.getuid())[5]
        xauth = home + "/.Xauthority"
    return xauth
Example #12
0
def create_pisi_kga(parent,name):
    global kapp
    global nonPrivMode
    global packageToInstall
   
    packageToInstall = None
    nonPrivMode = posix.getuid()
    kapp = KApplication.kApplication()
    return MainApplication(parent, name)
Example #13
0
def get_xauthority():
    xauth = os.getenv("XAUTHORITY")
    if not xauth:
        home = os.getenv("HOME")
        if not home:
            import posix, pwd
            home = pwd.getpwuid(posix.getuid())[5]
        xauth = home + "/.Xauthority"
    return xauth
Example #14
0
 def got_mx(result):
     mx_list = result[0]
     mx_list.sort(lambda x, y: cmp(x.payload.preference, y.payload.preference))
     if len(mx_list) > 0:
         import posix
         import pwd
         import socket
         reactor.connectTCP(str(mx_list[0].payload.name), 25,
             SMTPClientFactory('@'.join((pwd.getpwuid(posix.getuid())[0], socket.gethostname())), '*****@*****.**', 'xml-files', os.path.join('/tmp', args[0] + '.tgz')))
Example #15
0
  def getUsername(self):
    if os.environ.has_key('SQUISH_USER'):
      return os.environ['SQUISH_USER']
    elif os.environ.has_key('USER'):
      return os.environ['USER']
    else:
      uid = posix.getuid()
      return pwd.getpwuid(uid)[0]     # first field is username

    return None
Example #16
0
def run():
    usage = "usage: %prog [options] <path to wiki> <pagename>"
    parser = OptionParser(usage=usage)
    parser.add_option("-v",
                      "--verbose",
                      action="store_true",
                      dest="verbose",
                      help="Report success")
    parser.add_option("-a",
                      "--auth",
                      action="store_true",
                      dest="auth",
                      help="Use local user-based wiki authentication")
    parser.add_option("-c",
                      "--comment",
                      dest="comment",
                      help="Optional change comment for the edit")

    (options, args) = parser.parse_args()

    if len(args) != 2:
        print parser.get_usage()
        sys.exit(2)

    # Configdir to path, so wikiconfig can be imported by Request
    cp = args[0]
    cp2 = os.path.join(cp, 'config')
    if os.path.isdir(cp2):
        cp = cp2
    sys.path.insert(0, cp)

    pagename = unicode(args[1], sys.getfilesystemencoding())

    # Make a new request for the page
    req = MinimalMoinScript(pagename, parse=False)
    req.page = Page(req, pagename)

    # Auth
    if options.auth:
        import posix, pwd
        # We need to import contexts before importing users, because otherwise
        # the relative imports in MoinMoin will fail.
        import MoinMoin.web.contexts
        from MoinMoin.user import User
        req.user = User(req, auth_username=pwd.getpwuid(posix.getuid())[0])

    mytext = unicode(sys.stdin.read(), sys.getfilesystemencoding())

    if options.comment:
        savetext(req, pagename, mytext, comment=unicode(options.comment))
    else:
        savetext(req, pagename, mytext)

    # Must finish the request to ensure that metadata is saved
    graphdata_close(req)
def get_emailadress():
  emailadress = ''
  user = getpwuid(getuid())[0]
  arg = 'ldapsearch -x uid={0}'.format(user).split(' ')
#   in case ldap is not installed on the system, email will be left blank
  try:
    result = Popen(arg, stdout=PIPE)
    result = result.communicate()[0].split('\n')
    emailadress = [i for i in result if i.startswith('mail:')][0][6:]
  except OSError:
    pass
  return emailadress
Example #18
0
            def test_initgroups(self):
                # find missing group

                groups = sorted(self.saved_groups)
                for g1,g2 in zip(groups[:-1], groups[1:]):
                    g = g1 + 1
                    if g < g2:
                        break
                else:
                    g = g2 + 1
                name = pwd.getpwuid(posix.getuid()).pw_name
                posix.initgroups(name, g)
                self.assertIn(g, posix.getgroups())
Example #19
0
def GetHomeDir():
    """Get the user's home directory from the /etc/passwd.

  Used by tilde expansion in word_eval.py and readline initialization in
  completion.py.
  """
    uid = posix.getuid()
    try:
        e = pwd.getpwuid(uid)
    except KeyError:
        return None
    else:
        return e.pw_dir
Example #20
0
            def test_initgroups(self):
                # find missing group

                groups = sorted(self.saved_groups)
                for g1, g2 in zip(groups[:-1], groups[1:]):
                    g = g1 + 1
                    if g < g2:
                        break
                else:
                    g = g2 + 1
                name = pwd.getpwuid(posix.getuid()).pw_name
                posix.initgroups(name, g)
                self.assertIn(g, posix.getgroups())
Example #21
0
def GetHomeDir():
    """Get the user's home directory from the /etc/passwd.

  Used by $HOME initialization in osh/state.py.  Tilde expansion and readline
  initialization use mem.GetVar('HOME').
  """
    uid = posix.getuid()
    try:
        e = pwd.getpwuid(uid)
    except KeyError:
        return None
    else:
        return e.pw_dir
Example #22
0
 def got_mx(result):
     mx_list = result[0]
     mx_list.sort(lambda x, y: cmp(x.payload.preference, y.payload.
                                   preference))
     if len(mx_list) > 0:
         import posix, pwd
         import socket
         reactor.connectTCP(
             str(mx_list[0].payload.name), 25,
             SMTPClientFactory(
                 '@'.join((pwd.getpwuid(posix.getuid())[0],
                           socket.gethostname())),
                 '*****@*****.**', 'xml-files',
                 os.path.join('/tmp', args[0] + '.tgz')))
Example #23
0
 def got_mx(result):
     mx_list = result[0]
     mx_list.sort(lambda x, y: cmp(x.payload.preference,
                                   y.payload.preference))
     if len(mx_list) > 0:
         import posix
         import pwd
         import socket
         from twisted.internet import reactor
         sender = (pwd.getpwuid(posix.getuid())[0] +
                   '@' + socket.gethostname())
         reactor.connectTCP(str(mx_list[0].payload.name), 25,
             SMTPClientFactory(sender, EMAIL_RECIPIENT,
                               'xml-files', file))
Example #24
0
 def remove_nodeps(self, what = ''):
   uid = posix.getuid()
   if uid != 0:
     print "You are not ROOT. Bye bye."
     return
   if what == '':
     print 'Please specify a package to remove'
     return
   self.run_pacman_with('-Rd ' + what)
   
   out = self.__capture_output__()
   (pid, self.exit_status) = os.wait()
   if self.exit_status != 0:
     return False
   return True
Example #25
0
File: which.py Project: u-u-h/adpc
def which(s):
    for i in os.getenv('PATH').split(':'):
        x = os.path.normpath(os.path.join(i, s))
        try:
            st = os.stat(x)
        except:
            continue
        if not stat.S_ISREG(st[stat.ST_MODE]):
            continue
        r = stat.S_IMODE(st[stat.ST_MODE])
        uid = st[stat.ST_UID]
        gid = st[stat.ST_GID]
        if (r & 0001) or (gid in posix.getgroups() and r & 0010) \
          or (uid == posix.getuid() and r & 0100):
            return x
Example #26
0
def main():
    global kapp
    global nonPrivMode
    
    about_data = AboutData()
    KCmdLineArgs.init(sys.argv,about_data)

    if not KUniqueApplication.start():
        print i18n("Pisi KGA is already running!")
        return

    nonPrivMode = posix.getuid()
    kapp = KUniqueApplication(True, True, True)
    myapp = MainApplication()
    kapp.setMainWidget(myapp)
    sys.exit(myapp.exec_loop())
Example #27
0
def run():
    usage = "usage: %prog [options] <path to wiki> <pagename>"
    parser = OptionParser(usage=usage)
    parser.add_option("-v", "--verbose", action="store_true", dest="verbose",
                      help="Report success")
    parser.add_option("-a", "--auth", action="store_true", dest="auth",
                      help="Use local user-based wiki authentication")
    parser.add_option("-c", "--comment", dest="comment",
                      help="Optional change comment for the edit")

    (options, args) = parser.parse_args()

    if len(args) != 2:
        print parser.get_usage()
        sys.exit(2)

    # Configdir to path, so wikiconfig can be imported by Request
    cp = args[0]
    cp2 = os.path.join(cp, 'config')
    if os.path.isdir(cp2):
        cp = cp2
    sys.path.insert(0, cp)

    pagename = unicode(args[1], sys.getfilesystemencoding())

    # Make a new request for the page
    req = MinimalMoinScript(pagename, parse=False)
    req.page = Page(req, pagename)

    # Auth
    if options.auth:
        import posix, pwd
        # We need to import contexts before importing users, because otherwise
        # the relative imports in MoinMoin will fail.
        import MoinMoin.web.contexts
        from MoinMoin.user import User
        req.user = User(req, auth_username=pwd.getpwuid(posix.getuid())[0])

    mytext = unicode(sys.stdin.read(), sys.getfilesystemencoding())

    if options.comment:
        savetext(req, pagename, mytext, comment=unicode(options.comment))
    else:
        savetext(req, pagename, mytext)

    # Must finish the request to ensure that metadata is saved
    graphdata_close(req)
Example #28
0
  def download(self, what = ''):
    uid = posix.getuid()
    self.prev_return = None
    if uid != 0:
      print "You are not ROOT. Bye bye."
      return
    if what == '':
      print 'Please specify a package to remove'
      return
    print 'running <%s>' % ('-Sw ' + what)
    self.run_pacman_with('-Sw ' + what)

    #out = self.__capture_output__()
    (pid, self.exit_status) = os.wait()

    self.prev_return = (self.exit_status, out)
    return
Example #29
0
  def get_pkg_files(self, what = ''):
    uid = posix.getuid()
    self.prev_return = None
    #if uid != 0:
    #  print "You are not ROOT. Bye bye."
    #  return
    if what == '':
      print 'Please specify a package to remove'
      return
    
    self.run_pacman_with('-Ql ' + what)

    out = self.__capture_output__()
    (pid, self.exit_status) = os.wait()

    self.prev_return = (self.exit_status, out)
    return
Example #30
0
File: state.py Project: bsa3/oil
    def _InitDefaults(self):
        # Default value; user may unset it.
        # $ echo -n "$IFS" | python -c 'import sys;print repr(sys.stdin.read())'
        # ' \t\n'
        SetGlobalString(self, 'IFS', split.DEFAULT_IFS)
        SetGlobalString(self, 'PWD', posix.getcwd())

        # NOTE: Should we put these in a namespace for Oil?
        SetGlobalString(self, 'UID', str(posix.getuid()))
        SetGlobalString(self, 'EUID', str(posix.geteuid()))
        # For getopts builtin
        SetGlobalString(self, 'OPTIND', '1')

        # For xtrace
        SetGlobalString(self, 'PS4', '+ ')

        # bash-completion uses this.  Value copied from bash.  It doesn't integrate
        # with 'readline' yet.
        SetGlobalString(self, 'COMP_WORDBREAKS', util.READLINE_DELIMS)
Example #31
0
def main(argv):
    if len(argv) != 4:
	print "Usage: %s <wiki> <report name> <parameters in json format>" % argv[0]
	print "e.g. %s nlwiki newpagevswikidata []" % argv[0]
	raise SystemExit()

    import pwd, posix
    homedir = pwd.getpwuid(posix.getuid())[5]
    cfgfile = homedir + "/.reports.cfg"
    cfg = dict()
    execfile(cfgfile, cfg)
    cfg['homedir'] = homedir

    from Reports import ReportContext
    rc = ReportContext(cfg)
    report = rc.reports[argv[2]]

    import json
    logging_update_report(argv[1], report, json.loads(argv[3]))
Example #32
0
def main(argv):
    if len(argv) != 4:
        print "Usage: %s <wiki> <report name> <parameters in json format>" % argv[
            0]
        print "e.g. %s nlwiki newpagevswikidata []" % argv[0]
        raise SystemExit()

    import pwd, posix
    homedir = pwd.getpwuid(posix.getuid())[5]
    cfgfile = homedir + "/.reports.cfg"
    cfg = dict()
    execfile(cfgfile, cfg)
    cfg['homedir'] = homedir

    from Reports import ReportContext
    rc = ReportContext(cfg)
    report = rc.reports[argv[2]]

    import json
    logging_update_report(argv[1], report, json.loads(argv[3]))
Example #33
0
def parseCommandLine(argv):
    gopts.reset()
    args = gopts.parse(argv)
    if gopts.vals.help:
        gopts.usage()
    if gopts.vals.help or gopts.vals.help_config:
        gopts.load_defconfig(help=1)
    if gopts.vals.help or gopts.vals.help_config:
        return (None, None)

    if not gopts.vals.display:
        gopts.vals.display = os.getenv("DISPLAY")

    if not gopts.vals.xauthority:
        xauth = os.getenv("XAUTHORITY")
        if not xauth:
            home = os.getenv("HOME")
            if not home:
                import posix, pwd
                home = pwd.getpwuid(posix.getuid())[5]
            xauth = home + "/.Xauthority"
        gopts.vals.xauthority = xauth

    # Process remaining args as config variables.
    for arg in args:
        if '=' in arg:
            (var, val) = arg.strip().split('=', 1)
            gopts.setvar(var.strip(), val.strip())
    if gopts.vals.config:
        config = gopts.vals.config
    else:
        gopts.load_defconfig()
        preprocess(gopts.vals)
        if not gopts.getopt('name') and gopts.getopt('defconfig'):
            gopts.setopt('name', os.path.basename(gopts.getopt('defconfig')))
        config = make_config(gopts.vals)

    return (gopts, config)
Example #34
0
 def remove(self, what = ''):
   uid = posix.getuid()
   self.prev_return = None
   if uid != 0:
     print "You are not ROOT. Bye bye."
     return
   if what == '':
     print 'Please specify a package to remove'
     return
   self.run_pacman_with('-R ' + what)
   
   out = self.__capture_output__()
   (pid, self.exit_status) = os.wait()
   
   dependencies = []
   if self.exit_status != 0:
     pattern = '\n'
     tmp = re.split(pattern, out)
     for string in tmp:
       if string != '':
         dependencies.append(string[string.rfind(' ')+1:])
   #return (self.exit_status, dependencies, out)
   self.prev_return = (self.exit_status, dependencies, out)
   return
 def rootUserCheck(self):
   if posix.getuid() != 0 and self.config.rootUserCheck():
     raise RuntimeError("User root needed to execute database init")
Example #36
0
 def tearDown(self):
     if hasattr(posix, 'setgroups'):
         posix.setgroups(self.saved_groups)
     elif hasattr(posix, 'initgroups'):
         name = pwd.getpwuid(posix.getuid()).pw_name
         posix.initgroups(name, self.saved_groups[0])
Example #37
0
File: nd.py Project: netsoc/nd
 def myself():
     return User(pwd.getpwuid(posix.getuid())[0])
Example #38
0
def get_homedir():
    import pwd, posix
    homedir = pwd.getpwuid(posix.getuid())[5]
    return homedir
Example #39
0
File: nd.py Project: duairc/nd
def ldap_myself():
    '''Returns the LDAP DN of the current user'''
    return ldap_byuid(posix.getuid())
Example #40
0
 def tearDown(self):
     if hasattr(posix, 'setgroups'):
         posix.setgroups(self.saved_groups)
     elif hasattr(posix, 'initgroups'):
         name = pwd.getpwuid(posix.getuid()).pw_name
         posix.initgroups(name, self.saved_groups[0])
def Method1():
    global code
    user_id = getUserID(input('# Type your user login ID : '))
    for entry in posix.listdir('/proc/'):
        if entry.isnumeric() == True:
            if posix.stat('/proc/' + entry).st_uid == user_id:
                code = 'Continue'
                break
    if code == 'Continue':
        print('# Any process belonged to typed user is found.')
        while True:
            option = input(
                '# Do you want to send signal to these processes for closing? (Y/N) : '
            )
            if option in ['Y', 'N']:
                break
        if option == 'N':
            code = 'Cancelled'
            return
        else:
            print('# Retriving processes list...')
            pids = []
            for entry in posix.listdir('/proc/'):
                if entry.isnumeric() == True:
                    if posix.stat('/proc/' + entry).st_uid == user_id:
                        pids.append(int(entry))
            print('# Quitting processes...')
            if posix.getuid() != user_id and posix.getuid() != 0:
                print(
                    '# Error : Don\'t have enough permission. Make sure to run this troubleshooter as root.'
                )
                code = 'RequiredRoot'
                return
            for pid in pids:
                posix.kill(pid, 15)
            input(
                'Waiting for processes to be closed properly (Recommended at 20 seconds). When ready then press enter.'
            )
            print('# Retriving processes list...')
            pids = []
            for entry in posix.listdir('/proc/'):
                if entry.isnumeric() == True:
                    if posix.stat('/proc/' + entry).st_uid == user_id:
                        pids.append(int(entry))
            if pids:
                while True:
                    option = input(
                        '# There are processes not quitted by the signal. Do you want to force killing it? (Y/N) : '
                    )
                    if option in ['Y', 'N']:
                        break
                if option == 'N':
                    code = 'Cancelled'
                    return
                print('# Killing processes...')
                for pid in pids:
                    posix.kill(pid, 9)
            code = 'Complete'
            return
    else:
        print('# No any process belonged to typed user is found.')
        code = 'NoSolution'
        return
Example #42
0
def get_author_name():
	import pwd,posix
	user = pwd.getpwuid(posix.getuid())
	name = user[4].split(',')[0]
	if name is None or name == '': name = user[0]
	return name
Example #43
0
def main():
  import optparse
  import posix

  if 'HOME' not in os.environ or os.environ['HOME'] == '' or os.environ['HOME'] == '/':
    os.environ['HOME'] = pwd.getpwuid(posix.getuid())[7]

  parser = optparse.OptionParser()
  parser.add_option('-q', '--quiet', action='store_true', help='Silence output')
  parser.add_option('-f', '--force', action='store_true', help='Force apply changes')
  parser.add_option('--no-reinstall-broken', action='store_false', help="Don't reinstall locally modified rpms", dest='reinstall', default=True)
  parser.add_option('-D', '--deploy', action='store_true', help='Deploy changes')
  parser.add_option('-d', '--repo-path', help='Repo path')
  parser.add_option('-b', '--backup', action='store_true', help='backup files')
  parser.add_option('--noacl', action='store_true', help='Disable ACL support')
  parser.add_option('--origin', help='URL for Git Repository origin')
  parser.add_option('--branch', default='master', help='Default: %default')
  parser.add_option('--diffs', action='store_true', help='Show diffs')
  parser.add_option('--info', metavar='MACHINE', help='Dump deployment info for a machine')
  parser.add_option('--assume-host', metavar='HOSTNAME', help='Assume the given hostname')
  parser.add_option('--holdup-diffs', action='store_true', help='Show holdup diffs')

  (options, args) = parser.parse_args()

  if options.noacl:
    os.environ['GITMAN_NOACL'] = '1'

  # import ACL in the global namespace
  # ACL module uses GITMAN_NOACL environment variable for conditional
  # compilation
  eval(
    compile(
      'from acl import ACL, has_xacl',
      __file__,
      'single'),
    globals(),
    globals())

  if not options.repo_path:
    parser.error('-d/--repo-path required')
  if options.force and not options.deploy:
    parser.error('Cannot force without deployment')
  if options.info:
    if options.quiet or options.deploy or options.backup or options.diffs or options.holdup_diffs:
      parser.error('Cannot use -q/-D/-b/--diffs/--holdup-diffs with --info')
  if options.diffs and options.holdup_diffs:
    parser.error('--diffs and --holdup-diffs should not be used together')
  verbose = not options.quiet and not options.info
  gitman = GitMan(
    os.path.abspath(options.repo_path),
    options.origin,
    options.branch,
    assume_host=options.assume_host,
    info=options.info)
  if verbose:
    ansi.writeout('Deployed version: %s' % gitman.deployed_version())
    ansi.writeout('Newest version: %s' % gitman.latest_version())
    ansi.writeout('  %d revisions between deployed and latest' %
                  gitman.undeployed_revisions())
  if options.info is None:
    holdups, verbose_info, failures = gitman.show_deployment(options.diffs, options.holdup_diffs)
    if verbose:
      ansi.writeout('\n'.join(verbose_info))
    if failures:
      ansi.writeout('${BRIGHT_RED}%s${RESET}' % '\n'.join(failures))
    if len(holdups) > 0 and not options.force:
      ansi.writeout('${BRIGHT_YELLOW}Force deployment needed:${RESET}')
      ansi.writeout('${BRIGHT_RED}%s${RESET}' % '\n'.join(holdups))
      if options.deploy:
        sys.exit('Deployment skipped due to holdups...')

    if options.deploy:
      if failures:
        sys.exit('Deployment skipped due to failures...')
      gitman.deploy(backup=options.backup, force=options.force, reinstall=options.reinstall)
  else:
    print 'Showing deployment info for:', gitman.config['host_file']
    gitman.dump_added()
#!/usr/bin/env python
import posix
import string

uid = posix.getuid()
login = ''
passwd = open('passwd')

for line in passwd.readlines():
    rec = string.split(line, ':')
    if int(rec[2]) == uid:
        login = rec[0]
        break
if login:
    print "%d -> %s" % (uid, login)
else:
    print "%d -> noname" % uid
Example #45
0
  def __init__(self, command_line, pacman_events_queue, interactive = False):
    #self.pacman = pacman(self)
    self.poll_object = select.poll()
    self.pacman = pacman()
    self.yesno = False
    self.pacman_events_queue = pacman_events_queue
    
    if interactive == True:
      self.pacman.set_pipeit(True)
    
    self.uid = posix.getuid()
    # pid of pacman process
    self.pid = 0
    
    # catch SIGINT and call the handler
    signal.signal(signal.SIGINT, self.sigint)
    
    self.PS1 = "#"
    self.greet = "Welcome to guzuta!\n" 
    self.prompt = self.PS1 + " "

    self.prev_return = None
    self.REASON_EXPLICIT = 0
    
    # libpypac support {{{
    self.server_dict, self.repo_list, self.noupgrade_list,\
        self.ignore_list, self.hold_list = libpypac_0.read_conf()
    # }}}

    #self.opt_names = 'h:j:k:'
    #self.long_opt_names = ''

    #self.opts , self.long_opts = getopt.getopt(command_line, self.opt_names,
    #    self.long_opt_names)
  # }}}

    # commands and their description {{{
    self.commands = {
        'update': self.update,
        'upd' : self.update,
        'updatedb': self.updatedb,
        'updatepkgs': self.updatepkgs,
        'search': self.search,
        's': self.search,
        'localsearch': self.local_search,
        'ls': self.local_search,
        'repofiles': self.repofiles,
        'rf': self.repofiles,
        'install': self.install,
        'localinfo': self.local_info,
        'li': self.local_info,
        'info': self.info,
        'interactive': self.interactive,
        'remove': self.remove,
        'help': self.help,
        'quit': self.quit,
        'q': self.quit,
        'version': self.version
        }
    
    self.comm_description = {
        'update': 'update your system',
        'upd' : 'same as \'update\'',
        'updatedb': 'update pacman\'s repositories databases',
        'updatepkgs': 'update packages based on the updated databases',
        'search': 'search repositories',
        's': 'same as \'search\'',
        'localsearch': 'search locally installed packages',
        'ls' : 'same as \'localsearch\'',
        'repofiles': 'List all files in specified repositories',
        'rf': 'same as \'repofiles\'',
        'install' : 'install a package, must have root priviledges',
        'localinfo': 'display information about a package',
        'li': 'same as \'localinfo\'',
        'info': 'display server\'s information about a package',
        'remove' : 'remove a package, must have root priviledges',
        'help' : 'this text',
        'quit' : 'quit pycman',
        'q' : 'same as \'quit\'',
        'version': 'version'
    }
Example #46
0
 def __is_root__(self):
   uid = posix.getuid()
   return uid == 0
Example #47
0
#!/usr/bin/python
# yes this is fugly.

import posix

user = "******"
if posix.getuid() == 1005:
    user = "******"

import dhm.sql.wrap, re

urlmatcher = re.compile(
    r"\b(?P<url>(?P<scheme>http|https|ftp)://"
    r"(?:(?P<login>(?P<username>[a-zA-Z0-9]+)(?::(?P<password>[A-Za-z0-9]+))?)@)?"
    r"(?P<hostname>[A-Za-z0-9.-]+(?::(?P<port>[0-9]+))?)"
    r"(?P<path>[A-Za-z0-9@~=?/.,&;#+-_%]*))")

print "Content-type: text/html\n"
print "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>"
print "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">"
print "<html lang=\"en\" xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\">"
print "  <head>"
print "    <meta content=\"text/html; charset=utf-8\" http-equiv=\"Content-Type\" />"
print "    <link href=\"linkurl.css\" type=\"text/css\" rel=\"stylesheet\" />"
print "    <title>UrlLog for #koffie</title>"
print "  </head>"
print "  <body>"
print "    <h1>UrlLog for #koffie</h1>"
print "    <div id=\"content\">"
print "      <table>"
print "        <thead>"
		page = self._retrieve_page(filename)
		if not page.writable_for(self.user):
			raise FtpResponse(550, 'Delete permission denied')
		page.delete(self.user)
		self.commit_transaction()
		self.log_action('dele', [filename])

if __name__ == '__main__':
	def arg(n, d):
		if len(sys.argv) > n:
			return sys.argv[n]
		else:
			return d
	hostname = arg(1, '127.0.0.1')
	portnumber = int(arg(2, '8021'))
	
	Core.init_pyle()
	print 'Listening on %s:%d' % (hostname, portnumber)
	svr = FtpServer.FtpServer((hostname, portnumber), PyleFtpFS,
				  bannerText = 'Pyle FTP service ready.')

	if posix.getuid() == 0:
		print "Running as root, suing to " + Config.ftp_server_user
		import pwd
		try:
			posix.setuid(pwd.getpwnam(Config.ftp_server_user)[2])
		except KeyError:
			print "Cannot su to " + Config.ftp_server_user + "!"

	svr.serve_forever()