Пример #1
0
def init(fargs):
    """ Init the db. """
    from bookkeeper.persist import install, DB
    DB.set_verbose(fargs.verbose)
    install()

    sys.exit(0)
Пример #2
0
def list_apps():
    """ Show all installed packages. """
    _db = DB.get_instance()
    print("Installed Apps")
    print("{0:<15}{1:<15}{2:<15}".format("APP", "PATH", "INSTALLED AT"))
    for app, source, target in _db.fetch_app():
        print("{0:<15}{1:<15}{2:<15}".format(app, source, target))
Пример #3
0
def link(source, target):
    """ Install all items in app as symlinks in target. """
    _db = DB.get_instance()
    full_source = os.path.abspath(source)
    _, app = os.path.split(full_source)
    target_path = get_path(target)
    _db.add_app(app, full_source, target_path)
Пример #4
0
def link(source, target):
    """Install all items in app as symlinks in target."""
    _db = DB.get_instance()
    full_source = os.path.abspath(source)
    _, app = os.path.split(full_source)
    target_path = get_path(target)
    _db.add_app(app, full_source, target_path)
Пример #5
0
def list_apps():
    """Show all installed packages."""
    _db = DB.get_instance()
    print("Installed Apps")
    print("{0:<15}{1:<35}{2:<35}".format("APP", "PATH", "INSTALLED AT"))
    for app, source, target in _db.fetch_app():
        print("{0:<15}{1:<35}{2:<35}".format(app, source, target))
    print("Not Installed Apps (local folder)")
    print("{0:<15}{1:<35}".format("APP", "PATH"))
    # TODO: Exclude already installed apps
    for i in os.listdir(os.curdir):
        if os.path.isdir(i):
            print("{0:<15}{1:<35}".format(i, os.path.abspath(i)))
Пример #6
0
def sync(app=None):
    """ Sync all items from source.

    If file and not in target, create symlink.
    If file and in target, ignore.
    If folder and not in target, create symlink.
    If folder and symlink in target not from self,
        remove symlink, create folder and sync folder items.
    if folder and folder in target, sync folder items.
    """
    _db = DB.get_instance()
    app_l = _db.fetch_app(app)
    for app, source_path, target_path in app_l:
        sync_folder(source_path, target_path)
Пример #7
0
def list_apps():
    """Show all installed packages."""
    _db = DB.get_instance()
    print("Installed Apps")
    print("{0:<15}{1:<35}{2:<35}".format("APP", "PATH", "INSTALLED AT"))
    for app, source, target in _db.fetch_app():
        print("{0:<15}{1:<35}{2:<35}".format(
            app, source, target
        ))
    print("Not Installed Apps (local folder)")
    print("{0:<15}{1:<35}".format("APP", "PATH"))
    # TODO: Exclude already installed apps
    for i in os.listdir(os.curdir):
        if os.path.isdir(i):
            print("{0:<15}{1:<35}".format(
                i, os.path.abspath(i)
            ))
Пример #8
0
def sync(app=None):
    """Sync all items from source.

    If file and not in target, create symlink.
    If file and in target, ignore.
    If folder and not in target, create symlink.
    If folder and symlink in target not from self,
        remove symlink, create folder and sync folder items.
    if folder and folder in target, sync folder items.
    """
    _db = DB.get_instance()
    app_l = _db.fetch_app(app)
    for app, source_path, target_path in app_l:
        for item in os.listdir(source_path):
            sync_items(
                os.path.join(source_path, item),
                os.path.join(target_path, item)
            )