CommandLine.template accepts NAME+=value as the program name
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 35/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- typescript
- Domain
- cli
Research direction
Start by reading CommandLine.template and its existing syntax tests, then check how ChildProcess.make uses the parsed template. Add coverage for NAME+=value in the program position and confirm it is rejected as an assignment requiring a shell. The issue author says they already have a fix and plan to open a PR, so check the issue for that work before starting.
Written by the indexing model from the issue text.
Description
CommandLine.template rejects a variable assignment in the program position, but only the NAME=value form. The append form NAME+=value, which bash and zsh (and macOS sh) also read as an assignment, is accepted and becomes the program name:
import { CommandLine } from "effect/process"
CommandLine.template`FOO=bar make`
// Failure: UnsupportedSyntax "A variable assignment needs a shell"
CommandLine.template`FOO+=bar make`
// Success: ["FOO+=bar", "make"]
In bash or zsh, FOO+=bar make runs make with FOO set. ChildProcess.make splits its template with CommandLine.template, so ChildProcess.make`FOO+=bar make` tries to run a program named FOO+=bar instead.
On v4/next-minor (unreleased, added in #9752). I have a small fix with a test and will open a PR.
- Dominant language
- TypeScript
- Stars
- 16.7k
- Forks
- 808
- Avg merge
- 11h 24m
- Merged PRs (30d)
- 848
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Effect-TS/effect
-
AI providers: tool results cannot carry images because non-string results are JSON.stringify'dPossibly taken @nmnmcc claimed this today. Open
Difficulty 5/5 Over a week Newbie friendliness 35/100
Effect-TS/effect#9857 · 2 comments ·
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 55/100
Maintainers usually reply within 1 day
-
`Schema.Literals`: add `omit`, the complement of `pick`Possibly taken @effect-bot claimed this 1 day ago. Openenhancement Needs Evaluation
Difficulty 3/5 1-2 days Newbie friendliness 35/100
Maintainers usually reply within 1 day
-
Support the `openapi-3.0` target in `Schema.toStandardJSONSchemaV1`Possibly taken @MichaelDeBoey claimed this 1 day ago. Openenhancement Needs Evaluation
Difficulty 4/5 3-5 days Newbie friendliness 48/100
Effect-TS/effect#9764 · 3 comments ·
Maintainers usually reply within 1 day
-
RpcClient.layerProtocolWorker: what's the equivalent of Piscina's abortable tasks? (terminate a stuck worker on interrupt, control respawn)Possibly taken @effect-bot claimed this 8 days ago. Open
Effect-TS/effect#9332 · 1 comment · 1 assignee ·
Maintainers usually reply within 1 day
All issues in Effect-TS/effect
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
braintrustdata/braintrust-sdk-javascript#2659 ·
Maintainers usually reply within 1 day
-
body-parser 2.3.0 in the published ai-dial-chat-bff image is vulnerable (CVE-2026-111181, HIGH)Possibly taken @illya-havsiyevych claimed this today. Openbug
Difficulty 1/5 1-3 hours Newbie friendliness 87/100
epam/ai-dial-chat#9566 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 83/100
Maintainers usually reply within 1 day
-
はさみアイコンを修正するOpenbug
Difficulty 1/5 Under an hour Newbie friendliness 68/100
-
area: core
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day