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
: