Пример #1
0
def links_reset(root, verbose, force):
    """Reset links data from .links file"""
    _dirs, links = read_dot_links(root)
    fs_pairs = find_links(root)
    fs_links = [k for k, _v in fs_pairs]
    for link, real_dir in links.iteritems():
        if not link in fs_links:
            if verbose:
                print "Creating link %s to %s" % (link, real_dir)
            if not os.path.exists(real_dir):
                print "Warning: Target path %s does not exist" % real_dir
                if not force: break
            create_link(root, link, real_dir)
        elif not (link, real_dir) in fs_pairs:
            if verbose:
                print "Updating link %s to %s" % (link, real_dir)
            if not os.path.exists(real_dir):
                print "Warning: Target path %s does not exist" % real_dir
                if not force: break
            remove_link(root, link)
            create_link(root, link, real_dir)
    for link, real_dir in fs_pairs:
        if not link in links:
            if verbose:
                print "Removing link %s (pointed to %s)" % (link, real_dir)
            remove_link(root, link)
Пример #2
0
def links_show(root=('r', '.', 'Root directory')):
    """Show all links in project filesystem"""
    links = find_links(root)
    _dirs, saved = read_dot_links(root)
    for symlink, real_dir in links:
        if symlink in saved:
            if real_dir in saved[symlink]:
                status = ' '
            else:
                status = '*'
        else:
            status = '+'
        print "%s %-30s %s" % (status, symlink, real_dir)
    for symlink, real_dir in sorted(saved.iteritems()):
        if not (symlink, real_dir) in links:
            status = '-'
            print "%s %-30s %s" % (status, symlink, real_dir)
Пример #3
0
def links_commit(root=('r', '.', 'Root directory')):
    "Commit links data into .links file"
    write_dot_links(root, find_links(root))