module Ribosome.App.ProjectPath where

import Path (Abs, Dir, Path, Rel, (</>))
import Path.IO (getCurrentDir)

import Ribosome.App.Error (RainbowError, ioError)

cwdProjectPath ::
  Members [Stop RainbowError, Embed IO] r =>
  Bool ->
  Path Rel Dir ->
  Sem r (Path Abs Dir)
cwdProjectPath append name = do
  cwd <- stopTryIOError err getCurrentDir
  pure (if append then cwd </> name else cwd)
  where
    err =
      ioError ["Could not determine current directory"]