{-# LANGUAGE QuasiQuotes #-} {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE OverloadedStrings #-} module Main where import qualified Data.Text.Encoding as T import Options.Applicative import System.Exit import NixFromNpm.Common hiding (getArgs, (<>)) import NixFromNpm.Options (NixFromNpmOptions, parseOptions, validateOptions) import NixFromNpm.Conversion.ToDisk (dumpPkgFromOptions) import NixFromNpm.Merge (mergeInto, MergeType(..), Source(..), Dest(..)) main :: IO () main = do let opts = info (helper <*> parseOptions) (fullDesc <> progDesc description <> header headerText) parsedOpts <- execParser opts validatedOpts <- validateOptions parsedOpts exitWith =<< dumpPkgFromOptions validatedOpts where description = concat ["nixfromnpm allows you to generate nix expressions ", "automatically from npm packages. It provides ", "features such as de-duplication of shared ", "dependencies and advanced customization."] headerText = "nixfromnpm - Create nix expressions from NPM"