{-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE TypeSynonymInstances #-} {-# LANGUAGE OverloadedStrings , RecordWildCards , AllowAmbiguousTypes #-} {-# LANGUAGE DeriveGeneric, DeriveAnyClass #-} module Uniform.Shake.Path where import Development.Shake import UniformBase import Uniform.Json getHashedShakeVersionP :: [Path r File] -> IO String getHashedShakeVersionP = getHashedShakeVersion . map toFilePath needP :: [Path r File] -> Action () needP = need . map toFilePath wantP :: [Path r File] -> Rules () wantP = want . map toFilePath ($%>) :: Path r File -> Action () -> Rules () p $%> a = toFilePath p %> const a ($&%>) :: [Path r File] -> Action () -> Rules () ps $&%> a = map toFilePath ps &%> const a orderOnlyP :: [Path r File] -> Action () orderOnlyP = orderOnly . map toFilePath