summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'umodule.py')
-rw-r--r--umodule.py44
1 files changed, 36 insertions, 8 deletions
diff --git a/umodule.py b/umodule.py
index 74c84f9..26ab137 100644
--- a/umodule.py
+++ b/umodule.py
@@ -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!')