Move install action into a separate function

This commit is contained in:
Peter Melnichenko 2018-08-18 12:21:54 +03:00
parent acd620b247
commit d672ccd087

View File

@ -1977,6 +1977,56 @@ class UseActualArgsFileAction(argparse.Action):
main(args_content.split("\r\n")[1:]) main(args_content.split("\r\n")[1:])
def install_programs(vs_already_set_up):
global temp_dir
temp_dir = tempfile.mkdtemp()
if (opts.lua or opts.luajit) and os.name == "nt" and not vs_already_set_up and using_cl():
setup_vs(opts.target)
start_dir = os.getcwd()
opts.location = os.path.abspath(opts.location)
if opts.downloads is not None:
opts.downloads = os.path.abspath(opts.downloads)
if opts.builds is not None:
opts.builds = os.path.abspath(opts.builds)
identifiers = get_installed_identifiers()
if not os.path.exists(os.path.join(opts.location, "bin")):
os.makedirs(os.path.join(opts.location, "bin"))
write_activation_scripts()
if opts.lua:
if "LuaJIT" in identifiers:
del identifiers["LuaJIT"]
if RioLua(opts.lua).update_identifiers(identifiers):
save_installed_identifiers(identifiers)
os.chdir(start_dir)
if opts.luajit:
if "lua" in identifiers:
del identifiers["lua"]
if LuaJIT(opts.luajit).update_identifiers(identifiers):
save_installed_identifiers(identifiers)
os.chdir(start_dir)
if opts.luarocks:
if LuaRocks(opts.luarocks).update_identifiers(identifiers):
save_installed_identifiers(identifiers)
os.chdir(start_dir)
remove_dir(temp_dir)
print("Done.")
def show_location(): def show_location():
if os.path.exists(opts.location): if os.path.exists(opts.location):
all_identifiers = get_installed_identifiers() all_identifiers = get_installed_identifiers()
@ -2096,54 +2146,7 @@ def main(argv=None):
parser.error("can't install both PUC-Rio Lua and LuaJIT") parser.error("can't install both PUC-Rio Lua and LuaJIT")
if opts.lua or opts.luajit or opts.luarocks: if opts.lua or opts.luajit or opts.luarocks:
global temp_dir install_programs(argv is not None)
temp_dir = tempfile.mkdtemp()
if (opts.lua or opts.luajit) and os.name == "nt" and argv is None and using_cl():
setup_vs(opts.target)
start_dir = os.getcwd()
opts.location = os.path.abspath(opts.location)
if opts.downloads is not None:
opts.downloads = os.path.abspath(opts.downloads)
if opts.builds is not None:
opts.builds = os.path.abspath(opts.builds)
identifiers = get_installed_identifiers()
if not os.path.exists(os.path.join(opts.location, "bin")):
os.makedirs(os.path.join(opts.location, "bin"))
write_activation_scripts()
if opts.lua:
if "LuaJIT" in identifiers:
del identifiers["LuaJIT"]
if RioLua(opts.lua).update_identifiers(identifiers):
save_installed_identifiers(identifiers)
os.chdir(start_dir)
if opts.luajit:
if "lua" in identifiers:
del identifiers["lua"]
if LuaJIT(opts.luajit).update_identifiers(identifiers):
save_installed_identifiers(identifiers)
os.chdir(start_dir)
if opts.luarocks:
if LuaRocks(opts.luarocks).update_identifiers(identifiers):
save_installed_identifiers(identifiers)
os.chdir(start_dir)
remove_dir(temp_dir)
print("Done.")
if opts.show: if opts.show:
show_location() show_location()