Starting off a project from scratch, even using degit (which is one of my favorite tools--kudos!), the first think I typically have to do is a series of search-replace-all for the name of the project I am starting. It occurs to me that, aside from injecting a "project name" value into specific places, a basic template'd string variable might help automate the search-replace-all. Of course, there are plenty of other templating solutions for more sophisticated usages (no control flow or types/structuring needed here).
Maybe degit --name=my-new-project replaces {{name}} instances in files once written? Alternatively, I could see some sort of a global search-replace-all "action" supported. Wouldn't mind helping out in either case.
Hrm... you know what, that last option sounds like something I could probably whip into a PR. Keep it in degit.json to ensure it's a templating-specific pass and not project contents. Here's what it might look like:
// degit.json
[
{
"action": "search_replace",
"files": [ "one.txt", "two.json", "three.mjs" ], // e.g., only replace from known/desired plaintext files, a property of the template
"pattern": "\{\{project_name\}\}",
"replacement": "project_name"
}
]
...where "project_name" comes from a definition assigned at degit invocation:
$ degit [src] [dest] -Dproject_name=foobar
Hrm... Does this at least sound like something that wouldn't be rejected?
Starting off a project from scratch, even using
degit
(which is one of my favorite tools--kudos!), the first think I typically have to do is a series of search-replace-all for the name of the project I am starting. It occurs to me that, aside from injecting a "project name" value into specific places, a basic template'd string variable might help automate the search-replace-all. Of course, there are plenty of other templating solutions for more sophisticated usages (no control flow or types/structuring needed here).Maybe
degit --name=my-new-project
replaces{{name}}
instances in files once written? Alternatively, I could see some sort of a global search-replace-all "action" supported. Wouldn't mind helping out in either case.Hrm... you know what, that last option sounds like something I could probably whip into a PR. Keep it in
degit.json
to ensure it's a templating-specific pass and not project contents. Here's what it might look like:...where "project_name" comes from a definition assigned at
degit
invocation:Hrm... Does this at least sound like something that wouldn't be rejected?