/winch

Primary LanguageRustGNU General Public License v3.0GPL-3.0

Table of contents 📔

Background

Installation

Cargo
  • Using crates.io

    cargo install winch
  • Using binstall

    cargo binstall winch

    Note ⚠️ This requires a working setup of rust/cargo & binstall.

Source  
git clone --depth=1 https://github.com/brodycritchlow/winch --branch=main
cd winch
cargo build --release 

Then go to release dir and ./winch or move the binary to your any $PATH for instant access from anywhere.

Winch usages

Help menu  
winch |install|remove| -h # check for help menu
Installing a pkg  
winch install <pkg> # use --force to overwrite already installed binary 
Removing a pkg  
winch remove <pkg> 
Install remote repository  

This requires a config.winch, you can find more here

winch install -remote_repository <link>

Hosting custom repo

  • Winch provies the following configuration, which can be overwritten by defining a config.winch file in your repository. Here is an example of a config:

      package
          remote = ""
    
      local
          home="/home/user/.local/winch/winch"
      
      install
          "cargo build"
    
  • Explanation

NAME DESCRIPTION DEFAULT
remote Remote repository URL for the project ""
home Where winch builds the project source. /home/user/.local/winch/winch
install Installation commands for the project cargo build
🎄 Tree view of the repo  
.
│
├── winch
│   └── config.winch # The config file for your chosen architecture

Progress

Installation

  • Winch grabs the source code for the specified package. #1
  • Winch grabs the source code for the remote repository package. #1
  • Winch uses the ./winch/config.winch to install and add binary to $PATH. #2
  • Winch adds the binary to config.winch['home'] for ease of access. #2
  • Winch uses specified mirrors through -mirror= option. #3

Removal

  • Winch finds the binary in config.winch['home'] and removes it.
  • Winch finds any folders that were created by the package and removes it. (--clean)

Documentation

  • Add a custom help screen for a user-friendly interface.
  • Add documentation for each command.
  • Add more in-depth documentation about remote repos.

Winch Other

  • Add a way to search through packages, that are indexed in winch.
  • Add a way to add package repos, that make it easier to install remote repos.