malxau / yori

Yori is a CMD replacement shell that supports backquotes, job control, and improves tab completion, file matching, aliases, command history, and more.
http://www.malsmith.net/yori/
MIT License
1.24k stars 31 forks source link

Yori in WinGet #43

Open rbeesley opened 4 years ago

rbeesley commented 4 years ago

I know there are already requests for Scoop and Chocolatey, but consider making Yori available in WinGet. This seems like a good candidate for the fledgling package management system.

malxau commented 4 years ago

This is something I've been watching too, although it won't work as-is and the next step might be to wait for a bit.

The strange thing about winget as a package manager is it's just invoking an application's installer. It wants this to be done silently, so it becomes a test of the installer's defaults. But, various issues raised here in the past have shown that people really care about these values - whether a path environment variable is changed, and what shortcuts are created, for example.

Linux package managers, and Chocolatey for that matter, don't have this problem because they have a defined location for programs to be installed. In Chocolatey's case, the location was selected when it was installed.

I'm hoping that things like https://github.com/microsoft/winget-cli/issues/140 will really enable this to work better. Not because of the zip file format, but because it forces the package manager to decide on the location and path configuration. Having done that, any arbitrary command line tools can be added without needing to make these choices themselves. In that environment, something like ypm becomes superseded by winget, since its typical use case is about installing/uninstalling/updating compressed archives of files into a known location.

malxau commented 4 years ago

I should add: I don't see a way to pass command line arguments to the installer in winget, but this is important to get a silent install to work. It appears to have a taxonomy of installer types so it knows what command line to generate. If the goal were to support winget in its current form, I think the best thing Yori can do is create a ysetup-silent.exe that has no UI but performs the same actions based on some predetermined defaults. This might be a fallback if winget decide not to address the consequences of zip file installation.

DrusTheAxe commented 4 years ago

@malxau

I don't see a way to pass command line arguments to the installer in winget, but this is important to get a silent install

It's supported. For instance see 7zip's YAML

Installers:
  - Arch: x64
    Url: https://www.7-zip.org/a/7z1900-x64.msi
    Sha256: A7803233EEDB6A4B59B3024CCF9292A6FFFB94507DC998AA67C5B745D197A5DC
    Switches:
      Silent: /quiet /norestart
      SilentWithProgress: /passive /norestart