Coder Social home page Coder Social logo

ricardofabila / fox Goto Github PK

View Code? Open in Web Editor NEW
5.0 2.0 0.0 5.03 MB

🦊 A (simple!) package manager to install tools with ease on macOS and Linux

Home Page: http://getfox.sh

License: MIT License

Go 92.02% Shell 7.98%
cli linux macos package-manager simple unix

fox's Introduction

fox

fox

AboutDependenciesInstallationFeaturesHow to install packagesTODOsCredits


“It’s been a prevalent notion. Fallen sparks. Fragments of vessels broken at the Creation. And someday, somehow, before the end, a gathering back to home. A messenger from the Kingdom, arriving at the last moment. But I tell you there is no such message, no such home – only the millions of last moments… nothing more. Our history is an aggregate of last moments.”

― Thomas Pynchon, Gravity’s Rainbow


images/fox-demo.gif

📖 About

This tool helps you install packages from private (and public) GitHub repositories.

What does 🦊 fox do?

  • Makes is trivial to install a package form a GitHub repository even if it’s private. Fox packages are just GitHub releases, as long as you have read access to a repo, you can install anything you want.
  • Fox installs packages to a specific directory /usr/local/bin/Fox/bin (on macOS and linux systems). It won’t install anything outside that directory.
  • Trivially create your own packages. To add your repo to the available packages list, all you need to do is edit a yaml file. That’s it!

🤖 Installation:

This small section is meant to help you get started in no time. Getting started is as easy as 1, 2, 3.

1.) Just run:

sudo curl -fsSL "install.getfox.sh" | bash

Follow the on screen instructions to add fox to your $PATH.

2.) Install the official GitHub CLI, if you don’t already have it. Relax, you can run fox gh to install it 😉. Then run gh auth. To setup authentication. I recommend using adding ssh keys so you never have to use a password.

3.) That’s it! That wasn’t so bad, was it?

If you did everything correctly you can try running the following command:

This will check your environment for potential problems and possible enhancements:

fox doctor

Dependencies:

⚓ Required

This tool is as zero-dependencies as it can possibly get.

  • GitHub CLI to install packages. You can run fox gh to install it.

That’s it. Seriously, you don’t need to install anything more.


🎉 Features

Basically I implemented all the basic commands that you use with other package managers.

completion:    Generate the autocompletion script for the specified shell
config:        Display your fox configuration
doctor:        Check for common issues and recommendations with your fox
               configuration and overall environment.
help:          Help about any command
info:          Get info about a specific package
install:       Install a package
installed:     List the packages you have installed
list:          See the repositories available
repositories:  Print your repositories file
uninstall:     Remove packages from your system
update:        Update the available packages cache
upgrade:       Upgrade installed packages to the latest version

images/first.png

Multiplatform

Works for the major unix-like operative systems (macOS and linux).

Note: Even though I can build a Windows executable, it wouldn’t work. I’ll add windows support (much) later.

Doctor

images/doctor.png

Use the built-in doctor command to check for problems as well as recommendations.

Autocompletion

Use the built-in completion command to generate auto-completions for various shells.

images/autocompletion.png


How to install packages

Installing packages is super easy, just run:

fox install <package-name>

There is an official list of packages that you can find here. If you have a public package that you want to share with the world, feel free to submit a PR for it. I will gladly add it to the list 😄. See the section below for more details.

How install almost anything with fox

Fox packages are just regular GitHub releases, you can install packages that are on GitHub but the author didn’t add it to a package manager**. All without needed the package authors to even know that fox exists. As long as their releases follow a pattern that fox can understand (which is the same pattern most package managers use), you should be able to do it (some exceptions apply).

We can use this repo I randomly found as an example:

fox add package --path "metadelta/mdlt" --type "binary" --executableName "mdlt"

And now you can do fox update and then a quick fox install mdlt and bam! You have it without the author needing to do anything.

You can learn more details here.

How to make my package installable with fox

You can follow the official docs here.

📓 TODOs

Homework for me 🤓

  • ☐ GitLab support.
  • ☐ Arbitrary repositories (eg. S3 buckets, your own server) support.
  • ☐ Windows support.

💳 Credits

Made with ❤️ by @ricardofabila
at Bishop Fox

*No foxes were harmed in the making of this package.

**I can’t blame them, it is unnecessary difficult; specially for private repos. That’s why I made fox in the first place. It was easier to create a new package manager that works on macOS and linux than to add my CLI tool to HomeBrew because it was a private repo.

fox's People

Contributors

ricardofabila avatar

Stargazers

John Vandenberg avatar Giovanni Delgado avatar Sergiy Pashenko avatar Jerome Olvera avatar Jorge Chavez avatar

Watchers

Jorge Chavez avatar  avatar

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.