2014-07-01 06:12:18 +02:00
|
|
|
module Main where
|
2014-06-29 01:30:47 +02:00
|
|
|
|
2014-07-01 06:12:18 +02:00
|
|
|
import Data.Map as Map
|
|
|
|
import Nix.Eval
|
|
|
|
import Nix.Parser
|
2014-07-07 15:34:07 +02:00
|
|
|
import Nix.Pretty
|
2014-07-01 06:12:18 +02:00
|
|
|
import Nix.Types
|
2014-07-18 11:42:06 +02:00
|
|
|
import Text.PrettyPrint.ANSI.Leijen
|
2014-07-01 06:12:18 +02:00
|
|
|
import System.Environment
|
2014-07-18 11:42:06 +02:00
|
|
|
import System.IO
|
2014-06-29 19:11:29 +02:00
|
|
|
|
2014-06-29 01:30:47 +02:00
|
|
|
nix :: FilePath -> IO ()
|
|
|
|
nix path = do
|
2014-07-01 06:12:18 +02:00
|
|
|
res <- parseNixFile path
|
|
|
|
case res of
|
|
|
|
Failure e -> error $ "Parse failed: " ++ show e
|
|
|
|
Success n -> do
|
2014-07-18 11:42:06 +02:00
|
|
|
displayIO stdout $ renderPretty 0.4 80 (prettyNix n)
|
2014-07-01 06:12:18 +02:00
|
|
|
top <- evalExpr n (Fix (NVSet Map.empty)) -- evaluate top level
|
|
|
|
print top
|
2014-06-29 01:30:47 +02:00
|
|
|
|
|
|
|
main :: IO ()
|
|
|
|
main = do
|
|
|
|
[path] <- getArgs
|
|
|
|
nix path
|