Skip to content

Conversation

@kpenfound
Copy link
Contributor

Closes #180

Signed-off-by: kpenfound <kyle@dagger.io>

assemble dagger command in new step with output

Signed-off-by: kpenfound <kyle@dagger.io>

fixing some inline bash

Signed-off-by: kpenfound <kyle@dagger.io>

wrap conditional inputs in quotes

Signed-off-by: kpenfound <kyle@dagger.io>

use cat for heredoc script file

Signed-off-by: kpenfound <kyle@dagger.io>

missing space in heredoc

Signed-off-by: kpenfound <kyle@dagger.io>

add tab ignore and dagger shebang

Signed-off-by: kpenfound <kyle@dagger.io>

use toJson and jq to safely write the shell input to a file

Signed-off-by: kpenfound <kyle@dagger.io>

put DAGGER_COMMAND in a variable

Signed-off-by: kpenfound <kyle@dagger.io>

missing semicolon for the dagger command

Signed-off-by: kpenfound <kyle@dagger.io>

safely evaluate if shell is set

Signed-off-by: kpenfound <kyle@dagger.io>

extra > in shell file write

Signed-off-by: kpenfound <kyle@dagger.io>

add some logging

Signed-off-by: kpenfound <kyle@dagger.io>

strip extra newline from jq when shell is not set

Signed-off-by: kpenfound <kyle@dagger.io>

debugging

Signed-off-by: kpenfound <kyle@dagger.io>

toJSON and jq will send null instead of empty string with no input

Signed-off-by: kpenfound <kyle@dagger.io>

safely handle all inputs

Signed-off-by: kpenfound <kyle@dagger.io>

did i fix the wrong thing?

Signed-off-by: kpenfound <kyle@dagger.io>

change up the approach a bit for an easier diff

Signed-off-by: kpenfound <kyle@dagger.io>

fix shell test

Signed-off-by: kpenfound <kyle@dagger.io>

single quotes around shell input

Signed-off-by: kpenfound <kyle@dagger.io>

try with piped input

Signed-off-by: kpenfound <kyle@dagger.io>

try single quotes again

Signed-off-by: kpenfound <kyle@dagger.io>

debug

Signed-off-by: kpenfound <kyle@dagger.io>

debug

Signed-off-by: kpenfound <kyle@dagger.io>

fix shell test

Signed-off-by: kpenfound <kyle@dagger.io>

does shell emit a newline?

Signed-off-by: kpenfound <kyle@dagger.io>

remove the trailing newline if its in stdout

Signed-off-by: kpenfound <kyle@dagger.io>

break the trailing output test

Signed-off-by: kpenfound <kyle@dagger.io>

fix shell test

Signed-off-by: kpenfound <kyle@dagger.io>

missed !

Signed-off-by: kpenfound <kyle@dagger.io>

add comment about weird test

Signed-off-by: kpenfound <kyle@dagger.io>
run: |
target='${{ steps.test-shell.outputs.output }}'
result='hello world!
' # shell appears to emit an extra newline compared to call
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, I suspect this is because echo includes a newline (while the call to shykes/daggerverse just directly returns a string without the newline).

We could either use the same test for both, or just use -n on the echo.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah let me try with -n

version: "latest" # semver x.y.z
```
### `dagger shell`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We could make this the first option?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe, i suspect call will still be the standard approach in ci configurations because of the named args

Signed-off-by: kpenfound <kyle@dagger.io>
@kpenfound kpenfound merged commit 4e0ad19 into dagger:main Sep 16, 2025
8 checks passed
@kpenfound kpenfound deleted the shell branch September 16, 2025 17:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

✨ Improve ergonomics for dagger shell scripts

2 participants