Skip to content

Commit 90ddc5b

Browse files
committed
Merge pull request commercialhaskell#518 from markus1189/drop-trailing-slash
Drop trailing slashes in `stack path` output
2 parents a5fae18 + 3feb130 commit 90ddc5b

1 file changed

Lines changed: 14 additions & 12 deletions

File tree

src/main/Main.hs

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ import qualified Stack.Upload as Upload
6060
import System.Directory (canonicalizePath)
6161
import System.Environment (getArgs, getProgName)
6262
import System.Exit
63-
import System.FilePath (searchPathSeparator)
63+
import System.FilePath (searchPathSeparator,dropTrailingPathSeparator)
6464
import System.IO (hIsTerminalDevice, stderr, stdin, stdout, hSetBuffering, BufferMode(..))
6565
import System.Process.Read
6666

@@ -331,33 +331,34 @@ data PathInfo = PathInfo
331331
-- really it's mainly for the documentation aspect.
332332
--
333333
-- When printing output we generate @PathInfo@ and pass it to the
334-
-- function to generate an appropriate string.
334+
-- function to generate an appropriate string. Trailing slashes are
335+
-- removed, see #506
335336
paths :: [(String, Text, PathInfo -> Text)]
336337
paths =
337338
[ ( "Global stack root directory"
338339
, "global-stack-root"
339340
, \pi ->
340-
T.pack (toFilePath (configStackRoot (bcConfig (piBuildConfig pi)))))
341+
T.pack (toFilePathNoTrailing (configStackRoot (bcConfig (piBuildConfig pi)))))
341342
, ( "Project root (derived from stack.yaml file)"
342343
, "project-root"
343344
, \pi ->
344-
T.pack (toFilePath (bcRoot (piBuildConfig pi))))
345+
T.pack (toFilePathNoTrailing (bcRoot (piBuildConfig pi))))
345346
, ( "Configuration location (where the stack.yaml file is)"
346347
, "config-location"
347348
, \pi ->
348-
T.pack (toFilePath (bcStackYaml (piBuildConfig pi))))
349+
T.pack (toFilePathNoTrailing (bcStackYaml (piBuildConfig pi))))
349350
, ( "PATH environment variable"
350351
, "bin-path"
351352
, \pi ->
352353
T.pack (intercalate ":" (eoPath (piEnvOverride pi))))
353354
, ( "Installed GHCs (unpacked and archives)"
354355
, "ghc-paths"
355356
, \pi ->
356-
T.pack (toFilePath (configLocalPrograms (bcConfig (piBuildConfig pi)))))
357+
T.pack (toFilePathNoTrailing (configLocalPrograms (bcConfig (piBuildConfig pi)))))
357358
, ( "Local bin path where stack installs executables"
358359
, "local-bin-path"
359360
, \pi ->
360-
T.pack (toFilePath (configLocalBin (bcConfig (piBuildConfig pi)))))
361+
T.pack (toFilePathNoTrailing (configLocalBin (bcConfig (piBuildConfig pi)))))
361362
, ( "Extra include directories"
362363
, "extra-include-dirs"
363364
, \pi ->
@@ -371,23 +372,24 @@ paths =
371372
, ( "Snapshot package database"
372373
, "snapshot-pkg-db"
373374
, \pi ->
374-
T.pack (toFilePath (piSnapDb pi)))
375+
T.pack (toFilePathNoTrailing (piSnapDb pi)))
375376
, ( "Local project package database"
376377
, "local-pkg-db"
377378
, \pi ->
378-
T.pack (toFilePath (piLocalDb pi)))
379+
T.pack (toFilePathNoTrailing (piLocalDb pi)))
379380
, ( "Snapshot installation root"
380381
, "snapshot-install-root"
381382
, \pi ->
382-
T.pack (toFilePath (piSnapRoot pi)))
383+
T.pack (toFilePathNoTrailing (piSnapRoot pi)))
383384
, ( "Local project installation root"
384385
, "local-install-root"
385386
, \pi ->
386-
T.pack (toFilePath (piLocalRoot pi)))
387+
T.pack (toFilePathNoTrailing (piLocalRoot pi)))
387388
, ( "Dist work directory"
388389
, "dist-dir"
389390
, \pi ->
390-
T.pack (toFilePath (piDistDir pi)))]
391+
T.pack (toFilePathNoTrailing (piDistDir pi)))]
392+
where toFilePathNoTrailing = dropTrailingPathSeparator . toFilePath
391393

392394
data SetupCmdOpts = SetupCmdOpts
393395
{ scoGhcVersion :: !(Maybe Version)

0 commit comments

Comments
 (0)