marticliment / UniGetUI

UniGetUI: The Graphical Interface for your package managers. Could be terribly described as a package manager manager to manage your package managers
https://www.marticliment.com/unigetui/
MIT License
10.54k stars 344 forks source link

[ENHANCEMENT] CLI support #1556

Open choigawoon opened 8 months ago

choigawoon commented 8 months ago

Please confirm these before moving forward

Describe the improvement

is this support to run as CLI? i'd like to use this such as chocolatey, brew, and so on...

Describe how this improvement could help users.

use cases wingetui install --provider choco nodejs wingetui install --provider brew nodejs wingetui install --provider winget pwsh

marticliment commented 8 months ago

I mean, the idea of WingetUI was to provide to cli utilities a graphical interface...

choigawoon commented 8 months ago

I started by trying to create something similar on my own, but then I was fascinated when I saw that you had already created it. The needs you mentioned are well met, and it already works excellently and is very useful for the average user.

However, I have a different need. I am using this tool to create and distribute worker-specific JSON package sets. I want to make this process more convenient. If I had an extracted JSON file and a CLI to install it, it would be possible, which is why I started this conversation.

If I were to do this kind of work, where would be a good place to start? Once the work is completed, I would like to consider making a pull request.

marticliment commented 8 months ago

If I were to do this kind of work, where would be a good place to start?

This is a difficult question to answer. The approach I would do is that, after the main WingetUI Window has been loaded, a check is performed to see if a parameter (let's say --importPackages as an example) was passed, and then start an automated installation routine. However, this wouldn't have a console output, since MS Windows applications that run without a console window will never show any output, even if ran from a console. The progress would be reported in the window, kind of defeating the purpose of calling the command from a CLI...

What do you think?