-
-
Notifications
You must be signed in to change notification settings - Fork 466
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
[FEATURE] Plugin System #714
[FEATURE] Plugin System #714
Conversation
f9d2a91
to
4790f8e
Compare
Hi @FedericoAntoniazzi , thanks for your work on this! Looking forward to getting this into k3d :) |
Thank you, I'm going to fix the logger soon |
4790f8e
to
18b09f8
Compare
244c05b
to
0b5ba83
Compare
Creates 'k3d plugin' command and 2 subcommands: - `k3d plugin install`: Install a plugin - `k3d plugin remove`: Remove an installed plugin Both subcommands have yet to be implemented.
- Use `k3d plugin install owner/repo@tag` to install the `tag` release of the owner/repo github repository. `tag` could be omitted and latest will be used - The download location is $HOME/.k3d/plugins. - The release must contain executable files in the format pluginname-os-arch because k3d will look for compatible executable and download it
Introduce a struct representing a plugin entity and improve semantics
Enable the possibility to use `k3d plugin install < plugins.txt` in which plugins.txt is a list of plugins like: owner1/repo1 owner1/repo2@v1.2.3 Thanks also to @pspgt
0b5ba83
to
6927a74
Compare
I decided to take a step back and analyze the problem all together first. This PR has been closed because a new one will be opened really soon, we can use the code implemented here as know-how for the new PR. In the meantime I created a discussion for collecting ideas about plugin management: #741 . Contributions are highly appreciated 😃 |
What
Implement a plugin system into k3d.
Why
Resolve #304
Implications
Introduces new commands:
k3d plugin install PLUGIN
to install a plugink3d plugin list
to list installed pluginsk3d plugin remove PLUGIN
to remove an installed pluginPlugins will be taken from GitHub Releases and need the files names have to be like pluginname-os-arch because k3d will look for a compatible (same OS and arch of the system which k3d is running on) executable file and download it.
Roadmap
Future improvements
I'm going to work on this PR in my free time. In the meantime I would like to have feedbacks about code and maybe new ideas.