Looks for scaffolds for the :otp_app base on its project config, completely ignoring local user scaffold installs. Uses namespace for apps with multiple scaffolds.
Returns path to a file, directory, or tarball so is suitable for consumption by Mix.Generator.create_files.
Looks for scaffolds for :otp_app first in local user installs, and falls back to default defined in :otp_app project config. Uses namespace for apps with multiple scaffolds.
Returns path to a file, directory, or tarball so is suitable for consumption by Mix.Generator.create_files.
Namespaces are allowed to be relative file paths for namespace heirarchies.
Constructs a file, directory, or tarball into target_dir, using nice Generator.create_file logging and overwrite prompts.
Opts include :force to not prompt on overwrites, and :eex to enable EEx interpolation.
Same as current implementation, but now checks for a :eex opt during processing.
If :eex is a list, it will use that as a binding during interpolation.
Installs file, folder, or tarball scaffolds from local path or remote uri into ~/.mix/scaffolds/*
Remote uris must point to a single file or tarball; alternatively they can be git uris and will be installed as a folder.
Tarballs are left alone during install: they're only extracted during the actual file generation step.
Lists installed scaffolds
Removes installed scaffold.
Providers that want to distribute scaffolds as tarballs can use this task.
This mechanism should be preferred because it generates tarballs with the expected paths for consumption by Mix.Local.get_scaffold.
It builds the tarball from the exact same :scaffold project configuration as producers.
The target :otp_app is specified via :scaffold_app. If not provided, it just uses the project :app name, making all producers able to run this command on their default templates out of the box.
Alternatively, multiple otp_apps can be targeted by providing a Keyword.t scaffold configuration of otp apps and scaffold configurations.
This is the default behaviour of a scaffold with eex enabled, as phoenix likely will always do. As proposed there is no way to disable this per file.
This is the default behaviour of a scaffold with eex disabled. In order to emulate old phoenix behaviour, these should be rewritten with eex inside of them using eex quotations: <%% "<%= raw eex%>" %>
This behaviour is totally unsupported by scaffolds, which operates entirely on mkdirp!ing a filepath Dir.name before writing to it. This is probably fine: scaffolds should include a .gitkeep in their stead.
This is the only behaviour totally unsupported with no workaround, used exactly once in phoenix for css.
Keyword.fetch(:phoenix) should read Keyword.fetch(:app)