Expand variables for working directory and adjust Windows default path #212
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR fixes two bugs:
working_dir
, but are not expanded. Ifworking_dir
is set to, e.g,%USERPROFILE%\workdir
on Windows,menuinst
would create a literal%USERPROFILE%\workdir
path directory instead of%SYSTEMDRIVE%\Users\%USERNAME%\workdir
. Expand these variables to create the correct directory name.%HOMEPATH%
alone does not contain a drive, which can fail if%HOMEDRIVE%
is notC:
. This PR uses a default directory that contains the drive name.The second item is up for debate. The
menuinst
documentation describes thatworking_dir
defaults to the user's home directory. On Windows, there can be two different interpretations:%USERPROFILE%
or%HOMEDRIVE%%HOMEPATH%
.I decided to go with a precedent: os.path.expanduser checks if
%USERPROFILE%
is set and goes with%HOMEDRIVE%%HOMEPATH%
otherwise.pathlib.Path.home()
uses the same implementation, so I thinkmenuinst
should use the same definition as the Python ecosystem.Instead of using
os.path.expanduser("~")
, I am using the names of the variables though to make the shortcuts be resolved at runtime instead of hard-coding the directories.Closes #211
Checklist - did you ...
news
directory (using the template) for the next release's release notes?