The stack new command¶
stack new PACKAGE_NAME [--bare] [TEMPLATE_NAME] [-p|--param KEY:VALUE] [DIR(S)]
[--omit-packages] [--force] [--ignore-subdirs]
stack new creates a new Stack project for a package using a project template.
The project is created in a new directory named after the package, unless the
--bare flag is passed, in which case the project is created in the current
directory.
The --param <key>:<value> option specifies a key-value pair to populate a key
in a template. The option can be specified multiple times.
The arguments specifying directories and the --ignore-subdirs, --force and
--omit-packages flags are as for the stack init command.
Project templates¶
A project template file can be located in a repository named stack-templates
on GitHub, GitLab or Bitbucket; at a URL; or on the local file system.
Project template file names have the extension .hsfiles. The extension does
not need to be specified with stack new.
A project template file my-template.hsfiles in a repository
username/stack-templates on GitHub, GitLab or Bitbucket can be specified
with stack new as:
where <service> is one of github for GitHub,
gitlab for GitLab, or bitbucket for
Bitbucket.
The default service is GitHub, the default username is commercialhaskell and
the default project template name is new-template.
Examples¶
Create a project for package my-project in new directory my-project with the
default project template file:
Create a project for package my-package in the current directory with the
default project template file:
Create a project with the rio project template at the default repository:
Create a project with the mysql project template provided by the
yesodweb/stack-templates repository on GitHub:
Create a project with the my-template project template provided by the
username/stack-templates repository on Bitbucket:
Create a project with the my-template.hsfiles project template file at
https://example.com:
Create a project with the local project template file
<path_to_template>/my-template.hsfiles: