Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Introduction

Eiipm is a fast and eligant plugin manager made in rust for Ewwii.

Installation

Download the latest release from:

https://github.com/Ewwii-sh/eiipm/releases/latest/

or build from source:

git clone https://github.com/Ewwii-sh/eiipm
cd eiipm
cargo build --release
# copy target/release/eiipm somewhere on your PATH

Basics

Ewwii supports plugins which allow extending the core functionality of the core engine. The plugins go into the plugins/ directory inside an ewwii configuration. For example, let's say you have an ewwii configuration at ~/.config/ewwii/. To add and use a plugin, you just have to create a plugins/ directory inside ~/.config/ewwii/ and place the plugin there.

~/.config/ewwii/plugins/
  |- libxyz.so 
  |- libabc.so

Things can get messy quickly when you have a lot plugins and you have to manually download and update them every time. This is where eiipm comes in. Just run eiipm init in the ~/.config/ewwii/ directory and the basic plugin manager setup, and the plugins/ directory will be automatically created. After this, all the plugins can be maintained either by editing the plugins.toml file or using the eiipm commands shown in later sections.

Commands

Eiipm offers many commands which users can use to manage plugins.

# Init plugin manager
eiipm init

# Add plugins
eiipm add user/repo
eiipm add user/repo --ref v1.2.0  # pin to a tag
eiipm add user/repo --prebuilt    # prefer prebuilt binary if available
eiipm add user/repo --build "cargo build --release" --artifact "target/release/libmy-plugin.so"

# Install plugins
eiipm install

# Update Plugins
eiipm update           # update all plugins
eiipm update user/repo # update only this plugin

# Remove plugins
eiipm remove user/repo

# List plugins
eiipm list

# Cleaning
eiipm clean        # remove untracked artifacts from 'plugins/'
eiipm cache-clean  # wipe the global source cache (~/.cache/eiipm/)

Authoring Pluign

If you are writing a plugin for ewwii and want it to be compatible with eiipm, then add a plugin.toml file at the root of your repository:

[plugin]
build = "cargo build --release"
artifact = "target/release/libmyplugin.so"

# optional: provide a prebuilt binary for users who don't want to build
[plugin.prebuilt]
url = "https://github.com/user/repo/releases/download/{version}/libmyplugin-{arch}-{os}.so"

Examples

Installing yucky-ewwii:

# initialize
eiipm init

# add yucky-ewwii
eiipm add yucky-ewwii --prebuilt

# install
eiipm install