executable-path-0.0.3: Finding out the full path of the executable.



The documentation of System.Environment.getProgName says that

"However, this is hard-to-impossible to implement on some non-Unix OSes, so instead, for maximum portability, we just return the leafname of the program as invoked. Even then there are some differences between platforms: on Windows, for example, a program invoked as foo is probably really FOO.EXE, and that is what getProgName will return."

This library tries to fix this issue. It also provides some platform-specific functions (most notably getting the path of the application bundle on OSX). Supported operating systems:

  • Win32 (tested on Windows XP / x86 only)
  • Mac OS X (tested on Leopard / x86 only)
  • Linux
  • FreeBSD (tested on FreeBSD 6.4)
  • *BSD (with procfs mounted, plus fallback for certain shells; untested)
  • Solaris (untested, and probably works on Solaris 10 only)



data ScriptPath Source


Executable FilePath

it was (probably) a proper compiled executable

RunGHC FilePath

it was a script run by runghc/runhaskell


we are in GHCi


getScriptPath :: IO ScriptPathSource

An experimental hack which tries to figure out if the program was run with runghc or runhaskell or ghci, and then tries to find out the directory of the source (or object file).

GHC only.