All Projects → dominiksalvet → gitpack

dominiksalvet / gitpack

Licence: MIT license
Git-based package manager written in POSIX shell

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to gitpack

iQuail
Easy to use cross-platform installer & updater for desktop applications
Stars: ✭ 20 (-72.22%)
Mutual labels:  install, installer, update
Installomator
Installation script to deploy standard software on Macs
Stars: ✭ 472 (+555.56%)
Mutual labels:  install, deployment, installer
ProgramUpdater
PUF - Program Updater Framework. A library to easier the task of program updating
Stars: ✭ 14 (-80.56%)
Mutual labels:  install, installer, update
Installomator
Installation script to deploy standard software on Macs
Stars: ✭ 159 (+120.83%)
Mutual labels:  install, deployment, installer
onionjuggler
Manage your Onion Services via CLI or TUI on Unix-like operating system with a POSIX compliant shell.
Stars: ✭ 31 (-56.94%)
Mutual labels:  unix, posix
kotoriotoko
KOTORIOTOKO (little bird man) -- Extremely Compatible and Sustainable Twitter Application Written in Shell Script
Stars: ✭ 89 (+23.61%)
Mutual labels:  unix, posix
dppm
An easy way to install and manage server applications
Stars: ✭ 107 (+48.61%)
Mutual labels:  package-manager, installer
Onyx
UNIX-like operating system written in C and C++
Stars: ✭ 52 (-27.78%)
Mutual labels:  unix, posix
install
basic script for project installation
Stars: ✭ 17 (-76.39%)
Mutual labels:  install, installer
InitKit
Neo-InitWare is a modular, cross-platform reimplementation of the systemd init system. It is experimental.
Stars: ✭ 364 (+405.56%)
Mutual labels:  unix, posix
zap
⚡ Delightful AppImage package manager
Stars: ✭ 354 (+391.67%)
Mutual labels:  package-manager, installer
hostname
Cross-platform hostname functions in Rust
Stars: ✭ 48 (-33.33%)
Mutual labels:  unix, posix
spotify-deb-install
MOVED: https://gitlab.com/q3aql/spotify-deb-install
Stars: ✭ 15 (-79.17%)
Mutual labels:  install, installer
dex
docker executables - run applications without installing them or their dependencies
Stars: ✭ 31 (-56.94%)
Mutual labels:  package-manager, installer
go-sysconf
sysconf for Go, without using cgo
Stars: ✭ 119 (+65.28%)
Mutual labels:  unix, posix
tupai
Tupai is a multi-tasking operating system I wrote for my degree that focuses on safety and design, targeting a variety of platforms.
Stars: ✭ 21 (-70.83%)
Mutual labels:  unix, posix
scoop-directory
A searchable directory of buckets for the scoop package manager for Windows
Stars: ✭ 721 (+901.39%)
Mutual labels:  package-manager, installer
vsixbootstrapper
An installer that can be chained with other packages to locate the latest VSIXInstaller.exe to use for installing VSIX extensions.
Stars: ✭ 19 (-73.61%)
Mutual labels:  deployment, installer
archdi-pkg
Arch Linux Desktop Installer Packages
Stars: ✭ 46 (-36.11%)
Mutual labels:  install, installer
timebox
A timer script for Windows/Linux/Unix/macOS to practice timeboxing (the time management technique)
Stars: ✭ 42 (-41.67%)
Mutual labels:  unix, posix

GitPack

GitPack example

CI status GitPack POSIX Shell Hits

GitPack stands on a simple idea – a Git repository is a package, its URL is the package name. Based on that it is possible to install/update your favorite Git projects as shown:

gitpack install <url>

And when they are no longer needed, uninstall them that way:

gitpack uninstall <url>

GitPack not only saves time for end-users to figure out how to install a Git project, but it also unifies the project development and distribution in a convenient place; its Git repository.

Do you want to try GitPack in your project? The section for developers will help you get started.

Table of Contents

Requirements

All you need to install and run GitPack is Linux/Unix environment and Git.

Windows users may simply use Git for Windows.

Installation

Local (user) installation:

wget -qO- https://raw.githubusercontent.com/dominiksalvet/gitpack/master/.install/initl.sh | sh

Global (system) installation:

wget -qO- https://raw.githubusercontent.com/dominiksalvet/gitpack/master/.install/initg.sh | sh

If you do not have wget, copy-paste the source code of one of the scripts into a shell terminal and execute it.

Once installed, you will use GitPack to manage even itself (e.g., for updating). Now start exploring.

Usage

If GitPack is run with root permissions (e.g., using sudo), it will use global access and perform global installations. Otherwise, a local approach for the current user will be used.

Install/update to the latest version:

gitpack install <url>

It uses the latest tag (latest commit if no tag) of the repository default branch.

Install/update/downgrade to a particular version:

gitpack install <url>=<version>

The <version> is any Git revision (tag name, branch name, commit hash).

Uninstall (version is detected automatically):

gitpack uninstall <url>

Show the status of a project:

gitpack status <url>

List all installed projects:

gitpack list

Use gitpack help to see more arguments.

Examples

To better understand how GitPack works, there are some examples below.

  • Install a simple game with pathfinding locally (latest version):
$ gitpack install github.com/dominiksalvet/pathfinding-robots
>>> running install for github.com/dominiksalvet/pathfinding-robots
downloading repository
reading status database
using automatic candidate version
installing version 1.1.0
running script .install/install-local
copying files
adding to status database
<<< done; successfully installed
  • Use URL with no HTTPS and other adjustments (e.g., for SSH):
$ gitpack -r status [email protected]:dominiksalvet/vhdldep.git
>>> running status for [email protected]:dominiksalvet/vhdldep.git
downloading repository
reading status database
using automatic candidate version
<<< not installed; candidate is 2.2.0
  • List globally installed projects (display full commit hashes):
$ sudo gitpack -H list
github.com/dominiksalvet/gitpack 4ca05c10a9903251826a8d0addc25daf6808fffa
github.com/dominiksalvet/asus-fan-control cb6be871cdbf4453d9072118194198d75dd0b380
github.com/dominiksalvet/ux430ua-jack-volume 208f1a7bce8644482abdfa14107f90358a75bb1b
  • GitPack uses different paths for local and global access:
$ gitpack paths
state-dir /home/dominik/.local/share/gitpack
cache-dir /home/dominik/.cache/gitpack
lock-path /var/lock/gitpack-1000

$ sudo gitpack paths
state-dir /var/lib/gitpack
cache-dir /var/cache/gitpack
lock-path /var/lock/gitpack-0

Did you know that GitPack has sleek tab completion for Bash shells?

For Developers

There are many reasons why developers should like GitPack:

  • Tight integration with Git
  • Any programming language may be used
  • Runs on Linux, macOS, and other Unixes
  • Runs on Windows (after some setup)
  • Easy and flexible repository adaptation

GitPack shines when installing the following:

  • Scripts with no/few dependencies
  • Binaries directly present in the repository
  • Simple compiled programs
  • Other repository content (e.g., themes)

Unsure? There is even more in GitPack:

  • Simple by design
  • Delta updates
  • Smart repository cache
  • POSIX-friendly (i.e., very portable)
  • Standalone script (for advanced uses)
  • Suitable even for self-hosted Git services

So are you ready to try GitPack in your project? Then see how it works.

Badge

Projects that use GitPack work best with the following sleek badge:

GitPack

In markdown:

[![GitPack](https://img.shields.io/badge/-GitPack-571997)](https://github.com/topics/gitpack)

Useful Resources

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].