How to get the cwd in a shell-dependend format?
Question: Since I'm using both Windows' `cmd.exe` and
[msysgit](/questions/tagged/msysgit "show questions tagged 'msysgit'")'s
`bash`, trying to access the Windows-path output by `os.getcwd()` is causing
Python to attempt accessing a path starting with a drive letter and a colon,
e.g. `C:\`, which `bash` correctly determines an invalid unix-path, which
instead should start with `/c/` in this example. But how can I modify a
Windows-path to become its [msys](/questions/tagged/msys "show questions
tagged 'msys'")-equivalent [iff](https://en.wikipedia.org/wiki/If_and_only_if
"if and only if") the script is running within `bash`?


Answer: Ugly but should work unless you create an environment variable `SHELL=bash`
for Windows:

    
    
    def msysfy(dirname):
        import os
        try:
            shell = os.environ['SHELL']
        except KeyError:  # by default, cmd.exe has no SHELL variable
            shell = 'win'
        if os.path.basename(shell)=='bash' and dirname[1] == ':':
            return '/' + dirname[0].lower() + '/' + dirname[2:]
            # don't worry about the other backslashes, msys handles them
        else:
            return dirname
    

