Skip to content

Latest commit

 

History

History
71 lines (52 loc) · 2.39 KB

IDEAS.md

File metadata and controls

71 lines (52 loc) · 2.39 KB

Ideas

Things I want to implement different to how they are in scoop.

Cleanup

WIP:

  • Cleanup with retention count

    Scoop allows you to cleanup a single app or all apps, but it doesn't allow you to specify a retention count. This is a problem, because you might want to keep the last 3 versions of an app. This is especially useful for executing some kind of cleanup task.

    So you'd execute:

    spoon cleanup --retention 3 vscode
    spoon cleanup --retention 3 *

    While the default would be to keep the last 2 versions, as itd always wise to keep the last version and the one before that. You may aswell force it to 1 though.

    • No plan to support global apps for now.

Install / Update

WIP

Scoop wastes time by not parallelizing the installation of apps with the download of installation files.

Since scoop probably does a smart thing or two when installing, one way to do this in a way to not replicate too much of scoops logic, would be to populate the cache and then trigger scoop install.

Installing specific versions

Scoop currently allows something such as

scoop install tokei@12.1.1

This creates an autogenerated manifest in workspaces. This manifest is referred to in 12.1.1/install.json. This has the downside that you can't reset the pacakage back to its bucket version easily (or its not apparent how) and the package is neither hold nor can it be unhold.

I've tested manually changed the install.json to refer to the bucket version again and holding the package. Therefore, this should also be possible programmatically and we can make proper use of the hold mechanism.

It's also possible to check old versions of the manifests via git. So if we can find an old version, we can use that, otherwise generate a manifest and pray.

Scoop also auto installs with auto generated manifests without asking the user. While there's a warning, the only way to interfere with the installation, is to be fast enough, with Ctrl-C.

Downloading

Downloading should use up as much bandwidth as possible. If we download from URL 1 with 2Mbit/s, but are on a 100Mbit/s connection, we should download from more than one URL at once. This prevents unnecessary wait for a single download.

Uninstalling

Prompt for closing running instances and add -y / --yes for automatically confirming such questions and go defensive routes where not destructive.