packages feed

nixfromnpm-0.10.1: src/Main.hs

{-# 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"