Distribution.Client.Main

cabal-install-3.12.1.0: The command-line interface for Cabal and Hackage.

Copyright | (c) David Himmelstrup 2005
License | BSD-like
Maintainer | lemmih@gmail.com
Stability | provisional
Portability | portable
Safe Haskell | None
Language | Haskell2010

Distribution.Client.Main

Description

Entry point to the default cabal-install front-end.

Since: 3.10.0.0

Synopsis

- main :: [String] -> IO ()

# Documentation

main :: [String] -> IO () #

Entry point

This does three things.

One, it initializes the program, providing support for termination signals, preparing console linebuffering, and relaxing encoding errors.

Two, it processes (via an IO action) response files, calling `expandResponse` in Cabal/Distribution.Compat.ResponseFile

Note that here, it splits the arguments on a strict match to "--", and won't parse response files after the split.

Three, it calls the `mainWorker`, which calls the argument parser, producing `CommandParse` data, which mainWorker pattern-matches into IO actions for execution.