diff options
author | Sérgio Almeida <mephx.x@gmail.com> | 2009-08-17 16:29:32 +0100 |
---|---|---|
committer | Sérgio Almeida <mephx.x@gmail.com> | 2009-08-17 16:29:32 +0100 |
commit | 3dd1822e27f5da4d24457b4f2652fa0ae3c120aa (patch) | |
tree | 2af23f52d6ecd8b6883849ba7165cb0aa7c19a52 /umodule.py | |
parent | Added overlay (diff) | |
download | uselect-3dd1822e27f5da4d24457b4f2652fa0ae3c120aa.tar.gz uselect-3dd1822e27f5da4d24457b4f2652fa0ae3c120aa.tar.bz2 uselect-3dd1822e27f5da4d24457b4f2652fa0ae3c120aa.zip |
Added support for targetless links aka *.d/ alike links
Diffstat (limited to 'umodule.py')
-rw-r--r-- | umodule.py | 44 |
1 files changed, 36 insertions, 8 deletions
@@ -101,18 +101,22 @@ class Link: self.links.append(link) link.parent = self - def __init__(self, lines = None, alias = None, target = None, prefix = None, regexp = None, sufix = ''): + def __init__(self, lines = None, alias = None, target = None, \ + target_dir = None, prefix = None, regexp = None, sufix = ''): self.alias = alias - self.target = prefix + alias + self.target_dir = target_dir + self.target = target self.prefix = prefix self.sufix = sufix self.regexp = regexp self.targets = [] self.status = [] self.links = [] - self.destination = self.prefix + self.alias - + if target == None: + self.destination = target_dir + else: + self.destination = target_dir + target def get_links(self, counter = None): """ @@ -143,13 +147,18 @@ class Link: if match: source = self.prefix + match.group(0) + self.sufix self.targets.append(source) - if filesystem.path_exists(self.destination): - if filesystem.real_path(self.destination) == source: + if self.target == None: + target = match.group(0) + else: + target = self.target + + if filesystem.path_exists('/' + self.target_dir + target): + if filesystem.real_path('/' + self.target_dir + target) == source: self.status.append('ok') else: self.status.append('warning') if filesystem.real_path( \ - filesystem.environment + 'bin/' + self.alias) == \ + filesystem.environment + self.target_dir + target) == \ source: status = self.status.pop() status += ' + space + notice' @@ -264,6 +273,7 @@ class Sym(Action): self.output.append('Unsetting ' + link.destination\ + ' success!') else: + filesystem.create_symlink(link.targets[i], \ link.destination) self.output.append('Setting ' + link.targets[i]\ @@ -344,6 +354,16 @@ class ProfileAction(Action): def setup(self): return +class EnvSym(Action): + def do_action(self, args): + print "nothing to do" + + def setup(self): + print "setting up" + + def build(self): + print "building" + class Env(Action): def do_action(self, args): @@ -395,8 +415,16 @@ class Path(Action, Sym): i = target[2] link = target[1] + + filesystem.create_dir(filesystem.environment + link.target_dir) + + if link.target == None: + target = link.targets[i].split('/').pop() + else: + target = link.target + filesystem.create_symlink(link.targets[i], \ - filesystem.environment + 'bin/' + link.alias) + filesystem.environment + link.target_dir + target) self.output.append('Setting ' + link.targets[i] \ + ' success!') |