Add aliases to Kamal
Aliases are defined in the configuration file under the `aliases` key. The configuration is a map of alias name to command. When we run the command the we just do a literal replacement of the alias with the string. So if we have: ```yaml aliases: console: app exec -r console -i --reuse "rails console" ``` Then running `kamal console -r workers` will run the command ```sh $ kamal app exec -r console -i --reuse "rails console" -r workers ``` Because of the order Thor parses the arguments, this allows us to override the role from the alias command. There might be cases where we need to munge the command a bit more but that would involve getting into Thor command parsing internals, which are complicated and possibly subject to change. There's a chance that your aliases could conflict with future built-in commands, but there's not likely to be many of those and if it happens you'll get a validation error when you upgrade. Thanks to @dhnaranjo for the idea!
This commit is contained in:
committed by
Donal McBreen
parent
f48987aa03
commit
b8af719bb7
20
test/fixtures/deploy_with_aliases.yml
vendored
Normal file
20
test/fixtures/deploy_with_aliases.yml
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
service: app
|
||||
image: dhh/app
|
||||
servers:
|
||||
web:
|
||||
- 1.1.1.1
|
||||
- 1.1.1.2
|
||||
workers:
|
||||
hosts:
|
||||
- 1.1.1.3
|
||||
- 1.1.1.4
|
||||
console:
|
||||
hosts:
|
||||
- 1.1.1.5
|
||||
registry:
|
||||
username: user
|
||||
password: pw
|
||||
aliases:
|
||||
info: details
|
||||
console: app exec --reuse -p -r console "bin/console"
|
||||
exec: app exec --reuse -p -r console
|
||||
Reference in New Issue
Block a user