- an Erlang package manager meant to have minimal impact on projects
- a simple and easy dependency tracker
- a packaging and deployment tool
- meant to handle non-Erlang dependencies
curl "https://github.com/JacobVorreuter/epm/raw/master/epm" > epm
chmod +x epm
sudo mv epm /usr/local/bin/
epm config --set build_dir "/tmp"
epm config --set install_dir "/Users/jvorreuter/erl_libs"
epm config --set proxy_host http://my.corporate.proxy
epm config --set proxy_port 80
epm config --set net_timeout 60000 # for a slow network...
http://www.jkvor.com/erlang-package-manager
install [<user>/]<project> {project options}, ... {global options}
project options:
--tag <tag>
--branch <branch>
--sha <sha>
--with-deps (default)
--without-deps
--prebuild-command <cmd>
--build-command <cmd>
--test-command <cmd>
global options:
--verbose
--config-set <key> <value>
remove [<user>/]<project> {project options}, ... {global options}
project options:
--tag <tag>
--branch <branch>
--sha <sha>
global options:
--verbose
--config-set <key> <value>
update [<user>/]<project> {project options}, ... {global options}
project options:
--tag <tag>
--branch <branch>
--sha <sha>
--with-deps
--without-deps (default)
global options:
--verbose
--config-set <key> <value>
info [<user>/]<project>, ... {global options}
global options:
--config-set <key> <value>
search <project>, ... {global options}
global options:
--config-set <key> <value>
list
latest
config {options}
options:
--get (default)
--set <key> <value>
--remove <key>
tell epm where to install packages
jvorreuter$ epm config --set install_dir /Users/jvorreuter/dev
epm v0.1.1, 2010
+ updated .epm config
search for an Erlang app
jvorreuter$ ./epm search excavator
epm v0.1.1, 2010
===============================
AVAILABLE
===============================
name: excavator
owner: JacobVorreuter
followers: 7
homepage:
description: An Erlang application for ingesting data from various sources (APIs, data feeds, web content, etc)
tags:
"0.3"
branches:
master
scheduler
install that app that you wanted (its dependencies will be installed too)
jvorreuter$ ./epm install excavator
epm v0.1.1, 2010
===============================
Install the following packages?
===============================
+ clones-mochiweb-master
+ JacobVorreuter-mochiweb_server_behavior-master
+ epm-etap-master
+ JacobVorreuter-dynamic_compile-master
+ JacobVorreuter-mochixpath-master
+ JacobVorreuter-excavator-master
([y]/n) y
+ downloading http://github.com/clones/mochiweb/tarball/master
+ running mochiweb build command
+ running mochiweb install command
+ downloading http://github.com/JacobVorreuter/mochiweb_server_behavior/tarball/master
+ running mochiweb_server_behavior build command
+ running mochiweb_server_behavior install command
+ downloading http://github.com/epm/etap/tarball/master
+ running etap build command
+ running etap install command
+ downloading http://github.com/JacobVorreuter/dynamic_compile/tarball/master
+ running dynamic_compile build command
+ running dynamic_compile install command
+ downloading http://github.com/JacobVorreuter/mochixpath/tarball/master
+ running mochixpath build command
+ running mochixpath install command
+ downloading http://github.com/JacobVorreuter/excavator/tarball/master
+ running excavator build command
+ running excavator install command
get some info about that app you just installed
jvorreuter$ ./epm info excavator
epm v0.1.1, 2010
===============================
INSTALLED
===============================
name: excavator
owner: JacobVorreuter
vsn: master
install dir: /Users/jvorreuter/dev/excavator-0.3
homepage:
description: An Erlang application for ingesting data from various sources (APIs, data feeds, web content, etc)
dependencies:
clones/mochiweb/master
mochixpath/master
dynamic_compile/master
epm/etap/master
mochiweb_server_behavior/master
how 'bout a list of all apps I've installed?
jvorreuter$ ./epm list
epm v0.1.1, 2010
===============================
INSTALLED
===============================
name: excavator
owner: JacobVorreuter
vsn: master
install dir: /Users/jvorreuter/dev/excavator-0.3
homepage:
description: An Erlang application for ingesting data from various sources (APIs, data feeds, web content, etc)
dependencies:
clones/mochiweb/master
mochixpath/master
dynamic_compile/master
epm/etap/master
mochiweb_server_behavior/master
name: mochixpath
owner: JacobVorreuter
vsn: master
install dir: /Users/jvorreuter/dev/mochixpath-0.1
homepage: http://yummymeatwhiz.com
description: Mochiweb html parser xpath extension
name: dynamic_compile
owner: JacobVorreuter
vsn: master
install dir: /Users/jvorreuter/dev/dynamic_compile-0.1
homepage:
description: compile and load erlang modules from string input
name: mochiweb_server_behavior
owner: JacobVorreuter
vsn: master
install dir: /Users/jvorreuter/dev/mochiweb_server_behavior-0.1
homepage:
description: Erlang behavior for a simple mochiweb web server
dependencies:
clones/mochiweb/master
name: etap
owner: epm
vsn: master
install dir: /Users/jvorreuter/dev/etap-0.3.4
homepage:
description: etap is a simple erlang testing library that provides TAP compliant output.
name: mochiweb
owner: clones
vsn: master
install dir: /Users/jvorreuter/dev/mochiweb-0.01
homepage: http://code.google.com/p/mochiweb/
description: mochiweb clone
what have I done? I must remove that terrible app. Its dependencies can stay though
jvorreuter$ ./epm remove excavator
epm v0.1.1, 2010
===============================
Remove the following packages?
===============================
+ JacobVorreuter-excavator-master
([y]/n) y
+ removing package JacobVorreuter-excavator-master from /Users/jvorreuter/dev/excavator-0.3