The config file ($VOLTPATH/config.toml) should be able to contain also plugin list.
We can think that config.toml is a package.json in Node.js.
It records package's list too. and config.toml can contain locked version range too if specified.
New subcommand: volt up
will install/uninstall/upgrade plugins written in config.toml.
config.toml can also include disabled flags, profiles and its plugins list, and so on.
After volt up is added:
volt get adds specified plugins to config.toml
- And vice versa,
volt rm removes plugins from config.toml
What should be included in config.toml?
We can choose what should be included in config.toml from lock.json structure (however each value is slightly different).
Here is the items.
current_profile_name (string): current profile name
plugins (array[object])
type (string): plugin resource type. git (default) or static is allowed
path (string): plugin resource path like tyru/caw.vim, github.com/tyru/caw.vim, https://github.com/tyru/caw.vim
version (string): Git hash or range (like git diff argument)
profiles (array[object])
name (string): profile name
path (array[string]): same format as plugins.path
"volt up" should reuse "volt build" command?
Yes, the command name is inspired from vagrant ;)
It is short because it should become the command users run very often.
But what is up?
And if volt up is added, volt build is mostly useless.
So volt build should implement this feature without adding a new command, or adding subcommand to volt build?
Ref
vgo may have smarter algorithm and interface.
We can borrow the idea from it :)
P.S.
Thanks @thinca for requesting the abstract of this feature :)
The config file (
$VOLTPATH/config.toml) should be able to contain also plugin list.We can think that config.toml is a package.json in Node.js.
It records package's list too. and config.toml can contain locked version range too if specified.
New subcommand: volt up
will install/uninstall/upgrade plugins written in config.toml.
config.toml can also include disabled flags, profiles and its plugins list, and so on.
After
volt upis added:volt getadds specified plugins to config.tomlvolt rmremoves plugins from config.tomlWhat should be included in config.toml?
We can choose what should be included in config.toml from lock.json structure (however each value is slightly different).
Here is the items.
current_profile_name(string): current profile nameplugins(array[object])type(string): plugin resource type.git(default) orstaticis allowedpath(string): plugin resource path liketyru/caw.vim,github.com/tyru/caw.vim,https://github.com/tyru/caw.vimversion(string): Git hash or range (likegit diffargument)profiles(array[object])name(string): profile namepath(array[string]): same format asplugins.path"volt up" should reuse "volt build" command?
Yes, the command name is inspired from vagrant ;)
It is short because it should become the command users run very often.
But what is
up?And if
volt upis added,volt buildis mostly useless.So
volt buildshould implement this feature without adding a new command, or adding subcommand tovolt build?Ref
vgo may have smarter algorithm and interface.
We can borrow the idea from it :)
P.S.
Thanks @thinca for requesting the abstract of this feature :)