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)
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)
def links_list(root=('r', '.', 'Root directory')): """Show dirs shortcuts allowed in .links files""" _dirs, links = read_dot_links(root) for link, real_dir in links.iteritems(): print "%-30s %s" % (link, real_dir)