403Webshell
Server IP : 103.119.228.120  /  Your IP : 13.59.198.150
Web Server : Apache
System : Linux v8.techscape8.com 3.10.0-1160.119.1.el7.tuxcare.els2.x86_64 #1 SMP Mon Jul 15 12:09:18 UTC 2024 x86_64
User : nobody ( 99)
PHP Version : 5.6.40
Disable Function : shell_exec,symlink,system,exec,proc_get_status,proc_nice,proc_terminate,define_syslog_variables,syslog,openlog,closelog,escapeshellcmd,passthru,ocinum cols,ini_alter,leak,listen,chgrp,apache_note,apache_setenv,debugger_on,debugger_off,ftp_exec,dl,dll,myshellexec,proc_open,socket_bind,proc_close,escapeshellarg,parse_ini_filepopen,fpassthru,exec,passthru,escapeshellarg,escapeshellcmd,proc_close,proc_open,ini_alter,popen,show_source,proc_nice,proc_terminate,proc_get_status,proc_close,pfsockopen,leak,apache_child_terminate,posix_kill,posix_mkfifo,posix_setpgid,posix_setsid,posix_setuid,dl,symlink,shell_exec,system,dl,passthru,escapeshellarg,escapeshellcmd,myshellexec,c99_buff_prepare,c99_sess_put,fpassthru,getdisfunc,fx29exec,fx29exec2,is_windows,disp_freespace,fx29sh_getupdate,fx29_buff_prepare,fx29_sess_put,fx29shexit,fx29fsearch,fx29ftpbrutecheck,fx29sh_tools,fx29sh_about,milw0rm,imagez,sh_name,myshellexec,checkproxyhost,dosyayicek,c99_buff_prepare,c99_sess_put,c99getsource,c99sh_getupdate,c99fsearch,c99shexit,view_perms,posix_getpwuid,posix_getgrgid,posix_kill,parse_perms,parsesort,view_perms_color,set_encoder_input,ls_setcheckboxall,ls_reverse_all,rsg_read,rsg_glob,selfURL,dispsecinfo,unix2DosTime,addFile,system,get_users,view_size,DirFiles,DirFilesWide,DirPrintHTMLHeaders,GetFilesTotal,GetTitles,GetTimeTotal,GetMatchesCount,GetFileMatchesCount,GetResultFiles,fs_copy_dir,fs_copy_obj,fs_move_dir,fs_move_obj,fs_rmdir,SearchText,getmicrotime
MySQL : ON |  cURL : ON |  WGET : ON |  Perl : ON |  Python : ON |  Sudo : ON |  Pkexec : ON
Directory :  /usr/lib64/python2.7/Demo/pdist/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /usr/lib64/python2.7/Demo/pdist/rrcs.py
#! /usr/bin/env python

"Remote RCS -- command line interface"

import sys
import os
import getopt
import string
import md5
import tempfile
from rcsclient import openrcsclient

def main():
    sys.stdout = sys.stderr
    try:
        opts, rest = getopt.getopt(sys.argv[1:], 'h:p:d:qvL')
        if not rest:
            cmd = 'head'
        else:
            cmd, rest = rest[0], rest[1:]
        if not commands.has_key(cmd):
            raise getopt.error, "unknown command"
        coptset, func = commands[cmd]
        copts, files = getopt.getopt(rest, coptset)
    except getopt.error, msg:
        print msg
        print "usage: rrcs [options] command [options] [file] ..."
        print "where command can be:"
        print "      ci|put      # checkin the given files"
        print "      co|get      # checkout"
        print "      info        # print header info"
        print "      head        # print revision of head branch"
        print "      list        # list filename if valid"
        print "      log         # print full log"
        print "      diff        # diff rcs file and work file"
        print "if no files are given, all remote rcs files are assumed"
        sys.exit(2)
    x = openrcsclient(opts)
    if not files:
        files = x.listfiles()
    for fn in files:
        try:
            func(x, copts, fn)
        except (IOError, os.error), msg:
            print "%s: %s" % (fn, msg)

def checkin(x, copts, fn):
    f = open(fn)
    data = f.read()
    f.close()
    new = not x.isvalid(fn)
    if not new and same(x, copts, fn, data):
        print "%s: unchanged since last checkin" % fn
        return
    print "Checking in", fn, "..."
    message = asklogmessage(new)
    messages = x.put(fn, data, message)
    if messages:
        print messages

def checkout(x, copts, fn):
    data = x.get(fn)
    f = open(fn, 'w')
    f.write(data)
    f.close()

def lock(x, copts, fn):
    x.lock(fn)

def unlock(x, copts, fn):
    x.unlock(fn)

def info(x, copts, fn):
    dict = x.info(fn)
    keys = dict.keys()
    keys.sort()
    for key in keys:
        print key + ':', dict[key]
    print '='*70

def head(x, copts, fn):
    head = x.head(fn)
    print fn, head

def list(x, copts, fn):
    if x.isvalid(fn):
        print fn

def log(x, copts, fn):
    flags = ''
    for o, a in copts:
        flags = flags + ' ' + o + a
    flags = flags[1:]
    messages = x.log(fn, flags)
    print messages

def diff(x, copts, fn):
    if same(x, copts, fn):
        return
    flags = ''
    for o, a in copts:
        flags = flags + ' ' + o + a
    flags = flags[1:]
    data = x.get(fn)
    tf = tempfile.NamedTemporaryFile()
    tf.write(data)
    tf.flush()
    print 'diff %s -r%s %s' % (flags, x.head(fn), fn)
    sts = os.system('diff %s %s %s' % (flags, tf.name, fn))
    if sts:
        print '='*70

def same(x, copts, fn, data = None):
    if data is None:
        f = open(fn)
        data = f.read()
        f.close()
    lsum = md5.new(data).digest()
    rsum = x.sum(fn)
    return lsum == rsum

def asklogmessage(new):
    if new:
        print "enter description,",
    else:
        print "enter log message,",
    print "terminate with single '.' or end of file:"
    if new:
        print "NOTE: This is NOT the log message!"
    message = ""
    while 1:
        sys.stderr.write(">> ")
        sys.stderr.flush()
        line = sys.stdin.readline()
        if not line or line == '.\n': break
        message = message + line
    return message

def remove(fn):
    try:
        os.unlink(fn)
    except os.error:
        pass

commands = {
        'ci': ('', checkin),
        'put': ('', checkin),
        'co': ('', checkout),
        'get': ('', checkout),
        'info': ('', info),
        'head': ('', head),
        'list': ('', list),
        'lock': ('', lock),
        'unlock': ('', unlock),
        'log': ('bhLRtd:l:r:s:w:V:', log),
        'diff': ('c', diff),
        }

if __name__ == '__main__':
    main()

Youez - 2016 - github.com/yon3zu
LinuXploit