All Projects β†’ borkdude β†’ glam

borkdude / glam

Licence: EPL-1.0 license
A cross-platform package manager.

Programming Languages

clojure
4091 projects
shell
77523 projects
Batchfile
5799 projects

Projects that are alternatives of or similar to glam

meta-package-manager
🎁 a wrapper around all package managers
Stars: ✭ 277 (+354.1%)
Mutual labels:  package-manager
bramble
Purely functional build system and package manager
Stars: ✭ 173 (+183.61%)
Mutual labels:  package-manager
MGM-Ability
No description or website provided.
Stars: ✭ 64 (+4.92%)
Mutual labels:  package-manager
PacPaw
Pawn package manager for SA-MP
Stars: ✭ 14 (-77.05%)
Mutual labels:  package-manager
loverocks
LΓ–VE + Luarocks
Stars: ✭ 80 (+31.15%)
Mutual labels:  package-manager
gitpack
Git-based package manager written in POSIX shell
Stars: ✭ 72 (+18.03%)
Mutual labels:  package-manager
gruntwork-installer
A script to make it easy to install Gruntwork Modules
Stars: ✭ 72 (+18.03%)
Mutual labels:  package-manager
cati
Cati Unix Package Manager
Stars: ✭ 19 (-68.85%)
Mutual labels:  package-manager
zpm
InterSystems ObjectScript Package Manager
Stars: ✭ 17 (-72.13%)
Mutual labels:  package-manager
honest
Are your installed packages _really_ the same as you saw on GitHub?
Stars: ✭ 25 (-59.02%)
Mutual labels:  package-manager
sw
Software Manager. Build System, Build System Generator and Package Manager. C/C++ and other languages. Tools and libraries for Software Management.
Stars: ✭ 93 (+52.46%)
Mutual labels:  package-manager
com.newtonsoft.json
Unity package manager setup for Newtonsoft's JSON library
Stars: ✭ 27 (-55.74%)
Mutual labels:  package-manager
cppan
Project evolved into Software Network: https://github.com/SoftwareNetwork/sw
Stars: ✭ 108 (+77.05%)
Mutual labels:  package-manager
snafu
Work with Python distributions on Windows how it’s supposed to work.
Stars: ✭ 25 (-59.02%)
Mutual labels:  package-manager
pint
A single-file command-line package manager for Windows.
Stars: ✭ 35 (-42.62%)
Mutual labels:  package-manager
starman
Another package manager for HPC warriors.
Stars: ✭ 56 (-8.2%)
Mutual labels:  package-manager
diamond
Dependency management built for Sass, Less, and CSS.
Stars: ✭ 19 (-68.85%)
Mutual labels:  package-manager
sherpa
a mini-package-manager for QNAP NAS
Stars: ✭ 63 (+3.28%)
Mutual labels:  package-manager
awesome-package-manager
☘ Awesome package manager resources
Stars: ✭ 87 (+42.62%)
Mutual labels:  package-manager
jean
Bored from installing tiny shell scripts and .dotfiles manually? Huh! Missing Shell Package Manager For Linux
Stars: ✭ 21 (-65.57%)
Mutual labels:  package-manager

Glam

A cross-platform package manager.

Work in progress, still in flux, not ready for production, breaking changes will happen.

Goals

  • Easy CI install of glam itself and the packages that it supports
  • Cross platform: support for linux, macOS and Windows (without relying on PowerShell)
  • Bring binaries into scope globally or just for one shell or directory
  • Configuration using EDN

Install

Currently, glam relies on git (for downloading package repos) and tar (optional, for untarring .tgz archives).

Navigate to the latest build on CircleCI and download a binary for linux or macOS. Binaries for Windows are coming soon. Unzip the binary, place it on your path and run:

$ glam-bin setup

This installs a shell helper script and pulls the latest glam packages.

To finish setup, add this to your .bashrc analog:

source $HOME/.glam/scripts/glam.sh

To immediately start using glam, also execute the above in your shell.

After setting up, you will find a glam.edn in $HOME/.config/glam with the following contents:

{:glam/repos
 [{:repo/name glam/core
   :git/url "https://github.com/glam-pm/packages"}]
 :glam/deps {}}

Sample installation in a fresh Ubuntu docker image:

$ docker run -it --rm ubuntu /bin/bash

# installing glam itself
$ apt-get update && apt-get install curl git unzip -y
$ curl -sLO https://30-298997735-gh.circle-artifacts.com/0/release/glam-0.0.1-SNAPSHOT-linux-amd64.zip
$ unzip glam-0.0.1-SNAPSHOT-linux-amd64.zip -d /usr/local/bin
$ glam-bin setup
$ source $HOME/.glam/scripts/glam.sh

# installing clj-kondo and babashka:
$ glam install clj-kondo/clj-kondo org.babashka/babashka
$ clj-kondo --version
clj-kondo v2020.09.09
$ bb --version
babashka v0.2.2

Packages

Package files like <package-org>/<package-name>.glam.edn are listed in package repos specified in the global glam.edn config file under :glam/repos. Packages are cloned/pulled to $HOME/.glam/packages. The main package repo lives in $HOME/.glam/packages/glam/core. You can add your own repos in the config file and also change precedence by changing the order.

To update package repos, run:

$ glam pull

Usage

Current shell

To install packages for the current shell:

$ glam install clj-kondo/clj-kondo org.babashka/babashka

Now clj-kondo and bb are available:

$ which bb
/Users/borkdude/.glam/repository/org.babashka/babashka/0.2.2/bb
$ which clj-kondo
/Users/borkdude/.glam/repository/clj-kondo/clj-kondo/2020.09.09/clj-kondo
$ bb '(+ 1 2 3)'
6

Use --verbose for more output, --force for re-downloading packages.

To install a specific versions:

$ glam install clj-kondo/clj-kondo@2020.09.09 org.babashka/babashka@0.2.2

Project

To save installation settings for a project directory, create a glam.edn with the following contents:

{:glam/deps {org.babashka/babashka {:dep/version "0.2.2"}}}

To use the latest version, use {org.babashka/babashka {:dep/version :latest}}.

Then run glam install and the deps should be added to the path.

Global

To install packages globally, add to :glam/deps in $HOME/.config/glam/glam.edn:

{org.babashka/babashka {:dep/version "0.2.2}}

Run glam install and the global package should be added to the path.

Dev

To develop glam using Clojure, you can invoke it using clojure -M:glam when adding this to deps.edn:

:glam {:extra-deps
       {borkdude/glam {:local/root "/your/dev/glam"}}
        :main-opts ["-m" "glam.main"]}

You can re-install shell scripts using clojure -M:glam setup --force.

You can override calling the binary in the shell script with GLAM_CMD, for example:

$ GLAM_CMD="clojure -M:glam" glam install

License

Copyright Β© 2020 Michiel Borkent

Distributed under the EPL License. See LICENSE.

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].