oliver 1.8.8.5 → 1.8.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/OLD_README.md +334 -0
- data/README.md +48 -263
- data/lib/oliver/argument_files/help.rb +36 -39
- data/lib/oliver/argument_files/install.rb +2 -2
- data/lib/oliver/arguments.rb +32 -18
- data/lib/oliver/version.rb +1 -1
- data/lib/oliver.rb +0 -8
- data/oliver.gemspec +2 -2
- metadata +15 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 62fa71edd07d84bf406fad3497ef9f1e8f3486fc
|
4
|
+
data.tar.gz: 7cb6421bb8959fcf918d58f9d4fae3e5e10228e5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9832f34bfc646f712f40c49795767802e2a45c4ebab73a7f03a077a42486022e5574d7cc7a054418e0469f8fa43fe8478327ac631eabc271c9b93efb16647de9
|
7
|
+
data.tar.gz: 0f61dbf8bfc1a36a7d3e4acead1a0ee9de0334b1867e6b51517bf3bddac0501e2a5c4a68256c95619e8c0cb6c9ec5d3ced0f08b78ac0e0dfdc97307c21186e31
|
data/OLD_README.md
ADDED
@@ -0,0 +1,334 @@
|
|
1
|
+
oliver
|
2
|
+
======
|
3
|
+
|
4
|
+
[](http://badge.fury.io/rb/oliver)
|
5
|
+
|
6
|
+
Oliver manages your local GitHub projects
|
7
|
+
in a simple YAML file.
|
8
|
+
|
9
|
+
> "Like podfiles for Git repos."
|
10
|
+
-- [@istx25](https://github.com/istx25)
|
11
|
+
|
12
|
+
installation
|
13
|
+
------------
|
14
|
+
|
15
|
+
You can install Oliver through [RubyGems](https://rubygems.org/gems/oliver)
|
16
|
+
|
17
|
+
```bash
|
18
|
+
$ gem install oliver
|
19
|
+
```
|
20
|
+
|
21
|
+
now, [skip the shit in this readme](https://github.com/trommel/oliver#docs)
|
22
|
+
|
23
|
+
what the heck
|
24
|
+
-------------
|
25
|
+
|
26
|
+
users can then `git clone` a list of repos, easily,
|
27
|
+
and delete tracked repos as well.
|
28
|
+
|
29
|
+
think of this as a directory full of repos (that contain
|
30
|
+
`.git` directories) that can be tracked.
|
31
|
+
|
32
|
+
it's 1:05 AM right now, so this is probably just
|
33
|
+
a silly idea that doesn't actually make any sense.
|
34
|
+
|
35
|
+
|
36
|
+
idea
|
37
|
+
----
|
38
|
+
|
39
|
+
managing an area where you keep local (cloned)
|
40
|
+
Git repos is kind of annoying, and since everybody's
|
41
|
+
making scripts and stuff to manage files, I thought
|
42
|
+
"hey, why not make one for managing local git repos?"
|
43
|
+
|
44
|
+
the plan is that the user is to have a single
|
45
|
+
directory (stored wherever they want) that contains
|
46
|
+
all of the different git repos they've cloned.
|
47
|
+
|
48
|
+
for example (I might just make a "physical"
|
49
|
+
demonstration of this in this repo):
|
50
|
+
|
51
|
+
```
|
52
|
+
main_directory/
|
53
|
+
|- git_project_1/
|
54
|
+
|----- bin/
|
55
|
+
|----- lib/
|
56
|
+
|----- README.md
|
57
|
+
|----- .git/
|
58
|
+
|
|
59
|
+
|- git_project_2/
|
60
|
+
|----- bin/
|
61
|
+
|----- lib/
|
62
|
+
|----- README.md
|
63
|
+
|----- .git/
|
64
|
+
|
|
65
|
+
|- git_project_3/
|
66
|
+
|----- bin/
|
67
|
+
|----- lib/
|
68
|
+
|----- README.md
|
69
|
+
|----- .git/
|
70
|
+
```
|
71
|
+
|
72
|
+
and then, if you want to see
|
73
|
+
all of the directories that
|
74
|
+
you're tracking, you can run
|
75
|
+
`oliver list`.
|
76
|
+
|
77
|
+
you're probably thinking:
|
78
|
+
*"can't I just run `ls` inside the directory
|
79
|
+
and it'll do the same thing?"*, **and the
|
80
|
+
answer to your question is _yes_**.
|
81
|
+
|
82
|
+
I have no idea what I'm doing.
|
83
|
+
|
84
|
+
~~the thing that differentiates oliver with
|
85
|
+
typical things (no examples..) is that
|
86
|
+
it gives you access to the directory from
|
87
|
+
anywhere.. which you could easily do with a public
|
88
|
+
shell variable.~~
|
89
|
+
|
90
|
+
> I have no idea what I'm doing.
|
91
|
+
|
92
|
+
|
93
|
+
things I'm thinking so far
|
94
|
+
--------------------------
|
95
|
+
|
96
|
+
I'm not totally sure how this
|
97
|
+
is going to work. here's what I do know:
|
98
|
+
|
99
|
+
repos will be tracked and be kept in a list.
|
100
|
+
users can add a repo to the list, remove the repo,
|
101
|
+
view repos on the list and update the repo (essentially
|
102
|
+
run `git pull` on each individual repo).
|
103
|
+
|
104
|
+
docs
|
105
|
+
----
|
106
|
+
|
107
|
+
### setup the repo
|
108
|
+
|
109
|
+
create the base `.Olivefile.yml`
|
110
|
+
|
111
|
+
```bash
|
112
|
+
$ olive init
|
113
|
+
```
|
114
|
+
|
115
|
+
(and in the `.Olivefile.yml`)
|
116
|
+
|
117
|
+
```yaml
|
118
|
+
---
|
119
|
+
repos:
|
120
|
+
trommel:
|
121
|
+
- "oliver"
|
122
|
+
- "textymous"
|
123
|
+
istx25:
|
124
|
+
- "Fluorescent"
|
125
|
+
- "dotfiles"
|
126
|
+
misc: # use the misc category for old syntax. these don't really work, yet
|
127
|
+
- "trommel/calkoolator"
|
128
|
+
---
|
129
|
+
|
130
|
+
# use 3 spaces for indentation, not tabs! :P
|
131
|
+
# I spent, like, an hour trying to fix a non-existent bug because of this
|
132
|
+
# smh so hard
|
133
|
+
# by the way, this is YAML, for anyone interested
|
134
|
+
# then again, you could just look at the code and determine that yourself
|
135
|
+
```
|
136
|
+
|
137
|
+
you can also initialize the repo
|
138
|
+
with a folder, if you want to skip a couple
|
139
|
+
of steps (things surrounded by '[]' means
|
140
|
+
that they're optional)
|
141
|
+
|
142
|
+
```bash
|
143
|
+
$ olive init [-d|--directory] [directory name (defaulted to 'olives')]
|
144
|
+
```
|
145
|
+
|
146
|
+
### install and/or remove listed repos
|
147
|
+
|
148
|
+
```bash
|
149
|
+
$ olive install
|
150
|
+
```
|
151
|
+
|
152
|
+
### clone and start tracking a repo
|
153
|
+
|
154
|
+
this will add it to the tracking list
|
155
|
+
|
156
|
+
```bash
|
157
|
+
$ olive add username/repo
|
158
|
+
```
|
159
|
+
### remove (delete) and stop tracking a repo
|
160
|
+
|
161
|
+
this will remove it from the tracking list
|
162
|
+
and locally delete the repo
|
163
|
+
|
164
|
+
```bash
|
165
|
+
$ olive remove username/repo
|
166
|
+
```
|
167
|
+
|
168
|
+
### list tracked repos
|
169
|
+
|
170
|
+
list all of the repos that're being tracked
|
171
|
+
|
172
|
+
```bash
|
173
|
+
$ olive list
|
174
|
+
```
|
175
|
+
|
176
|
+
### update (`git pull`) each repo
|
177
|
+
|
178
|
+
essentially `cd` into each individual
|
179
|
+
repo and run `git pull`
|
180
|
+
|
181
|
+
```bash
|
182
|
+
$ olive update
|
183
|
+
```
|
184
|
+
|
185
|
+
extras
|
186
|
+
------
|
187
|
+
|
188
|
+
~~oliver uses [rainbow](https://github.com/sickill/rainbow),
|
189
|
+
a sick gem / library for making Terminal all colourful and stuff.~~
|
190
|
+
|
191
|
+
~~it's pretty cool, but if you don't like it, just
|
192
|
+
append `colour=off` to any statement~~
|
193
|
+
|
194
|
+
~~don't forget to spell *"colour"* **the proper way**.~~
|
195
|
+
|
196
|
+
things to remember
|
197
|
+
-----------------
|
198
|
+
|
199
|
+
- run everything with `olive`, not `oliver`. "oliver" is the name
|
200
|
+
of the project, `olive` is the name of the CLI.
|
201
|
+
|
202
|
+
- if you want to clone a repo from somewhere other than GitHub (GitHub
|
203
|
+
is defaulted), just use the full git URL instead of the simple
|
204
|
+
`username/repo-name`, for example `git://projects.josh.com/oliver.git`.
|
205
|
+
|
206
|
+
- arguments after the actual arguments will be ignored, i.e.:
|
207
|
+
|
208
|
+
```bash
|
209
|
+
# everything after -d will be ignored
|
210
|
+
$ olive init -d hey here are more arguments
|
211
|
+
```
|
212
|
+
|
213
|
+
branches
|
214
|
+
-------
|
215
|
+
|
216
|
+
(there may or may not be an unstable branch at the moment.
|
217
|
+
I'm constantly adding it and deleting it. i won't push gems
|
218
|
+
from the unstable branch, only from master.)
|
219
|
+
|
220
|
+
I kept fixing bugs and then I would frantically
|
221
|
+
push the fixes because I was worried people, if anyone actually
|
222
|
+
uses oliver, would experience problems with it if I didn't push
|
223
|
+
the fix immediately. the problem, obviously, with this
|
224
|
+
is that I didn't catch other things I needed to fix, and now I have,
|
225
|
+
like, a billion commits, even though most of them are just me changing
|
226
|
+
the version variable.
|
227
|
+
|
228
|
+
anyways, there's an [unstable](https://github.com/trommel/oliver/tree/unstable)
|
229
|
+
branch, if you want to check it out.
|
230
|
+
the official gem that's hosted on rubygems, though, is
|
231
|
+
the gem of the master branch, and that's how it's going to stay.
|
232
|
+
|
233
|
+
also, the unstable branch probably maybe won't work.
|
234
|
+
|
235
|
+
there also might be a "clean" branch, which is basically a (possibly) outdated
|
236
|
+
version of oliver that'll backup your directories when you run `olive install`
|
237
|
+
(if the repo isn't on the list of repos to track). the master branch
|
238
|
+
is now considered "unsafe", meaning that it will simply delete the repo
|
239
|
+
if it's not on the list when `olive install` is run.
|
240
|
+
|
241
|
+
this is probably maybe a bad idea, but it's a lot easier to maintain.
|
242
|
+
if you don't like this, fix it, and make it work properly :)
|
243
|
+
|
244
|
+
ideas
|
245
|
+
-----
|
246
|
+
|
247
|
+
refer to
|
248
|
+
[IDEAS.md](https://github.com/trommel/oliver/blob/master/IDEAS.md).
|
249
|
+
|
250
|
+
versions
|
251
|
+
--------
|
252
|
+
|
253
|
+
for some reason, I was using things like "1.5" as oliver's
|
254
|
+
version for a bit, even though oliver isn't even finished (to
|
255
|
+
even the help menu), so if you check the previous gem versions,
|
256
|
+
the newest gem version is probably (maybe) smaller / below
|
257
|
+
previous gem versions. this was me being silly and not thinking.
|
258
|
+
|
259
|
+
as of right now (July 18, 2014, 6:19 PM), oliver's version
|
260
|
+
is 0.1.5, and it will continue to build off from there.
|
261
|
+
|
262
|
+
sorry about doing that silly thing.
|
263
|
+
|
264
|
+
reference (mostly for me but kind of helpful if you don't want to go looking through code shit)
|
265
|
+
--------------------------------------------
|
266
|
+
|
267
|
+
`FileManager::YAML['repos']` is where you can reference the repos in the `.Olivefile.yml`
|
268
|
+
|
269
|
+
you can use this by `require`ing `file_manager.rb` and then using modules and stuff
|
270
|
+
|
271
|
+
for example,
|
272
|
+
|
273
|
+
```ruby
|
274
|
+
require_relative '../file_manager'
|
275
|
+
|
276
|
+
FileManager::YAML['repos'].map |username, repos| do
|
277
|
+
puts username
|
278
|
+
repos.each do |repo|
|
279
|
+
puts repo
|
280
|
+
end
|
281
|
+
end
|
282
|
+
```
|
283
|
+
|
284
|
+
etcetera, etcetera
|
285
|
+
|
286
|
+
to do
|
287
|
+
-----
|
288
|
+
|
289
|
+
there's no checkmarked things right now because i just made this list, please
|
290
|
+
don't think i'm some unproductive asshole who does nothing all day or something
|
291
|
+
idk
|
292
|
+
|
293
|
+
- [ ] remake the help/info thing to be slimmer and look better
|
294
|
+
- [ ] get `add` working
|
295
|
+
- [ ] get `remove` working
|
296
|
+
- [ ] fix bugs with `update` (tons)
|
297
|
+
- [ ] fix bugs with `install` (not as many)
|
298
|
+
- [ ] fix bugs with `list` (hardly any, afaik)
|
299
|
+
|
300
|
+
known bugs
|
301
|
+
----------
|
302
|
+
|
303
|
+
- for some reason, cloning private
|
304
|
+
repos isn't working right now.
|
305
|
+
I don't know why. Oliver uses standard
|
306
|
+
git, so this shouldn't be an issue.
|
307
|
+
|
308
|
+
testing
|
309
|
+
-------
|
310
|
+
|
311
|
+
refer to
|
312
|
+
[TESTING.md](https://github.com/trommel/oliver/blob/master/spec/TESTING.md).
|
313
|
+
|
314
|
+
contribution
|
315
|
+
------------
|
316
|
+
|
317
|
+
refer to
|
318
|
+
[CONTRIBUTING.md](https://github.com/trommel/oliver/blob/master/spec/CONTRIBUTING.md).
|
319
|
+
|
320
|
+
if you think this is cool
|
321
|
+
-------------------------
|
322
|
+
|
323
|
+
I hate dropping a link for donations,
|
324
|
+
but a dude's gotta eat.
|
325
|
+
|
326
|
+
[](https://www.gittip.com/trommel)
|
327
|
+
|
328
|
+
|
329
|
+
licensing
|
330
|
+
---------
|
331
|
+
|
332
|
+
refer to
|
333
|
+
[LICENSE](https://github.com/trommel/oliver/blob/master/spec/LICENSE).
|
334
|
+
|
data/README.md
CHANGED
@@ -3,117 +3,35 @@ oliver
|
|
3
3
|
|
4
4
|
[](http://badge.fury.io/rb/oliver)
|
5
5
|
|
6
|
-
oliver manages your local GitHub
|
7
|
-
|
6
|
+
oliver manages your local GitHub projects
|
7
|
+
in a simple YAML file.
|
8
8
|
|
9
|
-
> "
|
9
|
+
> "Like podfiles for Git repos."
|
10
10
|
-- [@istx25](https://github.com/istx25)
|
11
11
|
|
12
|
-
|
12
|
+
Installation
|
13
13
|
------------
|
14
14
|
|
15
|
-
|
16
|
-
through [RubyGems](https://rubygems.org/gems/oliver)
|
15
|
+
You can install oliver through [RubyGems](https://rubygems.org/gems/oliver)
|
17
16
|
|
18
17
|
```bash
|
19
18
|
$ gem install oliver
|
20
19
|
```
|
21
20
|
|
22
|
-
|
23
|
-
|
24
|
-
what the heck
|
25
|
-
-------------
|
26
|
-
|
27
|
-
users can then `git clone` a list of repos, easily,
|
28
|
-
and delete tracked repos as well.
|
29
|
-
|
30
|
-
think of this as a directory full of repos (that contain
|
31
|
-
`.git` directories) that can be tracked.
|
32
|
-
|
33
|
-
it's 1:05 AM right now, so this is probably just
|
34
|
-
a silly idea that doesn't actually make any sense.
|
35
|
-
|
36
|
-
|
37
|
-
idea
|
38
|
-
----
|
39
|
-
|
40
|
-
managing an area where you keep local (cloned)
|
41
|
-
Git repos is kind of annoying, and since everybody's
|
42
|
-
making scripts and stuff to manage files, I thought
|
43
|
-
"hey, why not make one for managing local git repos?"
|
44
|
-
|
45
|
-
the plan is that the user is to have a single
|
46
|
-
directory (stored wherever they want) that contains
|
47
|
-
all of the different git repos they've cloned.
|
48
|
-
|
49
|
-
for example (I might just make a "physical"
|
50
|
-
demonstration of this in this repo):
|
51
|
-
|
52
|
-
```
|
53
|
-
main_directory/
|
54
|
-
|- git_project_1/
|
55
|
-
|----- bin/
|
56
|
-
|----- lib/
|
57
|
-
|----- README.md
|
58
|
-
|----- .git/
|
59
|
-
|
|
60
|
-
|- git_project_2/
|
61
|
-
|----- bin/
|
62
|
-
|----- lib/
|
63
|
-
|----- README.md
|
64
|
-
|----- .git/
|
65
|
-
|
|
66
|
-
|- git_project_3/
|
67
|
-
|----- bin/
|
68
|
-
|----- lib/
|
69
|
-
|----- README.md
|
70
|
-
|----- .git/
|
71
|
-
```
|
72
|
-
|
73
|
-
and then, if you want to see
|
74
|
-
all of the directories that
|
75
|
-
you're tracking, you can run
|
76
|
-
`oliver list`.
|
77
|
-
|
78
|
-
you're probably thinking:
|
79
|
-
*"can't I just run `ls` inside the directory
|
80
|
-
and it'll do the same thing?"*, **and the
|
81
|
-
answer to your question is _yes_**.
|
82
|
-
|
83
|
-
I have no idea what I'm doing.
|
84
|
-
|
85
|
-
~~the thing that differentiates oliver with
|
86
|
-
typical things (no examples..) is that
|
87
|
-
it gives you access to the directory from
|
88
|
-
anywhere.. which you could easily do with a public
|
89
|
-
shell variable.~~
|
90
|
-
|
91
|
-
> I have no idea what I'm doing.
|
92
|
-
|
93
|
-
|
94
|
-
things I'm thinking so far
|
95
|
-
--------------------------
|
96
|
-
|
97
|
-
I'm not totally sure how this
|
98
|
-
is going to work. here's what I do know:
|
99
|
-
|
100
|
-
repos will be tracked and be kept in a list.
|
101
|
-
users can add a repo to the list, remove the repo,
|
102
|
-
view repos on the list and update the repo (essentially
|
103
|
-
run `git pull` on each individual repo).
|
104
|
-
|
105
|
-
docs
|
21
|
+
Documentation
|
106
22
|
----
|
107
23
|
|
108
|
-
###
|
24
|
+
### Example
|
109
25
|
|
110
|
-
|
26
|
+
Create the base `.Olivefile.yml`
|
111
27
|
|
112
28
|
```bash
|
29
|
+
$ cd projects
|
113
30
|
$ olive init
|
31
|
+
$ $EDITOR .Olivefile.yml
|
114
32
|
```
|
115
|
-
|
116
|
-
|
33
|
+
and then add whatever you'd like to the
|
34
|
+
YAML file
|
117
35
|
|
118
36
|
```yaml
|
119
37
|
---
|
@@ -124,211 +42,78 @@ repos:
|
|
124
42
|
istx25:
|
125
43
|
- "Fluorescent"
|
126
44
|
- "dotfiles"
|
127
|
-
misc:
|
45
|
+
misc:
|
128
46
|
- "trommel/calkoolator"
|
129
47
|
---
|
130
|
-
|
131
|
-
# use 3 spaces for indentation, not tabs! :P
|
132
|
-
# I spent, like, an hour trying to fix a non-existent bug because of this
|
133
|
-
# smh so hard
|
134
|
-
# by the way, this is YAML, for anyone interested
|
135
|
-
# then again, you could just look at the code and determine that yourself
|
136
48
|
```
|
137
49
|
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
```bash
|
144
|
-
$ olive init [-d|--directory] [directory name (defaulted to 'olives')]
|
145
|
-
```
|
50
|
+
- Remember to use spaces for indentation, not tabs.
|
51
|
+
- `Misc` is preferred syntax for use
|
52
|
+
when there's only one repo by an author in
|
53
|
+
your YAML file.
|
146
54
|
|
147
|
-
###
|
55
|
+
### Initializing the root
|
148
56
|
|
149
57
|
```bash
|
150
|
-
$ olive
|
58
|
+
$ olive init [-d|--directory] [directory name (defaulted to 'olives')]
|
151
59
|
```
|
152
60
|
|
153
|
-
###
|
61
|
+
### Clones/Remove repos based on YAML file
|
154
62
|
|
155
|
-
|
63
|
+
Clones repos listed in the YAML file and
|
64
|
+
removes ones saved locally that aren't found
|
65
|
+
in the file
|
156
66
|
|
157
67
|
```bash
|
158
|
-
$ olive
|
159
|
-
```
|
160
|
-
### remove (delete) and stop tracking a repo
|
161
|
-
|
162
|
-
this will remove it from the tracking list
|
163
|
-
and locally delete the repo
|
164
|
-
|
165
|
-
```bash
|
166
|
-
$ olive remove username/repo
|
68
|
+
$ olive install
|
167
69
|
```
|
168
70
|
|
169
|
-
###
|
71
|
+
### List tracked repos
|
170
72
|
|
171
|
-
|
73
|
+
List all of the repos that are being tracked
|
172
74
|
|
173
75
|
```bash
|
174
76
|
$ olive list
|
175
77
|
```
|
176
78
|
|
177
|
-
###
|
79
|
+
### Update (`git pull`) each repo
|
178
80
|
|
179
|
-
|
180
|
-
repo
|
81
|
+
Essentially run `git pull` in each
|
82
|
+
individual repo
|
181
83
|
|
182
84
|
```bash
|
183
85
|
$ olive update
|
184
86
|
```
|
185
87
|
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
~~oliver uses [rainbow](https://github.com/sickill/rainbow),
|
190
|
-
a sick gem / library for making Terminal all colourful and stuff.~~
|
191
|
-
|
192
|
-
~~it's pretty cool, but if you don't like it, just
|
193
|
-
append `colour=off` to any statement~~
|
194
|
-
|
195
|
-
~~don't forget to spell *"colour"* **the proper way**.~~
|
196
|
-
|
197
|
-
things to remember
|
198
|
-
-----------------
|
199
|
-
|
200
|
-
- run everything with `olive`, not `oliver`. "oliver" is the name
|
201
|
-
of the project, `olive` is the name of the CLI.
|
202
|
-
|
203
|
-
- if you want to clone a repo from somewhere other than GitHub (GitHub
|
204
|
-
is defaulted), just use the full git URL instead of the simple
|
205
|
-
`username/repo-name`, for example `git://projects.josh.com/oliver.git`.
|
88
|
+
Notes
|
89
|
+
-----
|
206
90
|
|
207
|
-
-
|
91
|
+
- Arguments after the actual arguments will be ignored, for example:
|
208
92
|
|
209
93
|
```bash
|
210
|
-
# everything after
|
211
|
-
$ olive init -d
|
94
|
+
# everything after "repo_name" will be ignored
|
95
|
+
$ olive init -d repo_name here are more arguments
|
212
96
|
```
|
213
97
|
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
(there may or may not be an unstable branch at the moment.
|
218
|
-
I'm constantly adding it and deleting it. i won't push gems
|
219
|
-
from the unstable branch, only from master.)
|
220
|
-
|
221
|
-
I kept fixing bugs and then I would frantically
|
222
|
-
push the fixes because I was worried people, if anyone actually
|
223
|
-
uses oliver, would experience problems with it if I didn't push
|
224
|
-
the fix immediately. the problem, obviously, with this
|
225
|
-
is that I didn't catch other things I needed to fix, and now I have,
|
226
|
-
like, a billion commits, even though most of them are just me changing
|
227
|
-
the version variable.
|
228
|
-
|
229
|
-
anyways, there's an [unstable](https://github.com/trommel/oliver/tree/unstable)
|
230
|
-
branch, if you want to check it out.
|
231
|
-
the official gem that's hosted on rubygems, though, is
|
232
|
-
the gem of the master branch, and that's how it's going to stay.
|
233
|
-
|
234
|
-
also, the unstable branch probably maybe won't work.
|
235
|
-
|
236
|
-
there also might be a "clean" branch, which is basically a (possibly) outdated
|
237
|
-
version of oliver that'll backup your directories when you run `olive install`
|
238
|
-
(if the repo isn't on the list of repos to track). the master branch
|
239
|
-
is now considered "unsafe", meaning that it will simply delete the repo
|
240
|
-
if it's not on the list when `olive install` is run.
|
241
|
-
|
242
|
-
this is probably maybe a bad idea, but it's a lot easier to maintain.
|
243
|
-
if you don't like this, fix it, and make it work properly :)
|
244
|
-
|
245
|
-
ideas
|
246
|
-
-----
|
247
|
-
|
248
|
-
refer to
|
249
|
-
[IDEAS.md](https://github.com/trommel/oliver/blob/master/IDEAS.md).
|
250
|
-
|
251
|
-
versions
|
252
|
-
--------
|
253
|
-
|
254
|
-
for some reason, I was using things like "1.5" as oliver's
|
255
|
-
version for a bit, even though oliver isn't even finished (to
|
256
|
-
even the help menu), so if you check the previous gem versions,
|
257
|
-
the newest gem version is probably (maybe) smaller / below
|
258
|
-
previous gem versions. this was me being silly and not thinking.
|
259
|
-
|
260
|
-
as of right now (July 18, 2014, 6:19 PM), oliver's version
|
261
|
-
is 0.1.5, and it will continue to build off from there.
|
262
|
-
|
263
|
-
sorry about doing that silly thing.
|
264
|
-
|
265
|
-
reference (mostly for me but kind of helpful if you don't want to go looking through code shit)
|
266
|
-
--------------------------------------------
|
267
|
-
|
268
|
-
`FileManager::YAML['repos']` is where you can reference the repos in the `.Olivefile.yml`
|
269
|
-
|
270
|
-
you can use this by `require`ing `file_manager.rb` and then using modules and stuff
|
271
|
-
|
272
|
-
for example,
|
273
|
-
|
274
|
-
```ruby
|
275
|
-
require_relative '../file_manager'
|
276
|
-
|
277
|
-
FileManager::YAML['repos'].map |username, repos| do
|
278
|
-
puts username
|
279
|
-
repos.each do |repo|
|
280
|
-
puts repo
|
281
|
-
end
|
282
|
-
end
|
283
|
-
```
|
98
|
+
Extras
|
99
|
+
------
|
284
100
|
|
285
|
-
|
101
|
+
oliver uses [rainbow](https://github.com/sickill/rainbow), a gem for colouring the Terminal prompt.
|
102
|
+
If you want to use it, just prepend `colour=on` to any olive command.
|
286
103
|
|
287
|
-
|
104
|
+
To-Do
|
288
105
|
-----
|
289
106
|
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
- [ ]
|
295
|
-
- [ ] get `add` working
|
296
|
-
- [ ] get `remove` working
|
297
|
-
- [ ] fix bugs with `update` (tons)
|
298
|
-
- [ ] fix bugs with `install` (not as many)
|
299
|
-
- [ ] fix bugs with `list` (hardly any, afaik)
|
300
|
-
|
301
|
-
known bugs
|
302
|
-
----------
|
303
|
-
|
304
|
-
- for some reason, cloning private
|
305
|
-
repos isn't working right now.
|
306
|
-
I don't know why. Oliver uses standard
|
307
|
-
git, so this shouldn't be an issue.
|
308
|
-
|
309
|
-
testing
|
310
|
-
-------
|
311
|
-
|
312
|
-
refer to
|
313
|
-
[TESTING.md](https://github.com/trommel/oliver/blob/master/spec/TESTING.md).
|
314
|
-
|
315
|
-
contribution
|
316
|
-
------------
|
317
|
-
|
318
|
-
refer to
|
319
|
-
[CONTRIBUTING.md](https://github.com/trommel/oliver/blob/master/spec/CONTRIBUTING.md).
|
320
|
-
|
321
|
-
if you think this is cool
|
322
|
-
-------------------------
|
323
|
-
|
324
|
-
I hate dropping a link for donations,
|
325
|
-
but a dude's gotta eat.
|
107
|
+
- [ ] Remake the help/info thing to be slimmer & look better
|
108
|
+
- [ ] Fix bugs with..
|
109
|
+
- [ ] `update` (tons)
|
110
|
+
- [ ] `install` (not as many)
|
111
|
+
- [ ] `list` (hardly any, I think)
|
326
112
|
|
327
|
-
[
|
113
|
+
##[ideas.md](https://github.com/trommel/oliver/blob/master/IDEAS.md)
|
328
114
|
|
115
|
+
##[testing.md](https://github.com/trommel/oliver/blob/master/spec/TESTING.md)
|
329
116
|
|
330
|
-
|
331
|
-
---------
|
117
|
+
##[contribution.md](https://github.com/trommel/oliver/blob/master/spec/CONTRIBUTING.md)
|
332
118
|
|
333
|
-
|
334
|
-
[LICENSE](https://github.com/trommel/oliver/blob/master/spec/LICENSE).
|
119
|
+
##[LICENSE](https://github.com/trommel/oliver/blob/master/spec/LICENSE)
|
@@ -1,46 +1,43 @@
|
|
1
1
|
require_relative '../oliver_file_name'
|
2
2
|
# Help the user with their heavy troubles
|
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
|
-
'return this help menu'
|
33
|
-
]
|
3
|
+
helper = [
|
4
|
+
[
|
5
|
+
'init',
|
6
|
+
"initializes the main directory by creating a base dotfile"
|
7
|
+
],
|
8
|
+
|
9
|
+
[
|
10
|
+
'install',
|
11
|
+
"clones/removes repos if they're listed"
|
12
|
+
],
|
13
|
+
|
14
|
+
[
|
15
|
+
'list',
|
16
|
+
"list repos currently on #{Name::OLIVER}"
|
17
|
+
],
|
18
|
+
|
19
|
+
[
|
20
|
+
'update',
|
21
|
+
"pull updates from each tracked repo"
|
22
|
+
],
|
23
|
+
|
24
|
+
[
|
25
|
+
'-v',
|
26
|
+
'return oliver\'s version'
|
27
|
+
],
|
28
|
+
|
29
|
+
[
|
30
|
+
'-h',
|
31
|
+
'return this help menu'
|
34
32
|
]
|
33
|
+
]
|
35
34
|
|
36
|
-
|
35
|
+
top_message = 'oliver - help / usage'
|
37
36
|
|
38
|
-
|
39
|
-
|
40
|
-
|
37
|
+
puts Rainbow(top_message).red
|
38
|
+
(top_message.length + 1).times { print Rainbow('=').yellow }
|
39
|
+
puts
|
41
40
|
|
42
|
-
|
43
|
-
|
44
|
-
end
|
45
|
-
exit
|
41
|
+
helper.map do |line, blurb|
|
42
|
+
puts "#{Rainbow(line).green} # => #{Rainbow(blurb).blue}"
|
46
43
|
end
|
@@ -79,7 +79,7 @@ end
|
|
79
79
|
current_repos.each do |directory|
|
80
80
|
unless listed_repos.to_s.include?(directory) &&
|
81
81
|
File.directory?(directory)
|
82
|
-
print "#{warning}
|
83
|
-
FileUtils.rm_rf(directory) if STDIN.gets.chomp.downcase ==
|
82
|
+
print "#{warning} Enter #{directory}'s name to delete it: "
|
83
|
+
FileUtils.rm_rf(directory) if STDIN.gets.chomp.downcase == directory
|
84
84
|
end
|
85
85
|
end
|
data/lib/oliver/arguments.rb
CHANGED
@@ -1,28 +1,42 @@
|
|
1
1
|
# Require files
|
2
2
|
require_relative 'oliver_file_name'
|
3
|
-
require_relative '
|
3
|
+
require_relative 'version'
|
4
|
+
|
5
|
+
def help
|
6
|
+
require_relative 'argument_files/help'
|
7
|
+
end
|
4
8
|
|
5
9
|
# Default options
|
6
10
|
options = {
|
7
|
-
:verbose
|
8
|
-
:silent
|
9
|
-
:directory => false
|
11
|
+
:verbose => true,
|
12
|
+
:silent => false,
|
13
|
+
:directory => false,
|
14
|
+
:colour => ARGV[-1] == '--color'
|
10
15
|
}
|
11
16
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
when 'list'
|
18
|
-
require_relative 'argument_files/list'
|
19
|
-
when 'update'
|
20
|
-
require_relative 'argument_files/update'
|
21
|
-
when '-h' || '--help' || 'help'
|
17
|
+
# Enable/Disable Rainbow
|
18
|
+
Rainbow.enabled = options[:colour]
|
19
|
+
|
20
|
+
# Help if user doesn't specify proper arguments
|
21
|
+
if ARGV.empty? || (ARGV[0] && ARGV[-1]) == 'colour=on'
|
22
22
|
help
|
23
|
-
when '-v' || '--version' || 'version'
|
24
|
-
puts "#{Rainbow('oliver').red} #{Rainbow("v#{Oliver::VERSION}").green}"
|
25
|
-
exit
|
26
23
|
else
|
27
|
-
|
24
|
+
# Case for arguments
|
25
|
+
case ARGV[0].downcase
|
26
|
+
when 'install'
|
27
|
+
require_relative 'argument_files/install'
|
28
|
+
when 'init'
|
29
|
+
require_relative 'argument_files/init'
|
30
|
+
when 'list'
|
31
|
+
require_relative 'argument_files/list'
|
32
|
+
when 'update'
|
33
|
+
require_relative 'argument_files/update'
|
34
|
+
when '-h' || '--help' || 'help'
|
35
|
+
help
|
36
|
+
when '-v' || '--version' || 'version'
|
37
|
+
puts "#{Rainbow('oliver').red} #{Rainbow("v#{Oliver::VERSION}").green}"
|
38
|
+
exit
|
39
|
+
else
|
40
|
+
puts "#{Rainbow('Error').underline.red}: Unknown argument: #{ARGV[0]}"
|
41
|
+
end
|
28
42
|
end
|
data/lib/oliver/version.rb
CHANGED
data/lib/oliver.rb
CHANGED
@@ -1,13 +1,5 @@
|
|
1
1
|
# Require files
|
2
2
|
require 'rainbow'
|
3
|
-
require_relative 'oliver/version'
|
4
|
-
require_relative 'oliver/argument_files/help'
|
5
|
-
|
6
|
-
# Provide help if no arguments are specified
|
7
|
-
help && exit if ARGV[0].nil?
|
8
|
-
|
9
|
-
# if the user wants to use rainbow
|
10
|
-
Rainbow.enabled = true if ARGV[-1] == 'colour=on'
|
11
3
|
|
12
4
|
# Arguments
|
13
5
|
require_relative 'oliver/arguments'
|
data/oliver.gemspec
CHANGED
@@ -17,6 +17,6 @@ Gem::Specification.new do |gem|
|
|
17
17
|
|
18
18
|
gem.add_development_dependency 'bundler', '~> 1.6'
|
19
19
|
gem.add_development_dependency 'rake'
|
20
|
-
gem.add_dependency 'rainbow', '>= 2.0.0'
|
21
|
-
gem.add_dependency 'git', '>= 1.2.8'
|
20
|
+
gem.add_dependency 'rainbow', '~> 2.0', '>= 2.0.0'
|
21
|
+
gem.add_dependency 'git', '~> 1.2', '>= 1.2.8'
|
22
22
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: oliver
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.8.
|
4
|
+
version: 1.8.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Josh
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-11-
|
11
|
+
date: 2014-11-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -42,6 +42,9 @@ dependencies:
|
|
42
42
|
name: rainbow
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '2.0'
|
45
48
|
- - ">="
|
46
49
|
- !ruby/object:Gem::Version
|
47
50
|
version: 2.0.0
|
@@ -49,6 +52,9 @@ dependencies:
|
|
49
52
|
prerelease: false
|
50
53
|
version_requirements: !ruby/object:Gem::Requirement
|
51
54
|
requirements:
|
55
|
+
- - "~>"
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: '2.0'
|
52
58
|
- - ">="
|
53
59
|
- !ruby/object:Gem::Version
|
54
60
|
version: 2.0.0
|
@@ -56,6 +62,9 @@ dependencies:
|
|
56
62
|
name: git
|
57
63
|
requirement: !ruby/object:Gem::Requirement
|
58
64
|
requirements:
|
65
|
+
- - "~>"
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '1.2'
|
59
68
|
- - ">="
|
60
69
|
- !ruby/object:Gem::Version
|
61
70
|
version: 1.2.8
|
@@ -63,6 +72,9 @@ dependencies:
|
|
63
72
|
prerelease: false
|
64
73
|
version_requirements: !ruby/object:Gem::Requirement
|
65
74
|
requirements:
|
75
|
+
- - "~>"
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '1.2'
|
66
78
|
- - ">="
|
67
79
|
- !ruby/object:Gem::Version
|
68
80
|
version: 1.2.8
|
@@ -80,6 +92,7 @@ files:
|
|
80
92
|
- Gemfile
|
81
93
|
- IDEAS.md
|
82
94
|
- LICENSE
|
95
|
+
- OLD_README.md
|
83
96
|
- README.md
|
84
97
|
- Rakefile
|
85
98
|
- bin/olive
|