Add pre-commit hook that enforces ormolu formatting

This commit is contained in:
David Pätzel 2019-10-22 16:42:16 +02:00
parent c5dca4b33a
commit 9866603dbe
5 changed files with 23 additions and 9 deletions

17
pre-commit Executable file
View File

@ -0,0 +1,17 @@
#!/usr/bin/env bash
tmp=$(mktemp)
find src/ -type f | while read f; do
if ! ormolu --mode check "$f"; then
echo "$f is not properly formatted"
echo 1 > "$tmp"
fi
done
if test "X1" = "X$(cat "$tmp")"; then
exit 1
fi

View File

@ -2,11 +2,11 @@
{-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE OverloadedStrings #-}
import Protolude hiding (for)
import Pretty
import WS19
import Pipes import Pipes
import Pretty
import Protolude hiding (for)
import System.IO import System.IO
import WS19
mkPop = population 100 (I prios []) mkPop = population 100 (I prios [])
@ -16,7 +16,7 @@ main = do
let t = fromMaybe 100 $ headMay args >>= readMaybe let t = fromMaybe 100 $ headMay args >>= readMaybe
hSetBuffering stdout NoBuffering hSetBuffering stdout NoBuffering
pop <- mkPop pop <- mkPop
pop' <- runEffect $ for (run 2 1 (5/100) pop (steps t)) log pop' <- runEffect $ for (run 2 1 (5 / 100) pop (steps t)) log
(res, _) <- bests 5 pop' (res, _) <- bests 5 pop'
sequence_ $ format <$> res sequence_ $ format <$> res
where where

View File

@ -1,11 +1,8 @@
{-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE NoImplicitPrelude #-}
module Pretty where module Pretty where
import Protolude import Protolude
class Pretty a where class Pretty a where
pretty :: a -> Text pretty :: a -> Text

View File

@ -28,7 +28,7 @@ instance Pretty (Maybe Topic) where
pretty (Just t) = t pretty (Just t) = t
pretty Nothing = "Kein Thema" pretty Nothing = "Kein Thema"
newtype Priorities = P { unP :: [(Student, [(Topic, Int)])] } newtype Priorities = P {unP :: [(Student, [(Topic, Int)])]}
deriving (Eq, Show) deriving (Eq, Show)
instance Arbitrary Priorities where instance Arbitrary Priorities where

View File

@ -2,9 +2,9 @@
module Main where module Main where
import qualified GA
import Protolude import Protolude
import qualified Seminar import qualified Seminar
import qualified GA
main :: IO () main :: IO ()
main = do main = do