The highly customizable CLI! So, what makes this CLI different from any other CLI? Well of course this CLI helps me and potentially you with using other packages I have made. This CLI has plugins.
Once you install the CLI, it features a folder called "Plugins", and in here is an example of a plugin called MyPlugin. And if you go into bin/index.js
you'll find inside the pre()
function a line that says dvcli_plugin.LoadPlugin("MyPlugin")
, and if you check the MyPlugin folder, the system should be self explanatory. Meaning with this CLI, you make plugins that can make the CLI behave in any way!
This feature isn't done, you need to be patient.
dvcli was tested on node v0.10.48, v0.12.18, v4.9.1, v5.12.0, v6.17.1, v7.10.1, v8.17.0, v9.11.2, v10.24.1, v11.15.0, v12.0.0, v12.22.12, v18.16.0, and v20.2.0. The earliest working version was on v12.0.0, will it work on something like the latest 11 major version? The answer is actually no, one of the packages on dvcli, yargs-parser requires Node 12, and I found out that everything else works from there. I will now be testing from Node v12.0.0 to Node v20.2.0 unless I get rid of yargs-parser.
Testing is not done unless there is a good reason to, e.g: changing processing commands or major version updates. This current testing data is from 1.1.0-prerelease
dvcli is a CLI, obviously 😁, so it's best to install it globally. To do this, run npm i -g devitzer-general-cli
, I know it's long. It will warn you if you have less than node 12.0.0, and more than 20.2.0 since it's untested. You must use atleast 12.0.0, this isn't an exaggeration. If you try to use anything less, dvcli will crash on every single command you try to use.
This CLI is not finished, so it has very few commands.
If you see ~, it means this doesn't work properly yet.
dvcli
: Gives information on each command!~
Example: dvcli
dvcli debug <debug>
: Tests many different packages I use during development.
debug arg: One arguement called --debug, needs to be a string.
Example: dvcli debug --debug="hello world!"
dvcli metadata
: Asks a series of questions to generate a metadata.json for your plugin.