SILENT KILLERPanel

Current Path: > > lib64 > python2.7 > > Demo > pdist


Operation   : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
Software     : Apache
Server IP    : 162.0.232.56 | Your IP: 216.73.216.111
Domains      : 1034 Domain(s)
Permission   : [ 0755 ]

Files and Folders in: //lib64/python2.7//Demo/pdist

NameTypeSizeLast ModifiedActions
FSProxy.py File 7828 bytes April 19 2020 21:13:39.
FSProxy.pyc File 12795 bytes April 10 2024 04:58:46.
FSProxy.pyo File 12795 bytes April 10 2024 04:58:46.
RCSProxy.py File 4723 bytes April 10 2024 04:57:37.
RCSProxy.pyc File 7751 bytes April 10 2024 04:58:46.
RCSProxy.pyo File 7751 bytes April 10 2024 04:58:46.
README File 4264 bytes April 19 2020 21:13:39.
client.py File 4708 bytes April 19 2020 21:13:39.
client.pyc File 6724 bytes April 10 2024 04:58:46.
client.pyo File 6724 bytes April 10 2024 04:58:46.
cmdfw.py File 4641 bytes April 19 2020 21:13:39.
cmdfw.pyc File 5239 bytes April 10 2024 04:58:46.
cmdfw.pyo File 5239 bytes April 10 2024 04:58:46.
cmptree.py File 5778 bytes April 19 2020 21:13:39.
cmptree.pyc File 6123 bytes April 10 2024 04:58:46.
cmptree.pyo File 6123 bytes April 10 2024 04:58:46.
cvslib.py File 10175 bytes April 19 2020 21:13:39.
cvslib.pyc File 13140 bytes April 10 2024 04:58:46.
cvslib.pyo File 13140 bytes April 10 2024 04:58:46.
cvslock.py File 6771 bytes April 19 2020 21:13:39.
cvslock.pyc File 8560 bytes April 10 2024 04:58:46.
cvslock.pyo File 8560 bytes April 10 2024 04:58:46.
mac.py File 352 bytes April 19 2020 21:13:39.
mac.pyc File 598 bytes April 10 2024 04:58:46.
mac.pyo File 598 bytes April 10 2024 04:58:46.
makechangelog.py File 2988 bytes April 10 2024 04:57:37.
makechangelog.pyc File 3122 bytes April 10 2024 04:58:46.
makechangelog.pyo File 3122 bytes April 10 2024 04:58:46.
rcsbump File 745 bytes April 10 2024 04:57:37.
rcsclient.py File 1803 bytes April 19 2020 21:13:39.
rcsclient.pyc File 2100 bytes April 10 2024 04:58:46.
rcsclient.pyo File 2100 bytes April 10 2024 04:58:46.
rcslib.py File 10318 bytes April 19 2020 21:13:39.
rcslib.pyc File 11548 bytes April 10 2024 04:58:46.
rcslib.pyo File 11548 bytes April 10 2024 04:58:46.
rcvs File 117 bytes April 10 2024 04:57:37.
rcvs.py File 13644 bytes April 10 2024 04:57:37.
rcvs.pyc File 14417 bytes April 10 2024 04:58:46.
rcvs.pyo File 14417 bytes April 10 2024 04:58:46.
rrcs File 117 bytes April 10 2024 04:57:37.
rrcs.py File 3992 bytes April 10 2024 04:57:37.
rrcs.pyc File 5629 bytes April 10 2024 04:58:46.
rrcs.pyo File 5629 bytes April 10 2024 04:58:46.
security.py File 1092 bytes April 19 2020 21:13:39.
security.pyc File 1681 bytes April 10 2024 04:58:46.
security.pyo File 1681 bytes April 10 2024 04:58:46.
server.py File 4581 bytes April 19 2020 21:13:39.
server.pyc File 5971 bytes April 10 2024 04:58:46.
server.pyo File 5971 bytes April 10 2024 04:58:46.
sumtree.py File 518 bytes April 19 2020 21:13:39.
sumtree.pyc File 903 bytes April 10 2024 04:58:46.
sumtree.pyo File 903 bytes April 10 2024 04:58:46.

Reading File: //lib64/python2.7//Demo/pdist/cmptree.py

"""Compare local and remote dictionaries and transfer differing files -- like rdist."""

import sys
from repr import repr
import FSProxy
import time
import os

def main():
    pwd = os.getcwd()
    s = raw_input("chdir [%s] " % pwd)
    if s:
        os.chdir(s)
        pwd = os.getcwd()
    host = ask("host", 'voorn.cwi.nl')
    port = 4127
    verbose = 1
    mode = ''
    print """\
Mode should be a string of characters, indicating what to do with differences.
r - read different files to local file system
w - write different files to remote file system
c - create new files, either remote or local
d - delete disappearing files, either remote or local
"""
    s = raw_input("mode [%s] " % mode)
    if s: mode = s
    address = (host, port)
    t1 = time.time()
    local = FSProxy.FSProxyLocal()
    remote = FSProxy.FSProxyClient(address, verbose)
    compare(local, remote, mode)
    remote._close()
    local._close()
    t2 = time.time()
    dt = t2-t1
    mins, secs = divmod(dt, 60)
    print mins, "minutes and", round(secs), "seconds"
    raw_input("[Return to exit] ")

def ask(prompt, default):
    s = raw_input("%s [%s] " % (prompt, default))
    return s or default

def askint(prompt, default):
    s = raw_input("%s [%s] " % (prompt, str(default)))
    if s: return string.atoi(s)
    return default

def compare(local, remote, mode):
    print
    print "PWD =", repr(os.getcwd())
    sums_id = remote._send('sumlist')
    subdirs_id = remote._send('listsubdirs')
    remote._flush()
    print "calculating local sums ..."
    lsumdict = {}
    for name, info in local.sumlist():
        lsumdict[name] = info
    print "getting remote sums ..."
    sums = remote._recv(sums_id)
    print "got", len(sums)
    rsumdict = {}
    for name, rsum in sums:
        rsumdict[name] = rsum
        if not lsumdict.has_key(name):
            print repr(name), "only remote"
            if 'r' in mode and 'c' in mode:
                recvfile(local, remote, name)
        else:
            lsum = lsumdict[name]
            if lsum != rsum:
                print repr(name),
                rmtime = remote.mtime(name)
                lmtime = local.mtime(name)
                if rmtime > lmtime:
                    print "remote newer",
                    if 'r' in mode:
                        recvfile(local, remote, name)
                elif lmtime > rmtime:
                    print "local newer",
                    if 'w' in mode:
                        sendfile(local, remote, name)
                else:
                    print "same mtime but different sum?!?!",
                print
    for name in lsumdict.keys():
        if not rsumdict.keys():
            print repr(name), "only locally",
            fl()
            if 'w' in mode and 'c' in mode:
                sendfile(local, remote, name)
            elif 'r' in mode and 'd' in mode:
                os.unlink(name)
                print "removed."
            print
    print "gettin subdirs ..."
    subdirs = remote._recv(subdirs_id)
    common = []
    for name in subdirs:
        if local.isdir(name):
            print "Common subdirectory", repr(name)
            common.append(name)
        else:
            print "Remote subdirectory", repr(name), "not found locally"
            if 'r' in mode and 'c' in mode:
                pr = "Create local subdirectory %s? [y] " % \
                     repr(name)
                if 'y' in mode:
                    ok = 'y'
                else:
                    ok = ask(pr, "y")
                if ok[:1] in ('y', 'Y'):
                    local.mkdir(name)
                    print "Subdirectory %s made" % \
                            repr(name)
                    common.append(name)
    lsubdirs = local.listsubdirs()
    for name in lsubdirs:
        if name not in subdirs:
            print "Local subdirectory", repr(name), "not found remotely"
    for name in common:
        print "Entering subdirectory", repr(name)
        local.cd(name)
        remote.cd(name)
        compare(local, remote, mode)
        remote.back()
        local.back()

def sendfile(local, remote, name):
    try:
        remote.create(name)
    except (IOError, os.error), msg:
        print "cannot create:", msg
        return

    print "sending ...",
    fl()

    data = open(name).read()

    t1 = time.time()

    remote._send_noreply('write', name, data)
    remote._flush()

    t2 = time.time()

    dt = t2-t1
    print len(data), "bytes in", round(dt), "seconds",
    if dt:
        print "i.e.", round(len(data)/dt), "bytes/sec",
    print

def recvfile(local, remote, name):
    ok = 0
    try:
        rv = recvfile_real(local, remote, name)
        ok = 1
        return rv
    finally:
        if not ok:
            print "*** recvfile of %r failed, deleting" % (name,)
            local.delete(name)

def recvfile_real(local, remote, name):
    try:
        local.create(name)
    except (IOError, os.error), msg:
        print "cannot create:", msg
        return

    print "receiving ...",
    fl()

    f = open(name, 'w')
    t1 = time.time()

    length = 4*1024
    offset = 0
    id = remote._send('read', name, offset, length)
    remote._flush()
    while 1:
        newoffset = offset + length
        newid = remote._send('read', name, newoffset, length)
        data = remote._recv(id)
        id = newid
        if not data: break
        f.seek(offset)
        f.write(data)
        offset = newoffset
    size = f.tell()

    t2 = time.time()
    f.close()

    dt = t2-t1
    print size, "bytes in", round(dt), "seconds",
    if dt:
        print "i.e.", size//dt, "bytes/sec",
    print
    remote._recv(id) # ignored

def fl():
    sys.stdout.flush()

if __name__ == '__main__':
    main()

SILENT KILLER Tool