From 639fb03c4bca97b0d4c1ef271edf794a9d9f9e80 Mon Sep 17 00:00:00 2001 From: mpeterv Date: Fri, 27 Nov 2015 22:27:52 +0300 Subject: [PATCH] Do not touch manifest if not necessary --- hererocks.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/hererocks.py b/hererocks.py index 18d276c..7cbf386 100755 --- a/hererocks.py +++ b/hererocks.py @@ -213,11 +213,12 @@ class Program(object): if not opts.ignore_installed: if self.identifiers is not None and self.identifiers == installed_identifiers: print("Requested {} version already installed".format(self.title)) - return + return False self.build() self.install() all_identifiers[self.name] = self.identifiers + return True class Lua(Program): def __init__(self, version): @@ -540,25 +541,30 @@ def main(): start_dir = os.getcwd() temp_dir = tempfile.mkdtemp() identifiers = get_installed_identifiers() + identifiers_changed = False if not os.path.exists(opts.location): os.makedirs(opts.location) if opts.lua: identifiers["LuaJIT"] = None - RioLua(opts.lua).update_identifiers(identifiers) + identifiers_changed = RioLua(opts.lua).update_identifiers(identifiers) os.chdir(start_dir) if opts.luajit: identifiers["lua"] = None - LuaJIT(opts.luajit).update_identifiers(identifiers) + identifiers_changed = LuaJIT(opts.luajit).update_identifiers(identifiers) os.chdir(start_dir) if opts.luarocks: - LuaRocks(opts.luarocks).update_identifiers(identifiers) + if LuaRocks(opts.luarocks).update_identifiers(identifiers): + identifiers_changed = True + os.chdir(start_dir) - save_installed_identifiers(identifiers) + if identifiers_changed: + save_installed_identifiers(identifiers) + shutil.rmtree(temp_dir) print("Done.")