From 87d8fe24daaf5750274c7fa464cedf6c166a3387 Mon Sep 17 00:00:00 2001 From: Joseph Hunkeler Date: Wed, 10 May 2017 14:45:12 -0400 Subject: Fix improper behavior if multiple arguments are issued --- purge_path/purge_path.py | 39 +++++++++++++++++++++++++++------------ 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/purge_path/purge_path.py b/purge_path/purge_path.py index 322925b..dab14e4 100755 --- a/purge_path/purge_path.py +++ b/purge_path/purge_path.py @@ -1,20 +1,35 @@ #!/usr/bin/env python +from __future__ import print_function import os import sys - + + +def purge(path, pattern): + if not isinstance(path, list): + path = path.split(':') + + path_new = '' + for rec in path: + if rec == pattern: + # ignore pattern + continue + path_new += rec + ':' + + return path_new[:-1] + def main(): - ARGS = sys.argv[1:] - PATH = os.environ['PATH'] - PATH_NEW = [] - - for arg in ARGS: - for path in PATH.split(':'): - if arg in path: - continue - PATH_NEW.append(path) - - print("{0}".format(":".join(PATH_NEW))) + args = sys.argv[1:] + path_orig = os.environ['PATH'] + path_new = path_orig + + for arg in args: + path_new = purge(path_new, arg) + + if path_new: + print(path_new) + else: + print(path_orig) if __name__ in '__main__': -- cgit