Refactor meta command. `meta is used in various command in afx. It's basically for embedding to each subcommand to access meta information (e.g. env, packages, state etc...). In this PR, it has been moved to outside of each command. Concretely, will be moved to rootCmd.
By this, each commands doesn't have to run meta.init() with inside of its own. Each command can access meta via its receiver. Also, each command can continuously embed meta into its own subcommand to pass meta to each command methods.
By taking the meta.init() method out of each commands, afx can become to get meta information at root command level. meta has a lot of information to run afx command, so these data can be used before running each command. For example, state data. It can be passed to each command as its valid args.
Thanks to this, each command completion feature will be more powerful. Other benefits also will be appeared soon.
WHAT
Refactor meta command. `meta is used in various command in afx. It's basically for embedding to each subcommand to access meta information (e.g. env, packages, state etc...). In this PR, it has been moved to outside of each command. Concretely, will be moved to rootCmd.
By this, each commands doesn't have to run
meta.init()
with inside of its own. Each command can accessmeta
via its receiver. Also, each command can continuously embedmeta
into its own subcommand to passmeta
to each command methods.Before:
After:
WHY
By taking the
meta.init()
method out of each commands, afx can become to get meta information at root command level.meta
has a lot of information to run afx command, so these data can be used before running each command. For example,state
data. It can be passed to each command as its valid args.Thanks to this, each command completion feature will be more powerful. Other benefits also will be appeared soon.