예제 #1
0
파일: utils.py 프로젝트: Azure8705/winsys
def can_encrypt ():
  with tempfile.NamedTemporaryFile (delete=False) as f:
    name = f.name
  try:
    fs.file (name).encrypt ()
  except fs.x_fs:
    return False
  else:
    return True
예제 #2
0
def can_encrypt ():
  with tempfile.NamedTemporaryFile (delete=False) as f:
    name = f.name
  try:
    fs.file (name).encrypt ()
  except fs.x_fs:
    return False
  else:
    return True
예제 #3
0
import os, sys
import threading
import Queue

from winsys import fs

def sizer(requests, results):
    while True:
        root = requests.get()
        if root is None:
            break
        results.put((root, sum(f.size for f in fs.flat(root))))

if __name__ == '__main__':
    if len(sys.argv) > 1:
        root = fs.file(sys.argv[1])
    else:
        root = fs.file("c:/temp")

    N_THREADS = 5
    requests = Queue.Queue()
    results = Queue.Queue()
    sizers = [threading.Thread(target=sizer, args=(requests, results)) for _ in range(N_THREADS)]
    for s in sizers:
        s.setDaemon(True)
        s.start()

    dirs = set(d.filepath for d in root.dirs())
    for dir in dirs:
        requests.put(dir)
예제 #4
0
import Queue

from winsys import fs


def sizer(requests, results):
    while True:
        root = requests.get()
        if root is None:
            break
        results.put((root, sum(f.size for f in fs.flat(root))))


if __name__ == '__main__':
    if len(sys.argv) > 1:
        root = fs.file(sys.argv[1])
    else:
        root = fs.file("c:/temp")

    N_THREADS = 5
    requests = Queue.Queue()
    results = Queue.Queue()
    sizers = [
        threading.Thread(target=sizer, args=(requests, results))
        for _ in range(N_THREADS)
    ]
    for s in sizers:
        s.setDaemon(True)
        s.start()

    dirs = set(d.filepath for d in root.dirs())
예제 #5
0
import os, sys
import csv

from winsys import fs

python_dirpath = fs.file(sys.executable).path
with open("files.csv", "wb") as f:
    writer = csv.writer(f)
    writer.writerow(["Path", "Name", "Size", "Modified"])

    for f in python_dirpath.flat():
        writer.writerow([f.path, f.name, f.size, f.written_at])
예제 #6
0
import uuid
from winsys import accounts, security, fs

username = filename = str(uuid.uuid1())[:8]
user = accounts.User.create(username, "password")
f = fs.file(filename)
assert(not f)

assert accounts.me() != user
try:
    with user:
        assert accounts.me() == user
        f.touch()
        assert f.security().owner == user
        f.delete()
finally:
    user.delete()
예제 #7
0
import os, sys
from winsys import security, fs


def find_uninherited_ace(file, ace_to_find, container_or_object):
    for ace in file.security("D").dacl:
        if ace == ace_to_find and getattr(
                ace, "%ss_inherit" % container_or_object, 0):
            if not ace.inherited:
                return file, ace
            else:
                return find_uninherited_ace(file.parent(), ace_to_find,
                                            "container")


python = fs.file(sys.executable)
for ace in python.security("D").dacl:
    if not ace.inherited:
        print python, ace
    else:
        f, ace_found = find_uninherited_ace(
            python.parent(), ace,
            "container" if isinstance(python, fs.Dir) else "object")
        print f, ace_found
예제 #8
0
import os, sys
from winsys import security, fs

def find_uninherited_ace(file, ace_to_find, container_or_object):
    for ace in file.security("D").dacl:
        if ace == ace_to_find and getattr(ace, "%ss_inherit" % container_or_object, 0):
            if not ace.inherited:
                return file, ace
            else:
                return find_uninherited_ace(file.parent(), ace_to_find, "container")

python = fs.file(sys.executable)
for ace in python.security("D").dacl:
    if not ace.inherited:
        print python, ace
    else:
        f, ace_found = find_uninherited_ace(python.parent(), ace, "container" if isinstance(python, fs.Dir) else "object")
        print f, ace_found
예제 #9
0
import os
from winsys import dialogs, fs

DEFAULT = "temp.csv"
filename, = dialogs.dialog (
  "Open a filename",
  ("Filename", DEFAULT, dialogs.get_filename)
)

if not fs.file (filename):
  raise RuntimeError ("%s does not exist" % filename)
else:
  os.startfile (filename)
예제 #10
0
from __future__ import with_statement
from winsys import security, fs

f = fs.file("c:/temp/tim.txt")
with security.change_privileges([security.PRIVILEGE.TAKE_OWNERSHIP]):
    f.take_ownership()

assert f.security("O").owner == security.me()
예제 #11
0
import os
from winsys import dialogs, fs

DEFAULT = "temp.csv"
filename, = dialogs.dialog(
    "Open a filename",
   ("Filename", DEFAULT, dialogs.get_filename)
)

if not fs.file(filename):
    raise RuntimeError("%s does not exist" % filename)
else:
    os.startfile(filename)