Example #1
0
def execute_command(command):
    if command[0] == "ls":
        long = False
        if "-l" in command:
            long  = True
        return commands.ls(BASEPATH, long)
    elif command[0] == "hash":
        return commands.hashfile(BASEPATH, command[1])
Example #2
0
File: repl.py Project: igebus/pypm
 def do_ls(self, args):
     'Usage: ls [-r] [NODE]...\n' \
     'Lists information about nodes for given NODE(s) (current group by default)\n' \
     '-r option recursively lists NODE(s) which are groups\n'
     args = parse(args)
     if "-r" in args:
         recursive = True
         args.remove('-r')
     else:
         recursive = False
     args = [self.path + node_path if node_path[0] != '/' else node_path for node_path in args]
     if not len(args):
         args.append(self.path)
     result = commands.ls(args, recursive)
     print(result)
def test_ls():
    pictures = Folder('pictures')
    pic_1 = File(pictures, 'pic_1', 'jpg', 999)
    pic_2 = File(pictures, 'pic_2', 'jpg', 999)
    pic_3 = File(pictures, 'pic_3', 'jpg', 999)
    holiday = Folder('holiday', pictures)
    pic_4 = File(holiday, 'pic_4', 'jpg', 999)
    pic_5 = File(holiday, 'pic_5', 'jpg', 999)
    tree = """pictures
 -pic_1
 -pic_2
 -pic_3
  holiday
   -pic_4
   -pic_5"""
    request = "ls pictures".split()
    assert tree == ls(pictures, request)
Example #4
0
 def sync(self, sock):
     util.send(sock, "ls -l")
     remote_data = util.recv(sock)
     remote_data = json.loads(remote_data)
     client_data = commands.ls(self.basedir, long=True)
     client_data = json.loads(client_data)
     client_filelist = list(map(lambda f: f["name"], client_data))
     remote_filelist = list(map(lambda f: f["name"], remote_data))
     cue_download = []
     cue_upload = []
     for file in remote_data:
         if file["name"] not in client_filelist:
             cue_download.append(file["name"])
     for file in client_data:
         if file["name"] not in remote_filelist:
             cue_upload.append(file["name"])
     for file in remote_data:
         if not file["name"] in client_filelist:
             continue
         # do not request hash if file was modified before previous sync
         if file['name'] in self.last_synced and file["mtime"] < self.last_synced[file['name']]:
             continue
         util.send(sock, f"hash {file['name']}")
         hsh = util.recv(sock)
         local_hsh = util.hashfile(os.path.join(self.basedir, file['name']))
         if hsh != local_hsh: # IMPORTANT LOGIC
             local_file = [f for f in client_data if f.get('name')== f['name']][0]
             if file['mtime'] > local_file['mtime']:
                 # server updated file after client
                 cue_download.append(file['name'])
             else:
                 # client updated dile after server
                 cue_upload.append(file['name'])
         else: # mtime differs but file is in sync as compared by hash
             self.last_synced[file['name']] = time.time()
     for filename in cue_upload:
         util.send(sock, f"upload {filename}")
         file_transfer.upload_file(sock, self.basedir, filename)
         self.last_synced[filename] = time.time()
     for filename in cue_download:
         util.send(sock, f"download {filename}")
         file_transfer.download_file(sock, self.basedir, filename)
         self.last_synced[filename] = time.time()
Example #5
0
def main():
    args = sys.argv[1:]
    parser = ArgumentParser()
    parser.add_argument('command', type=command_type, help=', '.join(COMMANDS))
    parser.add_argument('options', nargs='*')
    parsed = parser.parse_args(args)
    command = parsed.command
    options = parsed.options

    if command == 'install':
        opts = ArgumentParser(usage='%(prog)s install extension')
        opts.add_argument('extension')
        sub_args = opts.parse_args(options)
        return install(sub_args.extension)
    elif command == 'uninstall':
        opts = ArgumentParser(usage='%(prog)s uninstall extension')
        opts.add_argument('extension')
        sub_args = opts.parse_args(options)
        return uninstall(sub_args.extension)
    elif command == 'enable':
        opts = ArgumentParser(usage='%(prog)s enable extension')
        opts.add_argument('extension')
        sub_args = opts.parse_args(options)
        return enable(sub_args.extension)
    elif command == 'disable':
        opts = ArgumentParser(usage='%(prog)s disable extension')
        opts.add_argument('extension')
        sub_args = opts.parse_args(options)
        return disable(sub_args.extension)
    elif command == 'status':
        return status()
    elif command == 'ls':
        return ls()
    elif command == 'help':
        opts = ArgumentParser(usage='%(prog)s help command')
        opts.add_argument('command', type=command_type)
        sub_args = opts.parse_args(options)
        cmd = sub_args.command
        print('{} - {}'.format(cmd, COMMAND_DESCRIPTIONS[cmd]))
        return 0
    else:
        raise Exception('Somebody forgot to update some code')
Example #6
0
def ls(args):
    """
    provide a argparse namespace object.
    Calls the ls command
    """
    commands.ls()
def main():
    home = Folder('home')
    working_dir = Folder('working_dir')
    working_dir = home
    answer = True
    starting_msg = "File system is working. Type help if needed or exit to end program."
    print(starting_msg)
    while answer:
        try:
            path = get_path(working_dir, home)

            answer = input(path).split()

            if answer[0] == "cd":
                new_working_dir = cd(answer, working_dir, home)
                if new_working_dir:
                    working_dir = new_working_dir
                else:
                    print("Incorrect usage of: cd. Try again")
            elif answer[0] == 'mkdir':
                # make folder
                try:
                    Folder(answer[1], working_dir)
                except Exception:
                    print("Incorrect usage of: mkdir. Try again")
            elif answer[0] == 'mk':
                # make file
                try:
                    File(working_dir, answer[1], answer[2], answer[3])
                except Exception:
                    print("Incorrect usage of: mk. Try again")
            elif answer[0] == 'rm':
                # delete file or folder
                if len(answer) == 2:
                    to_be_deleted = working_dir.find(answer[1])
                    if to_be_deleted:
                        print(rm(to_be_deleted, working_dir, home))
                    else:
                        print(f"Error. {answer[1]} - Element does not exist")
                else:
                    print("Incorrect usage of: rm. Try again")
            elif answer[0] == 'ls':
                # print structure
                print(ls(working_dir, answer))
            elif answer[0] == 'cat':
                # print file/folder info
                print(cat(working_dir, answer[1]))
            elif answer[0] == 'size':
                # print folder size
                try:
                    size = working_dir.find(answer[1]).count_size_recursive()
                    print(f'Size: {size} kB')
                except AttributeError:
                    print("Incorrect usage of: size. Try again")
            elif answer[0] == 'wc':
                # count elements in folder
                try:
                    print(wc(working_dir, answer))
                except Exception:
                    print("Incorrect usage of: wc. Try again")
            elif answer[0] == 'pwd':
                print(working_dir.name)
            elif answer[0] == 'cp':
                try:
                    cp(working_dir, answer, home)
                except Exception:
                    print("Incorrect usage of: cp. Try again")
            elif answer[0] == 'mv':
                try:
                    mv(working_dir, answer, home)
                except Exception:
                    print("Incorrect usage of: mv. Try again")
            elif answer[0] == 'help':
                print(help())
            elif answer[0] == 'exit':
                # end program
                answer = False
            else:
                print("Command not found")
        except IndexError:
            print("No command was given. Try again.")
            main()
Example #8
0
from disk_manager import DiskManager
from commands import cat, ls
from document import File
from path import Path

if __name__ == "__main__":
    #Create a disk instance
    disk = DiskManager()
    #Create a command object instance
    path = Path('c:\sandbox')
    #Define our command
    cmd = ls(path)
    #set & call our command
    disk.setCommand(cmd)
    for d in disk.runCommand():
        print d

    # In[130]:

    #define our command Object (File)
    fileObj = File('c:\sandbox\ipconfig.txt')
    cmd = cat(fileObj)
    disk.setCommand(cmd)
    for line in disk.runCommand():
        print line
Example #9
0
    parser.add_argument("name",
                        metavar="name",
                        type=str,
                        nargs="?",
                        help="Name of the note, required for add and rm")
    # TODO document those
    parser.add_argument("-m", metavar="-m", type=str)
    parser.add_argument("-f", metavar="-f", type=str)
    args = parser.parse_args()

    if not is_valid_args(args):
        print("Invalid arguments, run --help for help")
        exit(error_code.INVALID_ARGUMENT)

    if args.command == "add":
        try:
            commands.add(**vars(args))
        except ValueError as v:
            print(str(v))
            exit(error_code.ADD_FAIL)

    elif args.command == "rm":
        try:
            commands.rm(**vars(args))
        except FileNotFoundError:
            print("No such note")
            exit(error_code.NO_NOTE)

    elif args.command == "ls":
        print(commands.ls(**vars(args)), end="")
Example #10
0
File: run.py Project: smilliken/mut
def main():
    if not sys.argv:
        raise InvalidUsageException()
    argv = sys.argv[1:] # chop off script name as first arg
    try:
        command = argv[0]
    except IndexError:
        raise InvalidUsageException()
    if command == '--help':
        usage()
    elif argv[-1] == '--help':
        usage(command)
    elif command == 'init':
        try:
            repo_name = argv[1]
        except IndexError:
            raise InvalidUsageException('repo_name is required.')
        commands.init(repo_name)
    elif command == 'switch':
        try:
            repo_name = argv[1]
        except IndexError:
            raise InvalidUsageException('repo_name is required.')
        commands.switch(repo_name)
    elif command == 'add-remote':
        try:
            repo_uri = argv[1]
        except IndexError:
            raise InvalidUsageException('repo_uri is required.')
        try:
            remote_name = argv[2]
        except IndexError:
            remote_name = None
        commands.add_remote(repo_uri, remote_name=remote_name)
    elif command == 'drop-remote':
        try:
            remote_name = argv[1]
        except IndexError:
            raise InvalidUsageException('remote_name is required.')
        commands.drop_remote(remote_name)
    elif not active_repo:
        raise InvalidUsageException('no active repository, must init or switch to a repository.')
    elif command == 'ls':
        flags = _parse_flags(argv[1:])
        commands.ls(tags=flags['tags'], neg_tags=flags['neg_tags'])
    elif command == 'add':
        try:
            description = argv[1]
        except IndexError:
            raise InvalidUsageException('Task description is required.')
        flags = _parse_flags(argv[2:])
        if flags['neg_tags']:
            raise InvalidUsageException('Negative tags not valid when adding task.')
        for tag in flags['tags']:
            if tag in reserved_tags:
                raise InvalidUsageException('That tag is reserved. The following tags are automatically attached to tasks: %s.' % ', '.join(reserved_tags))
        commands.add(description, priority=flags['priority'], tags=flags['tags'])
    elif command == 'mod':
        try:
            id = argv[1]
        except IndexError:
            raise InvalidUsageException('id is required.')
        flags = _parse_flags(argv[2:])
        for tag in flags['tags'] + flags['neg_tags']:
            if tag in reserved_tags:
                raise InvalidUsageException('That tag is reserved. The following tags are automatically attached to tasks: %s.' % ', '.join(reserved_tags))
        commands.mod(id, priority=flags['priority'], tags=flags['tags'], neg_tags=flags['neg_tags'])
    elif command == 'edit':
        try:
            id = argv[1]
        except IndexError:
            raise InvalidUsageException('id is required.')
        flags = _parse_flags(argv[2:])
        if flags['priority'] or flags['tags'] or flags['neg_tags']:
            raise InvalidUsageException('Invalid options specified.')
        commands.edit(id)
    elif command == 'start':
        try:
            id = argv[1]
        except IndexError:
            raise InvalidUsageException('id is required.')
        flags = _parse_flags(argv[2:])
        if flags['priority'] or flags['tags'] or flags['neg_tags']:
            raise InvalidUsageException('Invalid options specified.')
        commands.start(id)
    elif command == 'stop':
        try:
            id = argv[1]
        except IndexError:
            raise InvalidUsageException('id is required.')
        flags = _parse_flags(argv[2:])
        if flags['priority'] or flags['tags'] or flags['neg_tags']:
            raise InvalidUsageException('Invalid options specified.')
        commands.stop(id)
    elif command == 'finish':
        try:
            id = argv[1]
        except IndexError:
            raise InvalidUsageException('id is required.')
        flags = _parse_flags(argv[2:])
        if flags['priority'] or flags['tags'] or flags['neg_tags']:
            raise InvalidUsageException('Invalid options specified.')
        commands.finish(id)
    elif command == 'rm':
        try:
            id = argv[1]
        except IndexError:
            raise InvalidUsageException('id is required.')
        flags = _parse_flags(argv[2:])
        if flags['priority'] or flags['tags'] or flags['neg_tags']:
            raise InvalidUsageException('Invalid options specified.')
        commands.rm(id)
    else:
        raise InvalidUsageException('Unrecognized command: %s.' % command)
Example #11
0
def on_ls(bot, update):
    path = update.message.text[3:].strip()
    user = update.message.from_user['username']
    bot.sendMessage(update.message.chat_id,
                    text='<pre>%s</pre>' % ls(user, path),
                    parse_mode='HTML')