Skip to content

a cli tool for one-line install of downloadable binaries, compressed or deb files

License

Notifications You must be signed in to change notification settings

revivalstack/instol

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

instol: one-line install of downloadable binaries, compressed or deb files

instol [<options>] <url> [<output_filename>]

Tired of manual downloads, messy extractions, and forgotten permissions when installing new tools? instol simplifies the entire process, allowing you to install software directly from any URL with a single command. It intelligently detects the file type (.deb, compressed archive, or raw binary) and automates everything from download and extraction (if applicable) to proper placement in system directories, permission setting, and cleanup of temporary files. This truly streamlines installations from sources like GitHub, Bitbucket, or direct downloads.

Features

  • Smart Type Detection: No more guesswork; instol automatically identifies if your URL is a binary, a compressed archive (zip, tar.gz, etc.), or a Debian package.
  • Automated Deployment: Handles downloading and seamlessly extracts contents from archives, getting your software ready to run.
  • Seamless System Placement: Automatically places executables directly into standard system directories (e.g., /usr/local/bin) and sets correct permissions, hassle-free.
  • Zero Leftovers: Automatically removes all temporary files created during the installation, keeping your system tidy.
  • Built-in Safety: Prompts for confirmation before overwriting existing files, with an option to force installation.

Installation

You can build instol from source:

git clone https://github.com/revivalstack/instol.git
cd instol
go build -o instol .
chmod +x instol
sudo mv instol /usr/local/bin/

or via

go install github.com/revivalstack/instol@latest

Usage

instol [<options>] <url> [<output_filename>]

Arguments

  • <url>: The URL of the file to install (e.g., .deb, .tar.gz, .zip, or raw binary).
  • [<output_filename>]: Optional. A custom filename for the installed executable.

Options

  • -p, --path <directory>: Specify the installation directory (default: /usr/local/bin).
  • -t, --type <type>: Manually specify the file type (binary, compressed, deb). Use this if instol cannot automatically detect the type.
  • -f, --force: Overwrite existing files without prompting for confirmation.
  • -h, --help: Display help information and exit.
  • --version: Display version information and exit.

Examples

Install a .deb package:

instol https://example.com/package.deb

Install a compressed binary (e.g., .tar.gz, .zip):

instol https://github.com/user/repo/releases/download/v1.0.0/tool.tar.gz

Install a raw binary with a custom name:

instol https://example.com/raw_binary mytool

Install a raw binary to local bin directory:

instol -p ~/.local/bin https://example.com/raw_binary

Install a compressed file and force overwrite:

instol --force https://github.com/user/repo/releases/download/v1.0.0/tool.zip

Install a binary where the URL doesn't have a clear extension, specifying type:

instol --type binary https://example.com/download/latest_tool

Display the tool version:

instol --version

License

instol is released under the MIT License.

About

a cli tool for one-line install of downloadable binaries, compressed or deb files

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages