-
Notifications
You must be signed in to change notification settings - Fork 28
Expand file tree
/
Copy pathindex.html
More file actions
178 lines (171 loc) · 9.53 KB
/
index.html
File metadata and controls
178 lines (171 loc) · 9.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
#!/bin/sh
<<\EOF
<html lang="en">
<head>
<meta charset="utf-8"/>
<meta http-equiv="X-UA-Compatible" content="chrome=1"/>
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"/>
<title>ellipsis $ curl ellipsis.sh | sh</title>
<link rel="stylesheet" href="stylesheets/styles.css"/>
<link rel="stylesheet" href="stylesheets/dark.css"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script src="javascripts/respond.js"></script>
<!--if lt IE 9script(src='//html5shiv.googlecode.com/svn/trunk/html5.js')
-->
<!--if lt IE 8link(rel='stylesheet', href='stylesheets/ie.css')
-->
</head>
<body>
<div id="header">
<nav>
<li class="fork"><a href="https://github.com/ellipsis/ellipsis">View On GitHub</a></li>
<li class="downloads"><a href="https://github.com/ellipsis/ellipsis/zipball/master">ZIP</a></li>
<li class="downloads"><a href="https://github.com/ellipsis/ellipsis/tarball/master">TAR</a></li>
<li class="title">DOWNLOADS</li>
</nav>
</div>
<!-- end header-->
<div class="wrapper">
<section><h1 id="ellipsis-build-status-travis-image-travis-url-documentation-status-docs-image-docs-url-latest-tag-tag-image-tag-url-gitter-chat-gitter-image-gitter-url-">Ellipsis <a href="https://travis-ci.org/ellipsis/ellipsis"><img src="https://img.shields.io/travis/ellipsis/ellipsis.svg" alt="Build Status"></a> <a href="http://docs.ellipsis.sh"><img src="https://readthedocs.org/projects/ellipsis/badge/?version=master" alt="Documentation status"></a> <a href="https://github.com/ellipsis/ellipsis/tags"><img src="https://img.shields.io/github/tag/ellipsis/ellipsis.svg" alt="Latest tag"></a> <a href="https://gitter.im/ellipsis/ellipsis"><img src="https://badges.gitter.im/ellipsis/ellipsis.svg" alt="Gitter chat"></a></h1>
<pre><code><span class="hljs-tag"> <span class="hljs-title">_</span> <span class="hljs-title">_</span> <span class="hljs-title">_</span>
</span><span class="hljs-tag">/\<span class="hljs-title">_</span>\ /\<span class="hljs-title">_</span>\ /\<span class="hljs-title">_</span>\
</span><span class="hljs-tag">\/<span class="hljs-title">_</span>/ \/<span class="hljs-title">_</span>/ \/<span class="hljs-title">_</span>/ …<span class="hljs-title">because</span> $<span class="hljs-title">HOME</span> <span class="hljs-title">is</span> <span class="hljs-title">where</span> <span class="hljs-title">the</span> <<span class="hljs-title">3</span> <span class="hljs-title">is</span>!</span>
</code></pre><p>Ellipsis is a package manager for dotfiles.</p>
<h3 id="features">Features</h3>
<ul>
<li>Creating new packages is trivial (any git repository is already a package).</li>
<li>Modular configuration files are easier to maintain and share with others.</li>
<li>Allows you to quickly see which dotfiles have been modified, and keep them
updated and in-sync across systems.</li>
<li>Adding new dotfiles to your collection can be automated with <code>ellipsis add</code>.</li>
<li>Cross platform, known to work on Mac OS X, Linux, FreeBSD and even Cygwin.</li>
<li>Large test suite to ensure your <code>$HOME</code> doesn't get ravaged.</li>
<li>Completely customizable.</li>
<li><a href="http://docs.ellipsis.sh/upgrading">Works with existing dotfiles!</a></li>
</ul>
<h3 id="install">Install</h3>
<p><strong>Requirements:</strong> bash, curl, git</p>
<p>Clone and symlink or use handy-dandy installer:</p>
<pre><code class="lang-bash">$ curl ellipsis.sh | sh
</code></pre>
<p><sup>...no you didn't read that wrong, <a href="https://github.com/ellipsis/ellipsis/blob/gh-pages/index.html">the ellipsis.sh website also doubles as the installer</a></sup></p>
<p>You can also specify which packages to install by setting the <code>PACKAGES</code> variable, i.e.:</p>
<pre><code class="lang-bash">$ curl ellipsis.sh | PACKAGES=<span class="hljs-string">'vim zsh'</span> sh
</code></pre>
<p>Add <code>~/.ellipsis/bin</code> to your <code>$PATH</code> (or symlink somewhere convenient) and
start managing your dotfiles in style :)</p>
<p>As of version <code>1.7.3</code> you can also use the init system to automatically setup
you environment. As a bonus it will allow you to use the powerful <code>pkg.init</code>
hook to do the same for your packages.</p>
<h3 id="usage">Usage</h3>
<p>Ellipsis comes with no dotfiles out of the box. To install packages, use
<code>ellipsis install</code>. Packages can be specified by github-user/repo or full
ssh/git/http(s) urls:</p>
<pre><code class="lang-bash">$ ellipsis install ssh://github.com/zeekay/private.git
$ ellipsis install zeekay/vim
$ ellipsis install zsh
</code></pre>
<p>...all work. By convention <code>username/package</code> and <code>package</code> are aliases for
<a href="https://github.com/username/dot-package">https://github.com/username/dot-package</a>.</p>
<p>For full usage information you can read the <a href="http://docs.ellipsis.sh/usage">docs</a> or ask help from
the command line with the <code>-h</code> option.</p>
<h3 id="configuration">Configuration</h3>
<p>You can customize ellipsis by exporting a few different variables:</p>
<table>
<thead>
<tr>
<th>Variable</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>GITHUB_USER</code> / <code>ELLIPSIS_USER</code></td>
<td>Customizes whose dotfiles are installed when you <code>ellipsis install</code> without specifying user or a full repo url. Defaults to <code>$(git config github.user)</code> or <code>whoami</code>.</td>
</tr>
<tr>
<td><code>ELLIPSIS_REPO</code></td>
<td>Customize location of ellipsis repo cloned during a curl-based install. Defaults to <code>https://github.com/ellipsis/ellipsis</code>.</td>
</tr>
<tr>
<td><code>ELLIPSIS_PROTO</code></td>
<td>Customizes which protocol new packages are cloned with, you can specify <code>https</code>,<code>ssh</code>, <code>git</code>. Defaults to <code>https</code>.</td>
</tr>
<tr>
<td><code>ELLIPSIS_HOME</code></td>
<td>Customize which folder files are symlinked into, defaults to <code>$HOME</code>. (Mostly useful for testing)</td>
</tr>
<tr>
<td><code>ELLIPSIS_PATH</code></td>
<td>Customize where ellipsis lives on your filesystem, defaults to <code>~/.ellipsis</code>.</td>
</tr>
<tr>
<td><code>ELLIPSIS_PACKAGES</code></td>
<td>Customize where ellipsis installs packages on your filesystem, defaults to <code>~/.ellipsis/packages</code>.</td>
</tr>
<tr>
<td><code>ELLIPSIS_LOGFILE</code></td>
<td>Customize location of the logfile, defaults to <code>/tmp/ellipsis.log</code>.</td>
</tr>
</tbody>
</table>
<pre><code class="lang-bash"><span class="hljs-built_in">export</span> ELLIPSIS_USER=<span class="hljs-string">"zeekay"</span>
<span class="hljs-built_in">export</span> ELLIPSIS_PROTO=<span class="hljs-string">"ssh"</span>
<span class="hljs-built_in">export</span> ELLIPSIS_PATH=<span class="hljs-string">"~/.el"</span>
</code></pre>
<h3 id="packages">Packages</h3>
<p>A package is any repo with files you want to symlink into <code>$ELLIPSIS_HOME</code>
(typically <code>$HOME</code>). By default all of a repository's non-hidden files (read:
not beginning with a <code>.</code>) will naively be linked into place, with the exception
of a few common text files (<code>README</code>, <code>LICENSE</code>, etc).</p>
<p>You can customize how ellipsis interacts with your package by adding an
<code>ellipsis.sh</code> file to the root of your project. Here's an example of a complete
<code>ellipsis.sh</code> file:</p>
<pre><code class="lang-bash"><span class="hljs-meta">#!/usr/bin/env bash</span>
</code></pre>
<p>Yep, that's it :) If all you want to do is symlink some files into <code>$HOME</code>,
adding an <code>ellipsis.sh</code> to your package is completely optional. But what if you
need more? <a href="http://docs.ellipsis.sh/hooks">That's where hooks come in...</a></p>
<h3 id="docs">Docs</h3>
<p>Please consult the <a href="http://docs.ellipsis.sh">docs</a> for more information.</p>
<p>Specific parts that could be off interest:</p>
<ul>
<li><a href="http://docs.ellipsis.sh/hooks">Hooks</a></li>
<li><a href="http://docs.ellipsis.sh/init">Init system</a></li>
<li><a href="http://docs.ellipsis.sh/api">API</a></li>
<li><a href="http://docs.ellipsis.sh/pkgindex">Package index</a></li>
<li><a href="http://docs.ellipsis.sh/upgrading">Upgrading to Ellipsis</a></li>
<li><a href="http://docs.ellipsis.sh/completion">Zsh completion</a></li>
</ul>
<h3 id="development">Development</h3>
<p>Pull requests welcome! New code should follow the <a href="https://google.github.io/styleguide/shell.xml">existing style</a>
(and ideally include <a href="https://github.com/sstephenson/bats">tests</a>).</p>
<p>Suggest a feature or report a bug? Create an <a href="http://github.com/ellipsis/ellipsis/issues">issue</a>!</p>
<h3 id="license">License</h3>
<p>Ellipsis is open-source software licensed under the <a href="http://opensource.org/licenses/MIT">MIT license</a>.</p>
</section>
</div>
<!--if !IE
script
fixScale(document);
-->
</body>
</html><!--
EOF
# shim for ellipsis install.bash
#
# This is used on ellipsis.sh to bootstrap the full installer, which you
# otherwise can't curl and pipe to sh (as it requires bash). Not meant to be
# run standalone.
# wait for curl output to finish
sleep 0.5
# Ensure dependencies are installed.
deps="bash curl git"
for dep in $deps; do
hash $dep 2>/dev/null || { echo >&2 "ellipsis requires $dep to be installed."; exit 1; }
done
# Download full installer and execute with bash
curl -sL https://raw.githubusercontent.com/ellipsis/ellipsis/master/scripts/install.bash > install-$$.bash
bash install-$$.bash
# Clean up
rm install-$$.bash