Open Braunmann opened 1 year ago
Upon further discussion, it has been determined that the application should be as simple as possible, facilitating the quick start process. The application should perform the following actions:
For the first run:
For next runs:
Useful libs: https://www.npmjs.com/package/inquirer
Simplified Installation of Yagna and GFTP Libraries Using a Boilerplate Installer
The purpose of this task is to create a simplified installer for the Yagna and GFTP libraries. This task requires developing an installer that simplifies the installation process for end users.
The installer should have the following features:
Simple Installation Process: The installation of the libraries should be as simple as typing the command
npm i @golem-sdk/yagna -g
into the terminal.Support for Different Operating Systems: The installer should support MacOS, Windows, and UNX operating systems, allowing users on different platforms to easily install the libraries.
Yagna Version Selection During Installation: Users should be able to select a specific version of the libraries to install.
Yagna Version Management: The installer should allow users to change the version of the already installed libraries, which includes downgrade and upgrade operations.
Wallet Key Support: The installer should allow for the input of the user's current keys.
Key Generation and Configuration: In the absence of a key, the installer should be able to generate a new key and set it in the system parameters.
Adding and Managing Keys: Users should be able to add more keys and specify whether the key is for a production or testing environment.
It is important that the installer is as user-friendly and intuitive as possible, allowing even less technically advanced users to easily manage the Yagna and GFTP libraries. All functionalities should be thoroughly tested for correctness and compatibility with different operating systems.
Consideration a golem-cli tool
Additionally, consider building a CLI installer
npm i -g golem-cli
, and extend it with more functions such as generating a new predefined boilerplate project, e.g., Vue + Express. Then, key and version management, etc., can be maintained through the CLI. For example:golem-cli use 0.13
golem-cli key generate
golem-cli new-project
This would give us the possibility to develop one tool instead of multiplying different tools.