!C99Shell v. 1.0 pre-release build #16!

Software: Apache/2.0.54 (Fedora). PHP/5.0.4 

uname -a: Linux mina-info.me 2.6.17-1.2142_FC4smp #1 SMP Tue Jul 11 22:57:02 EDT 2006 i686 

uid=48(apache) gid=48(apache) groups=48(apache)
context=system_u:system_r:httpd_sys_script_t
 

Safe-mode: OFF (not secure)

/usr/share/rhn/up2date_client/   drwxr-xr-x
Free 3.84 GB of 27.03 GB (14.22%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     text_config.py (7.07 KB)      -rwxr-xr-x
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#!/usr/bin/python
#
# TUI for RHN Configuration
# Copyright (c) 2001-2002 Red Hat, Inc.
#
# Author: Adrian Likins <alikins@redhat.com>
#

#
# Just a quick and simple "text" based config module
# for up2date, for those folks who are afraid of text editors
#
"""simple text config module for the up2date client"""

# NOTE: rename this module
# NOTE: should be doing import *
from config import *
import sys
import readline
import string

sys.path.append("/usr/share/rhn/up2date_client/")
import configUtils

up2date_config = initUp2dateConfig()



def handleBool(default_value,summary,name):
    valid_input = 0
    if default_value == 0:
        default_string = "No"
    elif default_value == 1:
        default_string = "Yes"
    else:
        default_string = default_value
    default_prompt = "Current value: %s" % default_string
    name_prompt = "Attribute Name: %s" % name
    summary_prompt = "Comment: %s" % summary
    sys.stdout.write('%s\n' % name_prompt)
    sys.stdout.write('%s\n' % summary_prompt)
    sys.stdout.write('%s\n' % default_prompt)

    while not valid_input:
        prompt = 'New Value: '
        value = raw_input(prompt)
        if value == "":
            value = default_value
            valid_input = 1
        elif string.lower(value) in ["yes","true"] or (value == 1):
            value = 1
            valid_input = 1
        elif string.lower(value) in ["no", "false"] or (value == 0):
            value = 0
            valid_input =1
        else:
            value = None
    return value

def handleOptionList(default_value, summary, name, choices):
    valid_input = 0
    default_string = ""
    
    default_prompt = "current value: "
    name_prompt = "Attribute: %s" % name
    summary_prompt = "%s%s" % (default_prompt, default_value)
    print "\n%s" % name_prompt
    print "%s" % summary_prompt
    index = 0
    for item in choices:
        print "%s: %s" % (index + 1, item)
        index = index + 1
    while not valid_input:
        prompt =  "   < enter number of choice to use, return for default>: "
        value = raw_input(prompt)
        print
        try:
            intvalue = string.atoi(value)
        except ValueError:
            valid_input = 1
        if value == "":
            return_value = default_value
            valid_input = 1
        else:
            return_value = choices[intvalue - 1 ]
            valid_input = 1
        return return_value
            

def handleList(default_value, summary, name):
    valid_input = 0
    default_string = ""
    if len(default_value) > 0:
        for l in default_value:
            default_string = default_string + "%s;" %  l
    else:
        default_string = "%s" % ""
    default_prompt = "Current value: "
    name_prompt = "Attribute: %s" % name
    summary_prompt = "Comment: %s" % summary
    print "\n%s" % name_prompt
    print "%s" % summary_prompt
    print "%s%s" % (default_prompt,default_string)
    while not valid_input:
        print "   < return for default, C to clear list, "\
              "items are ';' separated >"
        prompt = "New Value: "
        value = raw_input(prompt)
        print
        if value == "":
            return_value = string.join(default_value, ';')
            valid_input = 1
        elif value == "C":
            return_value = ""
            valid_input = 1
        else:
            return_value = value
            valid_input = 1

    string_list = string.split(string.strip(return_value), ';')
    if len(string_list):
        if string_list[-1] == "":
            del string_list[-1]
    return string_list

def handleString(default_value, summary,name):
    valid_input = 0
    # code to handle lists here
    default_string = default_value
    default_prompt = "Current value: %s" % default_string
    name_prompt = "Attribute Name: %s" % name
    summary_prompt = "Comment: %s" % summary
    sys.stdout.write('%s\n' % name_prompt)
    sys.stdout.write('%s\n' % summary_prompt)
    sys.stdout.write('%s\n' % default_prompt)
    while not valid_input:
        sys.stdout.write("    <return for default, enter two spaces "\
                         "and return to clear>\n")
        prompt = 'New Value: '
        value = raw_input(prompt)
        if value == "":
            value = default_value
            valid_input = 1
        elif value == ' ':
            value = ""
            valid_input = 1
        else:
            valid_input = 1
    return value

item_list = []
def printList():
    global item_list
    item_list = []
    count = 0
    for item in up2date_config.keys():
        summary = "%s" % up2date_config.info(item)
        default_value = up2date_config[item]
        name = item
        item_list.append(name)
        count_string = "%s." % count
        # blah, format this correctly
        if default_value == 0:
            default_value = "No"
        if default_value == 1:
            default_value = "Yes"
            
        print "%-3.3s %-18.18s %-57.57s" % (count_string,name, default_value)
        count = count + 1

def printDetailList():
    global item_list
    item_list = []
    count = 0
    for item in up2date_config.keys():
        summary = "%s" % up2date_config.info(item)
        default_value = up2date_config[item]
        name = item
        item_list.append(name)
        count_string = "%s." % count
        # blah, format this correctly
        print "%-3.3s %-18.18s%-57.57s" % (count_string,name, summary)
        count = count + 1
    print
       
def main():              
    valid_input = 0
    save_values = 0
    while not valid_input:
        printList()
        print
        print
        prompt = "Enter number of item to edit "\
                 "<return to exit, q to quit without saving>: "
        value = raw_input(prompt)
        if (value == ""):
            save_values = 1
            break
        # quit without saving
        if (value == "q"):
            break
        if (value == "h"):
            printDetailList()
        else:
        try:
                index = string.atoi(value)
                name = item_list[index]
                summary = "%s" % up2date_config.info(name)
                default_value = up2date_config[name]
                if name == "serverURL":
                    new_value = handleOptionList(default_value, summary, name,
                                                 configUtils.getServerUrls())
                elif (default_value == 0) or (default_value == 1):
                    new_value = handleBool(default_value,summary,name)
                elif type(default_value) == type([]):
                    new_value = handleList(default_value, summary, name)
                else:
                    new_value = handleString(default_value, summary,name)
                up2date_config.set(name, new_value)
        except:
                print "There was an error"
        print sys.exc_type, sys.exc_value
                     
    if save_values:
        save()

def printConfig():
    for item in up2date_config.keys():
        name = item
        value = up2date_config[item]

        print "Name: %s" %name
        print "value: %s" % value

def save():
    up2date_config.save()


if __name__ == "__main__":
       main()

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 1.0 pre-release build #16 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.0039 ]--