@@ -5,7 +5,8 @@ import System.Process
55import System.Directory
66import System.Exit
77import System.IO
8−import System.FilePath ((</>), addTrailingPathSeparator, takeFileName, takeDirectory, normalise)
8+import System.FilePath ((</>), addTrailingPathSeparator, takeFileName,
9+ takeDirectory, normalise, addExtension, hasExtension)
910import System.Directory (createDirectoryIfMissing, copyFile)
1011
1112import Util.System
@@ -118,7 +119,7 @@ cleanPkg fp
118119 rmIdx (pkgname pkgdesc)
119120 case execout pkgdesc of
120121 Nothing -> return ()
121− Just s -> rmFile $ dir </> s
122+ Just s -> rmExe $ dir </> s
122123
123124-- | Generate IdrisDoc for package
124125-- TODO: Handle case where module does not contain a matching namespace
@@ -231,7 +232,13 @@ rmIBC m = rmFile $ toIBCFile m
231232rmIdx :: String -> IO ()
232233rmIdx p = do let f = pkgIndex p
233234 ex <- doesFileExist f
234− when ex $ rmFile f
235+ when ex $ rmFile f
236+
237+rmExe :: String -> IO ()
238+rmExe p = do
239+ fn <- return $ if isWindows && not (hasExtension p)
240+ then addExtension p ".exe" else p
241+ rmFile fn
235242
236243toIBCFile (UN n) = str n ++ ".ibc"
237244toIBCFile (NS n ns) = foldl1' (</>) (reverse (toIBCFile n : map str ns))