-
Notifications
You must be signed in to change notification settings - Fork 95
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: refactor cli parsing #1200
base: main
Are you sure you want to change the base?
feat: refactor cli parsing #1200
Conversation
9f211cf
to
5ea6b14
Compare
d5b2a85
to
181583b
Compare
79011b7
to
3f21783
Compare
4f1e4aa
to
a471cac
Compare
Signed-off-by: Shubharanshu Mahapatra <shubhum@amazon.com>
a471cac
to
f52ab39
Compare
return args | ||
} | ||
|
||
func (ncc *nerdctlCommandCreator) createDockerCompatRunCmd() *cobra.Command { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: can we move these create* functions to their own file or package?
@@ -98,6 +263,22 @@ func (nc *nerdctlCommand) runAdapter(cmd *cobra.Command, args []string) error { | |||
return nc.run(cmd.Name(), args) | |||
} | |||
|
|||
func (nc *nerdctlCommand) runDockerCompatInspectAdapter(cmd *cobra.Command, args []string) error { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All of these functions are only called once each. Are they here just for easier unit testing?
Issue #, if available:
Description of changes:
For macos and windows and OS specific command prefix is attached to execute in the vm plane. As there is a vm plane, environment variables and credentials needs to be passed from the host to the vm. The limactl plane doesnt automatically handle this [Issue: https://github.com/lima-vm/lima/issues/1419]. To address this, the current finch handler used to parse or env flags [‘-e’,‘—env’,‘—env-file’], consolidated it and added it. For windows, the host path need to be translated to equivalent mount paths in the wsl environment.
In the proposed design, For macOS and windows we parse all env flags and add those env variables in the prefix of the limactl command. Here we dont modify the ordering or the contents of the command args reducing the complexity and chances of error getting introduced.
For windows path we do an inplace substitution based on regex pattern search across the args. This involves modifying the command args as windows to wsl path translation support for limactl shell execution is not provided. We use regexp to do a pattern match in substring of args split by separators. To validate this, we would rely on unit test and e2e tests.
Testing done:
TODO:
Devcontainers qualification tests.
License Acceptance
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.