diff --git a/named_python.bat b/named_python.bat deleted file mode 100644 index e24ea76..0000000 --- a/named_python.bat +++ /dev/null @@ -1,12 +0,0 @@ -@echo off - -rem Because Python is interpreted, when you look at the task manager process -rem list you'll see that every running python instance has the same name, -rem python.exe. This scripts helps you name the executables so they stand out. -rem For the time being this script doesn't automatically call your new exe, -rem you have to write a second command to actually run it. Batch doesn't have a -rem good way to pass "all arguments after %1" to the new program. - -set real=C:\Python\__latest\python.exe -set named=C:\Python\__latest\python-%1.exe -if not exist %named% (mklink /h %named% %real%) else (echo %named%) diff --git a/named_python.py b/named_python.py new file mode 100644 index 0000000..899e566 --- /dev/null +++ b/named_python.py @@ -0,0 +1,30 @@ +''' +Because Python is interpreted, when you look at the task manager process list +you'll see that every running python instance has the same name, python.exe. +This scripts helps you name the executables so they stand out. + +For the time being this script doesn't automatically call your new exe, you +have to write a second command to actually run it. I tried using +subprocess.Popen to spawn the new python with the rest of argv but the behavior +was different on Linux and Windows and neither was really clean. +''' +import os +import sys + +from voussoirkit import pathclass +from voussoirkit import winwhich + +def main(argv): + python = pathclass.Path(winwhich.which('python')) + + name = argv[0].strip() + + named_python = python.parent.with_child(f'python-{name}{python.extension.with_dot}') + if named_python.exists: + return 0 + + os.link(python.absolute_path, named_python.absolute_path) + return 0 + +if __name__ == '__main__': + raise SystemExit(main(sys.argv[1:]))