cli
cli copied to clipboard
Implement a command for importing existing modules
Is your feature request related to a problem or issue you encountered? Please describe.
From 0.47 Cosmos SDK will support a better module wiring for the app.go and it should enable us to reliably implement a command to support importing existing module into an existing application
https://docs.cosmos.network/main/building-apps/app-go
We can use this task to explore how this command would be implemented
Describe the solution you'd like
I suggest to have the import command under scaffold namespace as it is literally a scaffolding command, we scaffold the import of a module.
Eventually it could be argued that the command should reflect the action being perform, if we consider "Ignite is importing a module", it could be ignite import
ignite scaffold import <module_name> <source> [config]
This will set in app.go the begin blocker, the end blocker and the module config:
{
Name: <name>,
Config: appconfig.WrapAny(&<source>.Module{
<config>
}),
},
It requires a bit more investigation of how config would be set
The source defines the value necessary to retrieve the module, it could be two value:
source: the repo URL where the module is locatedname: the name of the module inxdirectory (we should give the ability for the user to provide a different name for their own source for the module, so it could bemodule_nameby default but giving the ability through flags to provide a custom module name in the source repo)
We can support module import directly by name for selected set of module from Cosmos SDK, Ignite Modules and Ignite Chain
ignite s import claim
ignite s import monitoring-provider
ignite s import wasm