GithubHelp home page GithubHelp logo

kevspau / jitter Goto Github PK

View Code? Open in Web Editor NEW
93.0 2.0 2.0 136 KB

give the finger to git clone

License: MIT License

Nim 93.25% Shell 6.75%
package-management package-manager packages github github-api binary-manager nim

jitter's Introduction

Jitter

A repository-oriented binary manager for Linux

Notice

I may revist this project and rework it in the future.

How it works

Jitter searches through GitHub(and hopefully soon more sources) for releases with .tar.gz, .tgz, .zip or .AppImage assets. Unlike Homebrew or similar package managers, Jitter does not require a brewfile or nixfile in order to recognize the project.

Installing

Before installing, make sure you have glibc installed on your distro.

Using the install.sh script (recommended):

wget -qO- https://github.com/sharpcdf/jitter/raw/main/install.sh | bash

To pass flags such as --force or --uninstall use:

wget -qO- https://github.com/sharpcdf/jitter/raw/main/install.sh | bash -s -- --flag

Through Nimble:

nimble install https://github.com/sharpcdf/jitter

Manually (versions above 0.3.0): Download the latest release and run

./jtr setup

Uninstalling

Through the install.sh script:

wget -qO- https://github.com/sharpcdf/jitter/raw/main/install.sh | bash -s -- --uninstall

Notes

  • Right now, Jitter only supports GitHub as a download source.
  • You may encounter bugs as this project is still in development, please create an issue if you encounter anything wrong with jitter :)
  • On Ubuntu or other distros, you may need to run sudo apt install glibc-source or similiar in order to use jitter.
  • Because Jitter has no way of knowing what executable is meant to be run by the end user, it uses a loose method of finding the executables, and therefore there may be irrelavant executables added to the bin.
  • Jitter requires git to be installed when using the -g flag

Building

Clone the repository and run nimble build to create a release version, or nim debug to debug the code after making changes. (You need to have Nim and Nimble installed).

git clone https://github.com/sharpcdf/jitter
cd jitter
nimble build

Usage

❯ jtr -h
A repository-oriented binary manager for Linux

Usage:
   [options] COMMAND

Commands:

  install          Installs the given repository, if avaliable.                                          [gh:][user/]repo[@tag]
  update           Updates the specified package, Jitter itself, or all packages if specified.           [user/repo[@tag]][all][this|jitter|jtr]
  remove           Removes the specified package from your system.                                       user/repo[@tag]
  search           Searches for repositories that match the given term, returning them if found.         [user/]repo
  list             Lists all executables downloaded.
  catalog          Lists all installed packages.
  setup            Creates needed directories if they do not exist

Options:
  -h, --help
  -v, --version
  --no-make                  If makefiles are found in the downloaded package, Jitter ignores them. By default, Jitter runs all found makefiles.
  --exactmatch               When searching for a repository, only repositories with the query AS THEIR NAME will be shown. Jitter shows any repository returned by the query.
  -g                         Clones the repo, and looks for makefiles or supported file types to build, then adds built executables to the bin

Example Usage

  1. jtr install gh:VSCodium/vscodium - installs repository VSCodium/vscodium from github.
  2. jtr install vscodium - searches for all repositories that have the name vscodium, and then installs the chosen one
  3. jtr search vscodium - searches and lists all repositories that have vscodium in their name.
  4. jtr search VSCodium/vscodium - searches and lists all release tags of repository VSCodium/vscodium
  5. jtr list - lists all executables in jitter's bin.
  6. jtr catalog - lists all downloaded repositories
  7. jtr remove VSCodium/vscodium - removes VSCodium/vscodium from your system
  8. jtr install VSCodium/[email protected] - installs VSCodium/vscodium release with the tag 1.69.0
  9. jtr update VSCodium/vscodium - updates vscodium to the latest version
  10. jtr update (this|jitter|jtr) - updates jitter to the latest release broken in the code revamp, being worked on
  11. jtr update all - updates all installed packages

Note: repositories are case insensitive, and all AppImage file names are converted to the name of the repository. jtr install VSCodium/vscodium is equivalent to jtr install vscodium/vscodium.

jitter's People

Contributors

kevspa avatar patitotective avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

jitter's Issues

-s:yes|no flag

for skipping almost all prompts with the chosen answer

Execution failes

After running the bash install script I was not able to execute jitter. The following error accurs.

jtr: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by jtr)
jtr: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by jtr

Fatal: can't download repos (OSError)

/home/sharpcdf/jitter/jitter.nim(234) jitter
/home/sharpcdf/.nimble/pkgs/argparse-3.0.0/argparse/backend.nim(646) run
/home/sharpcdf/.nimble/pkgs/argparse-3.0.0/argparse/backend.nim(639) run
/home/sharpcdf/.nimble/pkgs/argparse-3.0.0/argparse/backend.nim(551) parse
/home/sharpcdf/jitter/jitter.nim(200) :anonymous
/home/sharpcdf/jitter/jitter.nim(92) install
/home/sharpcdf/jitter/jitter/github.nim(111) ghDownload
/home/sharpcdf/jitter/jitter/github.nim(108) downloadRelease
/home/sharpcdf/jitter/jitter/extract.nim(24) extract
/home/sharpcdf/.nimble/pkgs/zippy-0.10.4/zippy/tarballs.nim(42) extractAll
/home/sharpcdf/Compilers/Nim/lib/pure/memfiles.nim(243) open
/home/sharpcdf/Compilers/Nim/lib/pure/includes/oserr.nim(95) raiseOSError
Error: unhandled exception: No such file or directory [OSError]

When given any extra flags, jtr install errors

running jtr install gh:VSCodium/vscodium - errors with

fatal.nim(53)            sysFatal
Error: unhandled exception: iterators.nim(240, 11) `len(a) == L` the length of the seq changed while iterating over it [AssertionDefect]

add versioning

ability to install several versions of a repo with the suffix of the version if a different version already exists

vscodium version 1.7.3 exists when downloading 1.4.6? add suffix to symlinks vscodium-1.4.6

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.