diff --git a/shake-ext.cabal b/shake-ext.cabal
--- a/shake-ext.cabal
+++ b/shake-ext.cabal
@@ -1,5 +1,5 @@
 name:                shake-ext
-version:             0.2.0.2
+version:             0.2.0.3
 synopsis:            Helper functions for linting with shake 
 description:         This package provides several linters out of the box, as well as functionality for building ATS source files with [shake](http://shakebuild.com/).
 homepage:            https://hub.darcs.net/vmchale/shake-ext
diff --git a/src/Development/Shake/ATS.hs b/src/Development/Shake/ATS.hs
--- a/src/Development/Shake/ATS.hs
+++ b/src/Development/Shake/ATS.hs
@@ -3,18 +3,26 @@
 module Development.Shake.ATS ( cgen
                              , cgenPretty
                              , cleanATS
+                             , patsHome
                              ) where
 
 import           Control.Monad              (filterM)
 import           Data.Either                (fromRight)
+import           Data.Maybe                 (fromMaybe)
 import           Development.Shake
 import           Development.Shake.FilePath
 import           Language.ATS
 import           System.Exit                (ExitCode (ExitSuccess))
 
+patsHome :: Action String
+patsHome = fromMaybe "/usr/local/lib/ats2-postiats-0.3.8" <$> mh
+    where mh = fmap (++ "/.atspkg/compiler/") <$> getEnv "HOME"
+
+-- TODO install the whole compiler?
 atsCommand :: CmdResult r => String -> String -> Action r
-atsCommand sourceFile out = command atsArgs "patsopt" ["--output", out, "-dd", sourceFile, "-cc"]
-    where atsArgs = [EchoStderr False, AddEnv "PATSHOME" "/usr/local/lib/ats2-postiats-0.3.8"]
+atsCommand sourceFile out = do
+    let atsArgs = [EchoStderr False, AddEnv "PATSHOME" "/usr/local/lib/ats2-postiats-0.3.8"]
+    command atsArgs "patsopt" ["--output", out, "-dd", sourceFile, "-cc"]
 
 cleanATS :: Rules ()
 cleanATS =
@@ -45,6 +53,8 @@
         let ats = fromRight mempty . parseATS . lexATS $ contents
         deps <- filterM doesFileExist $ getDependencies ats
         need deps
+        {- forM_ deps $ \dep ->  -}
+            {- copyFile dep (patsHome ++ "/" ++  -}
 
 -- | This uses @pats-filter@ to prettify the errors.
 cgenPretty :: Rules ()
diff --git a/src/Development/Shake/FileDetect.hs b/src/Development/Shake/FileDetect.hs
--- a/src/Development/Shake/FileDetect.hs
+++ b/src/Development/Shake/FileDetect.hs
@@ -7,10 +7,11 @@
     , getHs
     , getHappy
     , getAlex
+    , getShell
     ) where
 
-import           Data.Semigroup ((<>))
-import Development.Shake
+import           Data.Semigroup    ((<>))
+import           Development.Shake
 
 getYml :: Action [FilePath]
 getYml = getAll ["yaml", "yml", "yamllint"]
@@ -26,6 +27,9 @@
 
 getAlex :: Action [FilePath]
 getAlex = getAll ["x"]
+
+getShell :: Action [FilePath]
+getShell = getDirectoryFiles "" ["//*.sh"]
 
 get :: String -> Action [FilePath]
 get = getAll . pure
diff --git a/src/Development/Shake/Linters.hs b/src/Development/Shake/Linters.hs
--- a/src/Development/Shake/Linters.hs
+++ b/src/Development/Shake/Linters.hs
@@ -8,7 +8,7 @@
                                  , module Development.Shake.FileDetect
                                  ) where
 
-import Development.Shake
+import           Development.Shake
 import           Development.Shake.FileDetect
 
 checkFiles :: String -> [FilePath] -> Action ()
