diff options
author | René 'Necoro' Neumann <necoro@necoro.net> | 2009-02-09 18:07:44 +0100 |
---|---|---|
committer | René 'Necoro' Neumann <necoro@necoro.net> | 2009-02-09 18:07:44 +0100 |
commit | 7d434f1f5fdfc64c0384ae402e588bf0315ce701 (patch) | |
tree | c830ae9ee945035f9f1ba25224f13aacf7fc5350 /portato/backend/flags.py | |
parent | bc41d3c03f0ba278e08bc0d828d769148fc617c1 (diff) | |
parent | 58e5f45f4c1f254e626e144c52ff527fcf8b0b59 (diff) | |
download | portato-7d434f1f5fdfc64c0384ae402e588bf0315ce701.tar.gz portato-7d434f1f5fdfc64c0384ae402e588bf0315ce701.tar.bz2 portato-7d434f1f5fdfc64c0384ae402e588bf0315ce701.zip |
Fix bug #15
Diffstat (limited to '')
-rw-r--r-- | portato/backend/flags.py | 43 |
1 files changed, 22 insertions, 21 deletions
diff --git a/portato/backend/flags.py b/portato/backend/flags.py index 2b6b266..baa1f37 100644 --- a/portato/backend/flags.py +++ b/portato/backend/flags.py @@ -343,22 +343,22 @@ def write_use_flags (): """This writes our changed useflags into the file.""" global newUseFlags, useFlags + def combine (list): + """Shortcut for reverting the list into a string.""" + return " ".join(list)+"\n" + def insert (flag, list): """Shortcut for inserting a new flag right after the package-name.""" list.insert(1,flag) def remove (flag, list): """Removes a flag.""" - try: - list.remove(flag) - except ValueError: # flag is given as flag\n - list.remove(flag+"\n") - list.append("\n") #re-insert the newline + list.remove(flag) # no more flags there - comment it out - if len(list) == 1 or list[1][0] in ("#","\n"): + if len(list) == 1 or list[1][0] == "#": list[0] = "#"+list[0] - insert("#removed by portato#",list) + list.append("#removed by portato#") file_cache = {} # cache for having to read the file only once: name->[lines] for cpv in newUseFlags: @@ -381,14 +381,14 @@ def write_use_flags (): while i < line: # stop at the given line lines.append(f.readline()) i += 1 - l = f.readline().split(" ") + l = f.readline().split() # delete or insert if delete: remove(flag,l) else: insert(flag,l) - lines.append(" ".join(l)) + lines.append(combine(l)) # read the rest lines.extend(f.readlines()) @@ -396,33 +396,34 @@ def write_use_flags (): file_cache[file] = lines else: # in cache - l = file_cache[file][line-1].split(" ") + l = file_cache[file][line-1].split() if delete: remove(flag, l) else: - insert(flag,l) - file_cache[file][line-1] = " ".join(l) + insert(flag, l) + file_cache[file][line-1] = combine(l) if flagsToAdd: # write new lines msg = "\n#portato update#\n" + comb = combine(flagsToAdd) if CONFIG["usePerVersion"]: # add on a per-version-base - msg += "=%s %s\n" % (cpv, ' '.join(flagsToAdd)) + msg += "=%s %s" % (cpv, comb) else: # add on a per-package-base list = system.split_cpv(cpv) - msg += "%s/%s %s\n" % (list[0], list[1], ' '.join(flagsToAdd)) + msg += "%s/%s %s" % (list[0], list[1], combine) + if not file in file_cache: - f = open(file, "a") - f.write(msg) - f.close() + with open(file, "a") as f: + f.write(msg) else: file_cache[file].append(msg) # write to disk - for file in file_cache.keys(): - f = open(file, "w") - f.writelines(file_cache[file]) - f.close() + for file in file_cache: + with open(file, "w") as f: + f.writelines(file_cache[file]) + # reset useFlags = {} newUseFlags = {} |