Repository files navigation

Simple Script Installer

repocard

Simple Script Installer (ssi) is a lightweight Bash installer for binaries, man pages, shell completions, and startup snippets. It is designed for script authors who want a simple, semantic setup script for their users, without re-implementing common installation decisions like target directories, root vs non-root behavior, or handling local vs remote sources.

This README covers two usage patterns:

  1. Developers (primary use case)
  2. Users (manual use)

Usage for Developers

The easiest way to use ssi is to provide a setup (and optionally an uninstall) script in your repository. The script downloads ssi to a temporary directory and uses its commands to install your files from your repository (or any URL).

For example:

#!/usr/bin/env bashset -euo pipefail
tmpdir="$(mktemp -d)"trap'rm -rf "$tmpdir"' EXIT
# Download ssi to a new temp dircd"$tmpdir"
wget https://github.com/DannyBen/ssi/releases/download/v0.1.10/ssi
chmod +x ssi
# Use it to download and install files
./ssi install bin https://anywhere.com/your-cli
./ssi install man https://anywhere.com/docs/your-cli.1
your-cli show-completion | ./ssi install completion your-cli
./ssi install startup --shell bash https://anywhere.com/your-cli-startup.sh

If you wish to download the latest version of ssi, use this URL:

wget https://github.com/DannyBen/ssi/releases/latest/download/ssi

Releases are immutable.

Usage for Users

Install

Download the ssi script and put it in your PATH.

You can do so programmatically by running something like this:

wget https://github.com/DannyBen/ssi/blob/master/ssi
sudo install -m 755 ssi /usr/local/bin/

Bash Completion for ssi

If you want completions for ssi itself, you can use ssi itself to download and install its own bash completion script:

ssi install completion https://raw.githubusercontent.com/DannyBen/ssi/refs/tags/v$(ssi --version)/completions/ssi --shell bash

Technical Details

ssi has four sets of commands:

Command GroupPurpose
installInstalling executables, man pages, completion scripts and startup scripts
uninstallUninstalling executables, man pages, completion scripts and startup scripts
testChecking for the presence of executables, man pages, completion scripts and startup scripts
Other UtilitiesGeneral purpose download, logging, bootstrapping of setup scripts.

Install Commands

All install commands accept source in one of these forms:

  • URL
  • Local file
  • stdin

ssi install bin Install Targets

  • System target /usr/local/bin when running as root, when the system target is writable, or when sudo is usable.
  • Otherwise user target $HOME/.local/bin.

ssi install man Install Targets

  • System target /usr/local/share/man when running as root, when the system target is writable, when the system target parent directory is writable, or when sudo is usable.
  • Otherwise user target ${XDG_DATA_HOME:-$HOME/.local/share}/man.
  • The final install path is <target>/man<section> where section defaults to 1 (for example man1/tool.1).

ssi install completion Install Targets

  • System target is selected when running as root, when the system target is writable, when the system target parent directory is writable, or when sudo is usable. It varies by shell:
  • System Bash: /usr/local/share/bash-completion/completions.
  • System Zsh: /usr/local/share/zsh/site-functions.
  • System Fish: /usr/local/share/fish/vendor_completions.d.
  • Otherwise user target is selected, and it also varies by shell:
  • User Bash: ${XDG_DATA_HOME:-$HOME/.local/share}/bash-completion/completions.
  • User Zsh: ${XDG_DATA_HOME:-$HOME/.local/share}/zsh/site-functions.
  • User Fish: ${XDG_DATA_HOME:-$HOME/.local/share}/fish/vendor_completions.d.

ssi install startup Install Targets

  • The --shell flag selects the target shell (default: bash).
  • Use --strict to fail if the shell startup location is missing.
  • Bash installs to ~/.bashrc.d.
  • Zsh installs to ~/.zshrc.d (or $ZDOTDIR/.zshrc.d when ZDOTDIR is set).
  • Fish installs to ${XDG_CONFIG_HOME:-$HOME/.config}/fish/conf.d.
  • ssi does not edit startup files; for Bash and Zsh, it warns if the *.d directory does not appear to be sourced.

Uninstall Commands

All uninstall commands assume ownership over all occurrences of the file they try to uninstall, so they attempt removal from both user directories and system directories.

Test Commands

Test commands check if a target is installed. By default, they check the single path that install would choose in the current environment.

Use --all to check all possible install paths and report each one. The command succeeds if any path contains the target, and warns if duplicates are found.

The primary use cases for this command are:

  • Run setup validation tests in CI
  • Check if a file is installed in more than one path

Utility Commands

  • ssi download - use it to download any file using either curl or wget (whichever is available)
  • ssi log - use it to output messages in the same format as the internal ssi functions.
  • ssi bootstrap - use it to output a sample scirpt that you can use for your setup script.

Examples

RepositorySetup ScriptUninstall Script
DannyBen/rushsetupuninstall
DannyBen/alfsetupuninstall
DannyBen/fuzzycdsetupuninstall
DannyBen/opcodesetupuninstall
DannyBen/git-changelogsetupuninstall
DannyBen/replisetupuninstall
DannyBen/respecsetupuninstall

About

Simple Script Installer

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Simple Script Installer

repocard

Simple Script Installer (ssi) is a lightweight Bash installer for binaries, man pages, shell completions, and startup snippets. It is designed for script authors who want a simple, semantic setup script for their users, without re-implementing common installation decisions like target directories, root vs non-root behavior, or handling local vs remote sources.

This README covers two usage patterns:

  1. Developers (primary use case)
  2. Users (manual use)

Usage for Developers

The easiest way to use ssi is to provide a setup (and optionally an uninstall) script in your repository. The script downloads ssi to a temporary directory and uses its commands to install your files from your repository (or any URL).

For example:

#!/usr/bin/env bashset -euo pipefail
tmpdir="$(mktemp -d)"trap'rm -rf "$tmpdir"' EXIT
# Download ssi to a new temp dircd"$tmpdir"
wget https://github.com/DannyBen/ssi/releases/download/v0.1.10/ssi
chmod +x ssi
# Use it to download and install files
./ssi install bin https://anywhere.com/your-cli
./ssi install man https://anywhere.com/docs/your-cli.1
your-cli show-completion | ./ssi install completion your-cli
./ssi install startup --shell bash https://anywhere.com/your-cli-startup.sh

If you wish to download the latest version of ssi, use this URL:

wget https://github.com/DannyBen/ssi/releases/latest/download/ssi

Releases are immutable.

Usage for Users

Install

Download the ssi script and put it in your PATH.

You can do so programmatically by running something like this:

wget https://github.com/DannyBen/ssi/blob/master/ssi
sudo install -m 755 ssi /usr/local/bin/

Bash Completion for ssi

If you want completions for ssi itself, you can use ssi itself to download and install its own bash completion script:

ssi install completion https://raw.githubusercontent.com/DannyBen/ssi/refs/tags/v$(ssi --version)/completions/ssi --shell bash

Technical Details

ssi has four sets of commands:

Command GroupPurpose
installInstalling executables, man pages, completion scripts and startup scripts
uninstallUninstalling executables, man pages, completion scripts and startup scripts
testChecking for the presence of executables, man pages, completion scripts and startup scripts
Other UtilitiesGeneral purpose download, logging, bootstrapping of setup scripts.

Install Commands

All install commands accept source in one of these forms:

  • URL
  • Local file
  • stdin

ssi install bin Install Targets

  • System target /usr/local/bin when running as root, when the system target is writable, or when sudo is usable.
  • Otherwise user target $HOME/.local/bin.

ssi install man Install Targets

  • System target /usr/local/share/man when running as root, when the system target is writable, when the system target parent directory is writable, or when sudo is usable.
  • Otherwise user target ${XDG_DATA_HOME:-$HOME/.local/share}/man.
  • The final install path is <target>/man<section> where section defaults to 1 (for example man1/tool.1).

ssi install completion Install Targets

  • System target is selected when running as root, when the system target is writable, when the system target parent directory is writable, or when sudo is usable. It varies by shell:
  • System Bash: /usr/local/share/bash-completion/completions.
  • System Zsh: /usr/local/share/zsh/site-functions.
  • System Fish: /usr/local/share/fish/vendor_completions.d.
  • Otherwise user target is selected, and it also varies by shell:
  • User Bash: ${XDG_DATA_HOME:-$HOME/.local/share}/bash-completion/completions.
  • User Zsh: ${XDG_DATA_HOME:-$HOME/.local/share}/zsh/site-functions.
  • User Fish: ${XDG_DATA_HOME:-$HOME/.local/share}/fish/vendor_completions.d.

ssi install startup Install Targets

  • The --shell flag selects the target shell (default: bash).
  • Use --strict to fail if the shell startup location is missing.
  • Bash installs to ~/.bashrc.d.
  • Zsh installs to ~/.zshrc.d (or $ZDOTDIR/.zshrc.d when ZDOTDIR is set).
  • Fish installs to ${XDG_CONFIG_HOME:-$HOME/.config}/fish/conf.d.
  • ssi does not edit startup files; for Bash and Zsh, it warns if the *.d directory does not appear to be sourced.

Uninstall Commands

All uninstall commands assume ownership over all occurrences of the file they try to uninstall, so they attempt removal from both user directories and system directories.

Test Commands

Test commands check if a target is installed. By default, they check the single path that install would choose in the current environment.

Use --all to check all possible install paths and report each one. The command succeeds if any path contains the target, and warns if duplicates are found.

The primary use cases for this command are:

  • Run setup validation tests in CI
  • Check if a file is installed in more than one path

Utility Commands

  • ssi download - use it to download any file using either curl or wget (whichever is available)
  • ssi log - use it to output messages in the same format as the internal ssi functions.
  • ssi bootstrap - use it to output a sample scirpt that you can use for your setup script.

Examples

RepositorySetup ScriptUninstall Script
DannyBen/rushsetupuninstall
DannyBen/alfsetupuninstall
DannyBen/fuzzycdsetupuninstall
DannyBen/opcodesetupuninstall
DannyBen/git-changelogsetupuninstall
DannyBen/replisetupuninstall
DannyBen/respecsetupuninstall

About

Simple Script Installer

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Simple Script Installer

repocard

Simple Script Installer (ssi) is a lightweight Bash installer for binaries, man pages, shell completions, and startup snippets. It is designed for script authors who want a simple, semantic setup script for their users, without re-implementing common installation decisions like target directories, root vs non-root behavior, or handling local vs remote sources.

This README covers two usage patterns:

  1. Developers (primary use case)
  2. Users (manual use)

Usage for Developers

The easiest way to use ssi is to provide a setup (and optionally an uninstall) script in your repository. The script downloads ssi to a temporary directory and uses its commands to install your files from your repository (or any URL).

For example:

#!/usr/bin/env bashset -euo pipefail
tmpdir="$(mktemp -d)"trap'rm -rf "$tmpdir"' EXIT
# Download ssi to a new temp dircd"$tmpdir"
wget https://github.com/DannyBen/ssi/releases/download/v0.1.10/ssi
chmod +x ssi
# Use it to download and install files
./ssi install bin https://anywhere.com/your-cli
./ssi install man https://anywhere.com/docs/your-cli.1
your-cli show-completion | ./ssi install completion your-cli
./ssi install startup --shell bash https://anywhere.com/your-cli-startup.sh

If you wish to download the latest version of ssi, use this URL:

wget https://github.com/DannyBen/ssi/releases/latest/download/ssi

Releases are immutable.

Usage for Users

Install

Download the ssi script and put it in your PATH.

You can do so programmatically by running something like this:

wget https://github.com/DannyBen/ssi/blob/master/ssi
sudo install -m 755 ssi /usr/local/bin/

Bash Completion for ssi

If you want completions for ssi itself, you can use ssi itself to download and install its own bash completion script:

ssi install completion https://raw.githubusercontent.com/DannyBen/ssi/refs/tags/v$(ssi --version)/completions/ssi --shell bash

Technical Details

ssi has four sets of commands:

Command GroupPurpose
installInstalling executables, man pages, completion scripts and startup scripts
uninstallUninstalling executables, man pages, completion scripts and startup scripts
testChecking for the presence of executables, man pages, completion scripts and startup scripts
Other UtilitiesGeneral purpose download, logging, bootstrapping of setup scripts.

Install Commands

All install commands accept source in one of these forms:

  • URL
  • Local file
  • stdin

ssi install bin Install Targets

  • System target /usr/local/bin when running as root, when the system target is writable, or when sudo is usable.
  • Otherwise user target $HOME/.local/bin.

ssi install man Install Targets

  • System target /usr/local/share/man when running as root, when the system target is writable, when the system target parent directory is writable, or when sudo is usable.
  • Otherwise user target ${XDG_DATA_HOME:-$HOME/.local/share}/man.
  • The final install path is <target>/man<section> where section defaults to 1 (for example man1/tool.1).

ssi install completion Install Targets

  • System target is selected when running as root, when the system target is writable, when the system target parent directory is writable, or when sudo is usable. It varies by shell:
  • System Bash: /usr/local/share/bash-completion/completions.
  • System Zsh: /usr/local/share/zsh/site-functions.
  • System Fish: /usr/local/share/fish/vendor_completions.d.
  • Otherwise user target is selected, and it also varies by shell:
  • User Bash: ${XDG_DATA_HOME:-$HOME/.local/share}/bash-completion/completions.
  • User Zsh: ${XDG_DATA_HOME:-$HOME/.local/share}/zsh/site-functions.
  • User Fish: ${XDG_DATA_HOME:-$HOME/.local/share}/fish/vendor_completions.d.

ssi install startup Install Targets

  • The --shell flag selects the target shell (default: bash).
  • Use --strict to fail if the shell startup location is missing.
  • Bash installs to ~/.bashrc.d.
  • Zsh installs to ~/.zshrc.d (or $ZDOTDIR/.zshrc.d when ZDOTDIR is set).
  • Fish installs to ${XDG_CONFIG_HOME:-$HOME/.config}/fish/conf.d.
  • ssi does not edit startup files; for Bash and Zsh, it warns if the *.d directory does not appear to be sourced.

Uninstall Commands

All uninstall commands assume ownership over all occurrences of the file they try to uninstall, so they attempt removal from both user directories and system directories.

Test Commands

Test commands check if a target is installed. By default, they check the single path that install would choose in the current environment.

Use --all to check all possible install paths and report each one. The command succeeds if any path contains the target, and warns if duplicates are found.

The primary use cases for this command are:

  • Run setup validation tests in CI
  • Check if a file is installed in more than one path

Utility Commands

  • ssi download - use it to download any file using either curl or wget (whichever is available)
  • ssi log - use it to output messages in the same format as the internal ssi functions.
  • ssi bootstrap - use it to output a sample scirpt that you can use for your setup script.

Examples

RepositorySetup ScriptUninstall Script
DannyBen/rushsetupuninstall
DannyBen/alfsetupuninstall
DannyBen/fuzzycdsetupuninstall
DannyBen/opcodesetupuninstall
DannyBen/git-changelogsetupuninstall
DannyBen/replisetupuninstall
DannyBen/respecsetupuninstall

About

Simple Script Installer

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Simple Script Installer

repocard

Simple Script Installer (ssi) is a lightweight Bash installer for binaries, man pages, shell completions, and startup snippets. It is designed for script authors who want a simple, semantic setup script for their users, without re-implementing common installation decisions like target directories, root vs non-root behavior, or handling local vs remote sources.

This README covers two usage patterns:

  1. Developers (primary use case)
  2. Users (manual use)

Usage for Developers

The easiest way to use ssi is to provide a setup (and optionally an uninstall) script in your repository. The script downloads ssi to a temporary directory and uses its commands to install your files from your repository (or any URL).

For example:

#!/usr/bin/env bashset -euo pipefail
tmpdir="$(mktemp -d)"trap'rm -rf "$tmpdir"' EXIT
# Download ssi to a new temp dircd"$tmpdir"
wget https://github.com/DannyBen/ssi/releases/download/v0.1.10/ssi
chmod +x ssi
# Use it to download and install files
./ssi install bin https://anywhere.com/your-cli
./ssi install man https://anywhere.com/docs/your-cli.1
your-cli show-completion | ./ssi install completion your-cli
./ssi install startup --shell bash https://anywhere.com/your-cli-startup.sh

If you wish to download the latest version of ssi, use this URL:

wget https://github.com/DannyBen/ssi/releases/latest/download/ssi

Releases are immutable.

Usage for Users

Install

Download the ssi script and put it in your PATH.

You can do so programmatically by running something like this:

wget https://github.com/DannyBen/ssi/blob/master/ssi
sudo install -m 755 ssi /usr/local/bin/

Bash Completion for ssi

If you want completions for ssi itself, you can use ssi itself to download and install its own bash completion script:

ssi install completion https://raw.githubusercontent.com/DannyBen/ssi/refs/tags/v$(ssi --version)/completions/ssi --shell bash

Technical Details

ssi has four sets of commands:

Command GroupPurpose
installInstalling executables, man pages, completion scripts and startup scripts
uninstallUninstalling executables, man pages, completion scripts and startup scripts
testChecking for the presence of executables, man pages, completion scripts and startup scripts
Other UtilitiesGeneral purpose download, logging, bootstrapping of setup scripts.

Install Commands

All install commands accept source in one of these forms:

  • URL
  • Local file
  • stdin

ssi install bin Install Targets

  • System target /usr/local/bin when running as root, when the system target is writable, or when sudo is usable.
  • Otherwise user target $HOME/.local/bin.

ssi install man Install Targets

  • System target /usr/local/share/man when running as root, when the system target is writable, when the system target parent directory is writable, or when sudo is usable.
  • Otherwise user target ${XDG_DATA_HOME:-$HOME/.local/share}/man.
  • The final install path is <target>/man<section> where section defaults to 1 (for example man1/tool.1).

ssi install completion Install Targets

  • System target is selected when running as root, when the system target is writable, when the system target parent directory is writable, or when sudo is usable. It varies by shell:
  • System Bash: /usr/local/share/bash-completion/completions.
  • System Zsh: /usr/local/share/zsh/site-functions.
  • System Fish: /usr/local/share/fish/vendor_completions.d.
  • Otherwise user target is selected, and it also varies by shell:
  • User Bash: ${XDG_DATA_HOME:-$HOME/.local/share}/bash-completion/completions.
  • User Zsh: ${XDG_DATA_HOME:-$HOME/.local/share}/zsh/site-functions.
  • User Fish: ${XDG_DATA_HOME:-$HOME/.local/share}/fish/vendor_completions.d.

ssi install startup Install Targets

  • The --shell flag selects the target shell (default: bash).
  • Use --strict to fail if the shell startup location is missing.
  • Bash installs to ~/.bashrc.d.
  • Zsh installs to ~/.zshrc.d (or $ZDOTDIR/.zshrc.d when ZDOTDIR is set).
  • Fish installs to ${XDG_CONFIG_HOME:-$HOME/.config}/fish/conf.d.
  • ssi does not edit startup files; for Bash and Zsh, it warns if the *.d directory does not appear to be sourced.

Uninstall Commands

All uninstall commands assume ownership over all occurrences of the file they try to uninstall, so they attempt removal from both user directories and system directories.

Test Commands

Test commands check if a target is installed. By default, they check the single path that install would choose in the current environment.

Use --all to check all possible install paths and report each one. The command succeeds if any path contains the target, and warns if duplicates are found.

The primary use cases for this command are:

  • Run setup validation tests in CI
  • Check if a file is installed in more than one path

Utility Commands

  • ssi download - use it to download any file using either curl or wget (whichever is available)
  • ssi log - use it to output messages in the same format as the internal ssi functions.
  • ssi bootstrap - use it to output a sample scirpt that you can use for your setup script.

Examples

RepositorySetup ScriptUninstall Script
DannyBen/rushsetupuninstall
DannyBen/alfsetupuninstall
DannyBen/fuzzycdsetupuninstall
DannyBen/opcodesetupuninstall
DannyBen/git-changelogsetupuninstall
DannyBen/replisetupuninstall
DannyBen/respecsetupuninstall

About

Simple Script Installer

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Simple Script Installer

repocard

Simple Script Installer (ssi) is a lightweight Bash installer for binaries, man pages, shell completions, and startup snippets. It is designed for script authors who want a simple, semantic setup script for their users, without re-implementing common installation decisions like target directories, root vs non-root behavior, or handling local vs remote sources.

This README covers two usage patterns:

  1. Developers (primary use case)
  2. Users (manual use)

Usage for Developers

The easiest way to use ssi is to provide a setup (and optionally an uninstall) script in your repository. The script downloads ssi to a temporary directory and uses its commands to install your files from your repository (or any URL).

For example:

#!/usr/bin/env bashset -euo pipefail
tmpdir="$(mktemp -d)"trap'rm -rf "$tmpdir"' EXIT
# Download ssi to a new temp dircd"$tmpdir"
wget https://github.com/DannyBen/ssi/releases/download/v0.1.10/ssi
chmod +x ssi
# Use it to download and install files
./ssi install bin https://anywhere.com/your-cli
./ssi install man https://anywhere.com/docs/your-cli.1
your-cli show-completion | ./ssi install completion your-cli
./ssi install startup --shell bash https://anywhere.com/your-cli-startup.sh

If you wish to download the latest version of ssi, use this URL:

wget https://github.com/DannyBen/ssi/releases/latest/download/ssi

Releases are immutable.

Usage for Users

Install

Download the ssi script and put it in your PATH.

You can do so programmatically by running something like this:

wget https://github.com/DannyBen/ssi/blob/master/ssi
sudo install -m 755 ssi /usr/local/bin/

Bash Completion for ssi

If you want completions for ssi itself, you can use ssi itself to download and install its own bash completion script:

ssi install completion https://raw.githubusercontent.com/DannyBen/ssi/refs/tags/v$(ssi --version)/completions/ssi --shell bash

Technical Details

ssi has four sets of commands:

Command GroupPurpose
installInstalling executables, man pages, completion scripts and startup scripts
uninstallUninstalling executables, man pages, completion scripts and startup scripts
testChecking for the presence of executables, man pages, completion scripts and startup scripts
Other UtilitiesGeneral purpose download, logging, bootstrapping of setup scripts.

Install Commands

All install commands accept source in one of these forms:

  • URL
  • Local file
  • stdin

ssi install bin Install Targets

  • System target /usr/local/bin when running as root, when the system target is writable, or when sudo is usable.
  • Otherwise user target $HOME/.local/bin.

ssi install man Install Targets

  • System target /usr/local/share/man when running as root, when the system target is writable, when the system target parent directory is writable, or when sudo is usable.
  • Otherwise user target ${XDG_DATA_HOME:-$HOME/.local/share}/man.
  • The final install path is <target>/man<section> where section defaults to 1 (for example man1/tool.1).

ssi install completion Install Targets

  • System target is selected when running as root, when the system target is writable, when the system target parent directory is writable, or when sudo is usable. It varies by shell:
  • System Bash: /usr/local/share/bash-completion/completions.
  • System Zsh: /usr/local/share/zsh/site-functions.
  • System Fish: /usr/local/share/fish/vendor_completions.d.
  • Otherwise user target is selected, and it also varies by shell:
  • User Bash: ${XDG_DATA_HOME:-$HOME/.local/share}/bash-completion/completions.
  • User Zsh: ${XDG_DATA_HOME:-$HOME/.local/share}/zsh/site-functions.
  • User Fish: ${XDG_DATA_HOME:-$HOME/.local/share}/fish/vendor_completions.d.

ssi install startup Install Targets

  • The --shell flag selects the target shell (default: bash).
  • Use --strict to fail if the shell startup location is missing.
  • Bash installs to ~/.bashrc.d.
  • Zsh installs to ~/.zshrc.d (or $ZDOTDIR/.zshrc.d when ZDOTDIR is set).
  • Fish installs to ${XDG_CONFIG_HOME:-$HOME/.config}/fish/conf.d.
  • ssi does not edit startup files; for Bash and Zsh, it warns if the *.d directory does not appear to be sourced.

Uninstall Commands

All uninstall commands assume ownership over all occurrences of the file they try to uninstall, so they attempt removal from both user directories and system directories.

Test Commands

Test commands check if a target is installed. By default, they check the single path that install would choose in the current environment.

Use --all to check all possible install paths and report each one. The command succeeds if any path contains the target, and warns if duplicates are found.

The primary use cases for this command are:

  • Run setup validation tests in CI
  • Check if a file is installed in more than one path

Utility Commands

  • ssi download - use it to download any file using either curl or wget (whichever is available)
  • ssi log - use it to output messages in the same format as the internal ssi functions.
  • ssi bootstrap - use it to output a sample scirpt that you can use for your setup script.

Examples

RepositorySetup ScriptUninstall Script
DannyBen/rushsetupuninstall
DannyBen/alfsetupuninstall
DannyBen/fuzzycdsetupuninstall
DannyBen/opcodesetupuninstall
DannyBen/git-changelogsetupuninstall
DannyBen/replisetupuninstall
DannyBen/respecsetupuninstall

About

Simple Script Installer

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Simple Script Installer

repocard

Simple Script Installer (ssi) is a lightweight Bash installer for binaries, man pages, shell completions, and startup snippets. It is designed for script authors who want a simple, semantic setup script for their users, without re-implementing common installation decisions like target directories, root vs non-root behavior, or handling local vs remote sources.

This README covers two usage patterns:

  1. Developers (primary use case)
  2. Users (manual use)

Usage for Developers

The easiest way to use ssi is to provide a setup (and optionally an uninstall) script in your repository. The script downloads ssi to a temporary directory and uses its commands to install your files from your repository (or any URL).

For example:

#!/usr/bin/env bashset -euo pipefail
tmpdir="$(mktemp -d)"trap'rm -rf "$tmpdir"' EXIT
# Download ssi to a new temp dircd"$tmpdir"
wget https://github.com/DannyBen/ssi/releases/download/v0.1.10/ssi
chmod +x ssi
# Use it to download and install files
./ssi install bin https://anywhere.com/your-cli
./ssi install man https://anywhere.com/docs/your-cli.1
your-cli show-completion | ./ssi install completion your-cli
./ssi install startup --shell bash https://anywhere.com/your-cli-startup.sh

If you wish to download the latest version of ssi, use this URL:

wget https://github.com/DannyBen/ssi/releases/latest/download/ssi

Releases are immutable.

Usage for Users

Install

Download the ssi script and put it in your PATH.

You can do so programmatically by running something like this:

wget https://github.com/DannyBen/ssi/blob/master/ssi
sudo install -m 755 ssi /usr/local/bin/

Bash Completion for ssi

If you want completions for ssi itself, you can use ssi itself to download and install its own bash completion script:

ssi install completion https://raw.githubusercontent.com/DannyBen/ssi/refs/tags/v$(ssi --version)/completions/ssi --shell bash

Technical Details

ssi has four sets of commands:

Command GroupPurpose
installInstalling executables, man pages, completion scripts and startup scripts
uninstallUninstalling executables, man pages, completion scripts and startup scripts
testChecking for the presence of executables, man pages, completion scripts and startup scripts
Other UtilitiesGeneral purpose download, logging, bootstrapping of setup scripts.

Install Commands

All install commands accept source in one of these forms:

  • URL
  • Local file
  • stdin

ssi install bin Install Targets

  • System target /usr/local/bin when running as root, when the system target is writable, or when sudo is usable.
  • Otherwise user target $HOME/.local/bin.

ssi install man Install Targets

  • System target /usr/local/share/man when running as root, when the system target is writable, when the system target parent directory is writable, or when sudo is usable.
  • Otherwise user target ${XDG_DATA_HOME:-$HOME/.local/share}/man.
  • The final install path is <target>/man<section> where section defaults to 1 (for example man1/tool.1).

ssi install completion Install Targets

  • System target is selected when running as root, when the system target is writable, when the system target parent directory is writable, or when sudo is usable. It varies by shell:
  • System Bash: /usr/local/share/bash-completion/completions.
  • System Zsh: /usr/local/share/zsh/site-functions.
  • System Fish: /usr/local/share/fish/vendor_completions.d.
  • Otherwise user target is selected, and it also varies by shell:
  • User Bash: ${XDG_DATA_HOME:-$HOME/.local/share}/bash-completion/completions.
  • User Zsh: ${XDG_DATA_HOME:-$HOME/.local/share}/zsh/site-functions.
  • User Fish: ${XDG_DATA_HOME:-$HOME/.local/share}/fish/vendor_completions.d.

ssi install startup Install Targets

  • The --shell flag selects the target shell (default: bash).
  • Use --strict to fail if the shell startup location is missing.
  • Bash installs to ~/.bashrc.d.
  • Zsh installs to ~/.zshrc.d (or $ZDOTDIR/.zshrc.d when ZDOTDIR is set).
  • Fish installs to ${XDG_CONFIG_HOME:-$HOME/.config}/fish/conf.d.
  • ssi does not edit startup files; for Bash and Zsh, it warns if the *.d directory does not appear to be sourced.

Uninstall Commands

All uninstall commands assume ownership over all occurrences of the file they try to uninstall, so they attempt removal from both user directories and system directories.

Test Commands

Test commands check if a target is installed. By default, they check the single path that install would choose in the current environment.

Use --all to check all possible install paths and report each one. The command succeeds if any path contains the target, and warns if duplicates are found.

The primary use cases for this command are:

  • Run setup validation tests in CI
  • Check if a file is installed in more than one path

Utility Commands

  • ssi download - use it to download any file using either curl or wget (whichever is available)
  • ssi log - use it to output messages in the same format as the internal ssi functions.
  • ssi bootstrap - use it to output a sample scirpt that you can use for your setup script.

Examples

RepositorySetup ScriptUninstall Script
DannyBen/rushsetupuninstall
DannyBen/alfsetupuninstall
DannyBen/fuzzycdsetupuninstall
DannyBen/opcodesetupuninstall
DannyBen/git-changelogsetupuninstall
DannyBen/replisetupuninstall
DannyBen/respecsetupuninstall

About

Simple Script Installer

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Simple Script Installer

repocard

Simple Script Installer (ssi) is a lightweight Bash installer for binaries, man pages, shell completions, and startup snippets. It is designed for script authors who want a simple, semantic setup script for their users, without re-implementing common installation decisions like target directories, root vs non-root behavior, or handling local vs remote sources.

This README covers two usage patterns:

  1. Developers (primary use case)
  2. Users (manual use)

Usage for Developers

The easiest way to use ssi is to provide a setup (and optionally an uninstall) script in your repository. The script downloads ssi to a temporary directory and uses its commands to install your files from your repository (or any URL).

For example:

#!/usr/bin/env bashset -euo pipefail
tmpdir="$(mktemp -d)"trap'rm -rf "$tmpdir"' EXIT
# Download ssi to a new temp dircd"$tmpdir"
wget https://github.com/DannyBen/ssi/releases/download/v0.1.10/ssi
chmod +x ssi
# Use it to download and install files
./ssi install bin https://anywhere.com/your-cli
./ssi install man https://anywhere.com/docs/your-cli.1
your-cli show-completion | ./ssi install completion your-cli
./ssi install startup --shell bash https://anywhere.com/your-cli-startup.sh

If you wish to download the latest version of ssi, use this URL:

wget https://github.com/DannyBen/ssi/releases/latest/download/ssi

Releases are immutable.

Usage for Users

Install

Download the ssi script and put it in your PATH.

You can do so programmatically by running something like this:

wget https://github.com/DannyBen/ssi/blob/master/ssi
sudo install -m 755 ssi /usr/local/bin/

Bash Completion for ssi

If you want completions for ssi itself, you can use ssi itself to download and install its own bash completion script:

ssi install completion https://raw.githubusercontent.com/DannyBen/ssi/refs/tags/v$(ssi --version)/completions/ssi --shell bash

Technical Details

ssi has four sets of commands:

Command GroupPurpose
installInstalling executables, man pages, completion scripts and startup scripts
uninstallUninstalling executables, man pages, completion scripts and startup scripts
testChecking for the presence of executables, man pages, completion scripts and startup scripts
Other UtilitiesGeneral purpose download, logging, bootstrapping of setup scripts.

Install Commands

All install commands accept source in one of these forms:

  • URL
  • Local file
  • stdin

ssi install bin Install Targets

  • System target /usr/local/bin when running as root, when the system target is writable, or when sudo is usable.
  • Otherwise user target $HOME/.local/bin.

ssi install man Install Targets

  • System target /usr/local/share/man when running as root, when the system target is writable, when the system target parent directory is writable, or when sudo is usable.
  • Otherwise user target ${XDG_DATA_HOME:-$HOME/.local/share}/man.
  • The final install path is <target>/man<section> where section defaults to 1 (for example man1/tool.1).

ssi install completion Install Targets

  • System target is selected when running as root, when the system target is writable, when the system target parent directory is writable, or when sudo is usable. It varies by shell:
  • System Bash: /usr/local/share/bash-completion/completions.
  • System Zsh: /usr/local/share/zsh/site-functions.
  • System Fish: /usr/local/share/fish/vendor_completions.d.
  • Otherwise user target is selected, and it also varies by shell:
  • User Bash: ${XDG_DATA_HOME:-$HOME/.local/share}/bash-completion/completions.
  • User Zsh: ${XDG_DATA_HOME:-$HOME/.local/share}/zsh/site-functions.
  • User Fish: ${XDG_DATA_HOME:-$HOME/.local/share}/fish/vendor_completions.d.

ssi install startup Install Targets

  • The --shell flag selects the target shell (default: bash).
  • Use --strict to fail if the shell startup location is missing.
  • Bash installs to ~/.bashrc.d.
  • Zsh installs to ~/.zshrc.d (or $ZDOTDIR/.zshrc.d when ZDOTDIR is set).
  • Fish installs to ${XDG_CONFIG_HOME:-$HOME/.config}/fish/conf.d.
  • ssi does not edit startup files; for Bash and Zsh, it warns if the *.d directory does not appear to be sourced.

Uninstall Commands

All uninstall commands assume ownership over all occurrences of the file they try to uninstall, so they attempt removal from both user directories and system directories.

Test Commands

Test commands check if a target is installed. By default, they check the single path that install would choose in the current environment.

Use --all to check all possible install paths and report each one. The command succeeds if any path contains the target, and warns if duplicates are found.

The primary use cases for this command are:

  • Run setup validation tests in CI
  • Check if a file is installed in more than one path

Utility Commands

  • ssi download - use it to download any file using either curl or wget (whichever is available)
  • ssi log - use it to output messages in the same format as the internal ssi functions.
  • ssi bootstrap - use it to output a sample scirpt that you can use for your setup script.

Examples

RepositorySetup ScriptUninstall Script
DannyBen/rushsetupuninstall
DannyBen/alfsetupuninstall
DannyBen/fuzzycdsetupuninstall
DannyBen/opcodesetupuninstall
DannyBen/git-changelogsetupuninstall
DannyBen/replisetupuninstall
DannyBen/respecsetupuninstall

About

Simple Script Installer

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Simple Script Installer

repocard

Simple Script Installer (ssi) is a lightweight Bash installer for binaries, man pages, shell completions, and startup snippets. It is designed for script authors who want a simple, semantic setup script for their users, without re-implementing common installation decisions like target directories, root vs non-root behavior, or handling local vs remote sources.

This README covers two usage patterns:

  1. Developers (primary use case)
  2. Users (manual use)

Usage for Developers

The easiest way to use ssi is to provide a setup (and optionally an uninstall) script in your repository. The script downloads ssi to a temporary directory and uses its commands to install your files from your repository (or any URL).

For example:

#!/usr/bin/env bashset -euo pipefail
tmpdir="$(mktemp -d)"trap'rm -rf "$tmpdir"' EXIT
# Download ssi to a new temp dircd"$tmpdir"
wget https://github.com/DannyBen/ssi/releases/download/v0.1.10/ssi
chmod +x ssi
# Use it to download and install files
./ssi install bin https://anywhere.com/your-cli
./ssi install man https://anywhere.com/docs/your-cli.1
your-cli show-completion | ./ssi install completion your-cli
./ssi install startup --shell bash https://anywhere.com/your-cli-startup.sh

If you wish to download the latest version of ssi, use this URL:

wget https://github.com/DannyBen/ssi/releases/latest/download/ssi

Releases are immutable.

Usage for Users

Install

Download the ssi script and put it in your PATH.

You can do so programmatically by running something like this:

wget https://github.com/DannyBen/ssi/blob/master/ssi
sudo install -m 755 ssi /usr/local/bin/

Bash Completion for ssi

If you want completions for ssi itself, you can use ssi itself to download and install its own bash completion script:

ssi install completion https://raw.githubusercontent.com/DannyBen/ssi/refs/tags/v$(ssi --version)/completions/ssi --shell bash

Technical Details

ssi has four sets of commands:

Command GroupPurpose
installInstalling executables, man pages, completion scripts and startup scripts
uninstallUninstalling executables, man pages, completion scripts and startup scripts
testChecking for the presence of executables, man pages, completion scripts and startup scripts
Other UtilitiesGeneral purpose download, logging, bootstrapping of setup scripts.

Install Commands

All install commands accept source in one of these forms:

  • URL
  • Local file
  • stdin

ssi install bin Install Targets

  • System target /usr/local/bin when running as root, when the system target is writable, or when sudo is usable.
  • Otherwise user target $HOME/.local/bin.

ssi install man Install Targets

  • System target /usr/local/share/man when running as root, when the system target is writable, when the system target parent directory is writable, or when sudo is usable.
  • Otherwise user target ${XDG_DATA_HOME:-$HOME/.local/share}/man.
  • The final install path is <target>/man<section> where section defaults to 1 (for example man1/tool.1).

ssi install completion Install Targets

  • System target is selected when running as root, when the system target is writable, when the system target parent directory is writable, or when sudo is usable. It varies by shell:
  • System Bash: /usr/local/share/bash-completion/completions.
  • System Zsh: /usr/local/share/zsh/site-functions.
  • System Fish: /usr/local/share/fish/vendor_completions.d.
  • Otherwise user target is selected, and it also varies by shell:
  • User Bash: ${XDG_DATA_HOME:-$HOME/.local/share}/bash-completion/completions.
  • User Zsh: ${XDG_DATA_HOME:-$HOME/.local/share}/zsh/site-functions.
  • User Fish: ${XDG_DATA_HOME:-$HOME/.local/share}/fish/vendor_completions.d.

ssi install startup Install Targets

  • The --shell flag selects the target shell (default: bash).
  • Use --strict to fail if the shell startup location is missing.
  • Bash installs to ~/.bashrc.d.
  • Zsh installs to ~/.zshrc.d (or $ZDOTDIR/.zshrc.d when ZDOTDIR is set).
  • Fish installs to ${XDG_CONFIG_HOME:-$HOME/.config}/fish/conf.d.
  • ssi does not edit startup files; for Bash and Zsh, it warns if the *.d directory does not appear to be sourced.

Uninstall Commands

All uninstall commands assume ownership over all occurrences of the file they try to uninstall, so they attempt removal from both user directories and system directories.

Test Commands

Test commands check if a target is installed. By default, they check the single path that install would choose in the current environment.

Use --all to check all possible install paths and report each one. The command succeeds if any path contains the target, and warns if duplicates are found.

The primary use cases for this command are:

  • Run setup validation tests in CI
  • Check if a file is installed in more than one path

Utility Commands

  • ssi download - use it to download any file using either curl or wget (whichever is available)
  • ssi log - use it to output messages in the same format as the internal ssi functions.
  • ssi bootstrap - use it to output a sample scirpt that you can use for your setup script.

Examples

RepositorySetup ScriptUninstall Script
DannyBen/rushsetupuninstall
DannyBen/alfsetupuninstall
DannyBen/fuzzycdsetupuninstall
DannyBen/opcodesetupuninstall
DannyBen/git-changelogsetupuninstall
DannyBen/replisetupuninstall
DannyBen/respecsetupuninstall

About

Simple Script Installer

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages