diff options
author | Daniel Gröber <dxld@darkboxed.org> | 2018-10-14 03:32:49 +0200 |
---|---|---|
committer | Daniel Gröber <dxld@darkboxed.org> | 2018-10-27 19:53:16 +0200 |
commit | 679c3145fb8fdc346880c205c9dde369e782feee (patch) | |
tree | e3d42ee09e5816448a33a212fadc63c540ca580e /src/CabalHelper/Compiletime/Types | |
parent | 807354f7dc6644fec15dfa1e534c69c14d219628 (diff) |
Add stack support
Diffstat (limited to 'src/CabalHelper/Compiletime/Types')
-rw-r--r-- | src/CabalHelper/Compiletime/Types/RelativePath.hs | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/CabalHelper/Compiletime/Types/RelativePath.hs b/src/CabalHelper/Compiletime/Types/RelativePath.hs new file mode 100644 index 0000000..bfc29bf --- /dev/null +++ b/src/CabalHelper/Compiletime/Types/RelativePath.hs @@ -0,0 +1,39 @@ +-- cabal-helper: Simple interface to Cabal's configuration state +-- Copyright (C) 2018 Daniel Gröber <cabal-helper@dxld.at> +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see <http://www.gnu.org/licenses/>. + +{-| +Module : CabalHelper.Compiletime.Types.RelativePath +License : GPL-3 +-} + +module CabalHelper.Compiletime.Types.RelativePath + ( RelativePath + , mkRelativePath + , unRelativePath + ) where + +import System.FilePath + +-- | A path guaranteed to be relative. The constructor is not exposed, use the +-- 'mkRelativePath' smart constructor. +newtype RelativePath = RelativePath { unRelativePath :: FilePath } + +-- | Smart constructor for 'RelativePath'. Checks if the given path is absolute +-- and throws 'UserError' if not. +mkRelativePath :: FilePath -> RelativePath +mkRelativePath dir + | isAbsolute dir = RelativePath dir + | otherwise = error "mkRelativePath: the path given was absolute!" |