Skip to content

Fast `scoop search`, (WIP) full scoop replacement and tab completion

License

Notifications You must be signed in to change notification settings

Bios-Marcel/spoon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Spoon

A wrapper around scoop, aiming to be a full drop-in replacement, but still relying on the existing community work in form of buckets.

Highlighted Features

  • More thorough scoop search
  • Better performance (Varies from command to command)
  • Behaviour changes
    • spoon install app@version will now use an old manifest and hold the app, instead of generating a manifest (destined to be buggy)
  • Additional features
    • Tab completion for commands, flags and packages
    • Common command aliases

      For example no need to gues whether it's uninstall, rm or remove.

    • New commands
      • spoon shell, it's kinda like nix-shell
      • spoon versions to list all available manifests for an app (non autogenerated ones).

For a more detailed list of changes in comparison to scoop, check the table below.

Breaking Changes

  • No automatic spoon update calls during install, download, ...
  • The --global flag hasn't beren implemented anywhere and I am not planning to do so as of now. If there's demand in the future, I will consider.
  • Only kiennq/shim.exe is supported for shimming

    The older shim formats were included in scoop for backwards compatibility reasons. The solution is probably to simply reinstall all currently installed packages via scoop export and scoop import.

Manual Installation

  1. Add required buckets
scoop bucket add extras
scoop bucket add biosmarcel "https://github.com/Bios-Marcel/scoopbucket.git"
  1. Install spoon
scoop install spoon

If you want to test out the latest "in progress" stuff, try the spoon_pre package instead. It contains potentially unstable or half-finished features. Worst case it will install a package in an unfunctinal state, but won't cause any harm to your OS or other packages.

Updates

Note that self-updating is NOT YET possible. To update, please use scoop update spoon for now.

Runtime dependencies

While spoon is written in Golang, it has runtime dependencies needed for installing. Rewriting those would provide little to no value and cost a lot of value.

  • shim.exe - Included in Binary - MIT/Unlicense
  • ... TODO

CLI Progress

Progress overview for scoop command implementations. This does NOT include spoon native commands. It shows the current implementation status in terms of scoop compatibility and highlights the differences.

There are basically three levels of implementations (and the states inbetween):

  • Native

    Fully reimplemented in spoon, no usage of scoop code

  • Partially Native

    Some functionallity is spoon native, but scoop code is still used

  • Wrapper

    Only provides autocompletion and documentation, but scoop code does 100% of the execution work.

Command Implementation Type Changes
help Native
search Native * Performance improvements
* JSON output
* Search configuration
download Native * Support for multiple apps to download at once
cat Native * Alias manifest
* Allow getting specific manifest versions
status Native * --local has been deleted (It's always local now)
* Shows outdated / installed things scoop didn't (due to bugs)
depends Native (WIP) * Adds --reverse/-r flag
* Prints an ASCII tree by default
update Partially Native * Now invokes status after updating buckets
bucket Partially Native * bucket rm now supports multiple buckets to delete at once
install Native (WIP) * Installing a specific version doesn't generate manifests anymore, but uses an old existing manifest and sets the installed app to held.
uninstall Native (WIP) * Terminate running processes
info Wrapper
unhold Wrapper
hold Wrapper
list Wrapper
reset Wrapper
alias Planned Next
cleanup Planned Next
shim Planned Next
create
which
config
cache
prefix
home
export
import
checkup
virustotal