38 lines
921 B
Python
Executable File
38 lines
921 B
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
from os import environ, execvp, chdir, getcwd
|
|
from os.path import exists, join, dirname
|
|
from sys import version_info, argv
|
|
|
|
def can_import(module_name):
|
|
try:
|
|
__import__(module_name)
|
|
except ImportError:
|
|
return False
|
|
else:
|
|
return True
|
|
|
|
def is_python_3():
|
|
return version_info[0] >= 3
|
|
|
|
def is_current_version(file_name):
|
|
version = map(int, file_name.replace("python", "").split("."))
|
|
return version == list(version_info)[:2]
|
|
|
|
def launch_alternative(alternatives):
|
|
for alternative in alternatives:
|
|
if not is_current_version(alternative):
|
|
for root in environ["PATH"].split(":"):
|
|
if exists(join(root, alternative)):
|
|
execvp(alternative, [alternative] + argv)
|
|
|
|
def move_to_executable():
|
|
chdir(dirname(argv[0]))
|
|
|
|
if "--go-to-dir" in argv:
|
|
move_to_executable()
|
|
|
|
from NS import NS
|
|
|
|
NS().run()
|