Optionally support installing bzr.py script rather than bzr.bat on Windows
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Bazaar |
Confirmed
|
Low
|
Unassigned | ||
Breezy |
Triaged
|
Medium
|
Unassigned |
Bug Description
On Windows, if the Python executable is registered to handle the .py extension, 'bzr.py' can be executed by just typing 'bzr'. Not having the process wrapped inside a batch file gets rid of annoying "Terminate batch job (Y/N)" prompts when attempting to shut down a long running command with Ctrl+C.
Since one probably can't rely on the extensions being setup correctly a simple option for "setup.py install" to optionally pick this behaviour would come in handy.
Not sure about the binary installer, since it probably shoudn't just link the extension to the own private python interpreter that I assume it is using. If it uses some sort of .exe file it might not be affected by this issue at all.
Changed in bzr: | |
importance: | Undecided → Low |
status: | New → Confirmed |
tags: | added: win32 |
tags: | added: check-for-breezy |
Changed in brz: | |
status: | New → Triaged |
importance: | Undecided → Low |
importance: | Low → Medium |
tags: | removed: check-for-breezy |
A risk with this approach is that the Python for which bzr is being installed may not be the "default" Python. eg, consider someone who generally uses Python 2.6, but due to certain bzr related modules not being available for Python 2.6, he uses his Python 2.5 install for bzr, but sticks with 2.6 as his default for everything else. IIUC, your scheme would not work for such a user, while bzr.bat always will.
Yet another alternative is to use setuptools to create a 'bzr.exe' (possibly with a unique name) which simply wraps bzr.py - this is almost identical to how easy_install etc create easy install executables and sticks them in your Python install. Note this scheme is quite different than py2exe etc created executables - a setuptools executable is (basically) a copy of python.exe with the script itself tacked on the end and enough bootstrapping code to locate and execute that script.