Git Product home page Git Product logo

equip's Introduction

Equip

Tool to equip your shell with the things you need.

This is a sort of package manager, the packages for which can specify to install files under your $HOME, to use the system package manager to install system packages, or to use another package system such as npm/yarn. System packages will be installed when privleges are available, otherwise instructions will be generated which a privledged user can follow to install them.

Equip is intended to be compatible with a $HOME which is synchronized across several computers (e.g. with Unison) not necessarily running the same host OS.

This is a spinoff of my effort to simplify replicating my personal setup on new computers and temporary VMs, as well as to share useful solutions with whomever may benefit. It separates the mechanisms used for replication from the tools and configurations to be replicated.

Supported Systems

Because packages may include information about installing system packages, it is possible for a repository to not support for some systems which are supported by Equip itself, or for a package to represent functionality which is not available on some systems which are otherwise supported. It is not possible to provide a universal solution to this problem, so even supported systems may not always behave as expected.

Primary development is done on MacOS, where MacPorts is used as a system package manager. Support of MacOS is beginning to be implemented.

Testing will be done on at least OpenSUSE and CentOS, and maybe be done on other Linux distributions. Support of Linux distributions is currently nonexistent, is planned for at least 2 distributions, and may be expanded.

Testing will be done on Windows with Cygwin

Installation

Once implemented, you'll be able to "equip" a shell on MacOS, some Linuxes, and Cygwin with this command:

curl -f -# https://raw.githubusercontent.com/Polyergic/Equip/master/bin/equip-bootstrap | bash

This will install all necessary system packages, and do some rearranging of your shell configuration files to make them modular and ensure that installed tools are in your path. On MacOS this will install MacPorts, use it to install some of the necessary "system" packages, and override some native BSD-style commands with their GNU counterparts.

Licensing

New work in this repository is licensed under AGPLv3 (see file LICENSE):

Equip - Tool to equip your shell with the things you need.
Copyright (c) 2017 Shad Sterling

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Adopted and derived portions are used under their original license:

  • For any directory containing another LICENSE file, all files and subdirectories not containing yet another LICENSE file are licensed by the copyrightholder under the license therein.
  • For sections within files that are attributed to a source (and large enough to be subject to copyright), the section falls under the license given in the attribution or specified at the source URL.

Please create issues in this repository to report any errors in licensing or attribution.

equip's People

Contributors

shadsterling avatar

Watchers

 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.