Allow multiple arguments for exec commands
If you can have an alias like: ``` aliases: rails: app exec -p rails ``` Then `kamal rails db:migrate:status` will execute `kamal app exec -p rails db:migrate:status`. So this works, we'll allow multiple arguments `app exec` and `server exec` to accept multiple arguments. The arguments are combined by simply joining them with a space. This means that these are equivalent: ``` kamal app exec -p rails db:migrate:status kamal app exec -p "rails db:migrate:status" ``` If you want to pass an argument with spaces, you'll need to quote it: ``` kamal app exec -p "git commit -am \"My comment\"" kamal app exec -p git commit -am "\"My comment\"" ```
This commit is contained in:
@@ -566,6 +566,13 @@ class CliMainTest < CliTestCase
|
||||
end
|
||||
end
|
||||
|
||||
test "append to command with an alias" do
|
||||
run_command("rails", "db:migrate:status", config_file: "deploy_with_aliases").tap do |output|
|
||||
assert_match "docker exec app-console-999 rails db:migrate:status on 1.1.1.5", output
|
||||
assert_match "App Host: 1.1.1.5", output
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
def run_command(*command, config_file: "deploy_simple")
|
||||
with_argv([ *command, "-c", "test/fixtures/#{config_file}.yml" ]) do
|
||||
|
||||
Reference in New Issue
Block a user