[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@3.15.192.89: ~ $
#! /usr/bin/env python

# Emulate some Perl command line options.
# Usage: pp [-a] [-c] [-d] [-e scriptline] [-F fieldsep] [-n] [-p] [file] ...
# Where the options mean the following:
#   -a            : together with -n or -p, splits each line into list F
#   -c            : check syntax only, do not execute any code
#   -d            : run the script under the debugger, pdb
#   -e scriptline : gives one line of the Python script; may be repeated
#   -F fieldsep   : sets the field separator for the -a option [not in Perl]
#   -n            : runs the script for each line of input
#   -p            : prints the line after the script has run
# When no script lines have been passed, the first file argument
# contains the script.  With -n or -p, the remaining arguments are
# read as input to the script, line by line.  If a file is '-'
# or missing, standard input is read.

# XXX To do:
# - add -i extension option (change files in place)
# - make a single loop over the files and lines (changes effect of 'break')?
# - add an option to specify the record separator
# - except for -n/-p, run directly from the file if at all possible

import sys
import getopt

FS = ''
SCRIPT = []
AFLAG = 0
CFLAG = 0
DFLAG = 0
NFLAG = 0
PFLAG = 0

try:
    optlist, ARGS = getopt.getopt(sys.argv[1:], 'acde:F:np')
except getopt.error, msg:
    sys.stderr.write('%s: %s\n' % (sys.argv[0], msg))
    sys.exit(2)

for option, optarg in optlist:
    if option == '-a':
        AFLAG = 1
    elif option == '-c':
        CFLAG = 1
    elif option == '-d':
        DFLAG = 1
    elif option == '-e':
        for line in optarg.split('\n'):
            SCRIPT.append(line)
    elif option == '-F':
        FS = optarg
    elif option == '-n':
        NFLAG = 1
        PFLAG = 0
    elif option == '-p':
        NFLAG = 1
        PFLAG = 1
    else:
        print option, 'not recognized???'

if not ARGS: ARGS.append('-')

if not SCRIPT:
    if ARGS[0] == '-':
        fp = sys.stdin
    else:
        fp = open(ARGS[0], 'r')
    while 1:
        line = fp.readline()
        if not line: break
        SCRIPT.append(line[:-1])
    del fp
    del ARGS[0]
    if not ARGS: ARGS.append('-')

if CFLAG:
    prologue = ['if 0:']
    epilogue = []
elif NFLAG:
    # Note that it is on purpose that AFLAG and PFLAG are
    # tested dynamically each time through the loop
    prologue = [
            'LINECOUNT = 0',
            'for FILE in ARGS:',
            '   \tif FILE == \'-\':',
            '   \t   \tFP = sys.stdin',
            '   \telse:',
            '   \t   \tFP = open(FILE, \'r\')',
            '   \tLINENO = 0',
            '   \twhile 1:',
            '   \t   \tLINE = FP.readline()',
            '   \t   \tif not LINE: break',
            '   \t   \tLINENO = LINENO + 1',
            '   \t   \tLINECOUNT = LINECOUNT + 1',
            '   \t   \tL = LINE[:-1]',
            '   \t   \taflag = AFLAG',
            '   \t   \tif aflag:',
            '   \t   \t   \tif FS: F = L.split(FS)',
            '   \t   \t   \telse: F = L.split()'
            ]
    epilogue = [
            '   \t   \tif not PFLAG: continue',
            '   \t   \tif aflag:',
            '   \t   \t   \tif FS: print FS.join(F)',
            '   \t   \t   \telse: print \' \'.join(F)',
            '   \t   \telse: print L',
            ]
else:
    prologue = ['if 1:']
    epilogue = []

# Note that we indent using tabs only, so that any indentation style
# used in 'command' will come out right after re-indentation.

program = '\n'.join(prologue) + '\n'
for line in SCRIPT:
    program += '   \t   \t' + line + '\n'
program += '\n'.join(epilogue) + '\n'

import tempfile
fp = tempfile.NamedTemporaryFile()
fp.write(program)
fp.flush()
if DFLAG:
    import pdb
    pdb.run('execfile(%r)' % (fp.name,))
else:
    execfile(fp.name)

Filemanager

Name Type Size Permission Actions
.beer.pyo.40009 File 703 B 0644
.eqfix.pyo.40009 File 4.52 KB 0644
.fact.pyo.40009 File 1.14 KB 0644
.find-uname.pyo.40009 File 1.47 KB 0644
.from.pyo.40009 File 749 B 0644
.lpwatch.pyo.40009 File 2.54 KB 0644
.makedir.pyo.40009 File 732 B 0644
.markov.pyo.40009 File 3.93 KB 0644
.mboxconvert.pyo.40009 File 3.17 KB 0644
.morse.pyo.40009 File 4.33 KB 0644
.newslist.pyo.40009 File 7.55 KB 0644
.pi.pyo.40009 File 921 B 0644
.pp.pyo.40009 File 2.28 KB 0644
.primes.pyo.40009 File 921 B 0644
.queens.pyo.40009 File 2.95 KB 0644
.script.pyo.40009 File 1.21 KB 0644
.unbirthday.pyo.40009 File 2.93 KB 0644
.update.pyo.40009 File 2.69 KB 0644
README File 1009 B 0644
beer.py File 459 B 0755
beer.pyc File 703 B 0644
beer.pyo File 703 B 0644
eqfix.py File 6.16 KB 0755
eqfix.pyc File 4.52 KB 0644
eqfix.pyo File 4.52 KB 0644
fact.py File 1.11 KB 0755
fact.pyc File 1.14 KB 0644
fact.pyo File 1.14 KB 0644
find-uname.py File 1.18 KB 0755
find-uname.pyc File 1.47 KB 0644
find-uname.pyo File 1.47 KB 0644
from.py File 874 B 0755
from.pyc File 749 B 0644
from.pyo File 749 B 0644
lpwatch.py File 2.77 KB 0755
lpwatch.pyc File 2.54 KB 0644
lpwatch.pyo File 2.54 KB 0644
makedir.py File 510 B 0755
makedir.pyc File 732 B 0644
makedir.pyo File 732 B 0644
markov.py File 3.51 KB 0755
markov.pyc File 3.93 KB 0644
markov.pyo File 3.93 KB 0644
mboxconvert.py File 3.11 KB 0755
mboxconvert.pyc File 3.17 KB 0644
mboxconvert.pyo File 3.17 KB 0644
morse.py File 4.21 KB 0755
morse.pyc File 4.33 KB 0644
morse.pyo File 4.33 KB 0644
newslist.doc File 2.36 KB 0755
newslist.py File 11.17 KB 0755
newslist.pyc File 7.55 KB 0644
newslist.pyo File 7.55 KB 0644
pi.py File 888 B 0755
pi.pyc File 921 B 0644
pi.pyo File 921 B 0644
pp.py File 3.73 KB 0755
pp.pyc File 2.28 KB 0644
pp.pyo File 2.28 KB 0644
primes.py File 603 B 0755
primes.pyc File 921 B 0644
primes.pyo File 921 B 0644
queens.py File 2.19 KB 0755
queens.pyc File 2.95 KB 0644
queens.pyo File 2.95 KB 0644
script.py File 962 B 0755
script.pyc File 1.21 KB 0644
script.pyo File 1.21 KB 0644
unbirthday.py File 3.07 KB 0755
unbirthday.pyc File 2.93 KB 0644
unbirthday.pyo File 2.93 KB 0644
update.py File 2.69 KB 0755
update.pyc File 2.69 KB 0644
update.pyo File 2.69 KB 0644