nixfromnpm-0.1.0.7: src/Main.hs
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE NoImplicitPrelude #-}
module Main where
import System.Environment (getArgs)
import System.Console.Docopt.NoTH
import NixFromNpm hiding (getArgs)
usageString :: String
usageString = "\
\Usage:\n\
\ nixfromnpm <packagename> [-o PATH] [options]\n\
\Options:\n\
\ -o, --output PATH Output files to this path\n\
\ --extend PATHS... Use nix expressions existing at these\n\
\ paths\n\
\ --registries REGISTRIES... Use only these registries\n\
\ --extra-registries REGISTRIES.. Use these in addition to default registry\n\
\ --no-cache Don't use existing cache\n\
\ --test Don't write expressions, just fetch\n\
\ --timeout SECONDS Seconds after which to fail fetching a\n\
\ package\n\
\ --node-version VERSION Use this version of node\n"
main :: IO ()
main = do
patterns <- parseUsageOrExit usageString
args <- parseArgsOrExit patterns =<< getArgs
let getText = map pack . getArgOrExitWith patterns args
getFlag = isPresent args . longOption
pkgName <- getText (argument "packagename")
path <- getText (longOption "output")
dumpPkgFromOptions $ (defaultOptions pkgName path) {
nfnoNoCache = getFlag "no-cache"
}