oliver 0.1.4 → 0.1.5
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/README.md +95 -1
- data/lib/oliver/arguments.rb +21 -0
- data/lib/oliver/main.rb +38 -2
- data/lib/oliver/methods.rb +26 -22
- data/lib/oliver/version.rb +1 -1
- data/lib/oliver.rb +24 -8
- data/oliver.gemspec +1 -2
- metadata +6 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d686a49cbf3764bb1776ff50533206c15a676ccd
|
4
|
+
data.tar.gz: 9a3c2bf11892142353fe89cf7a175af54cba0313
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fdacc5c3d3d93dcefd7157e6d8b2e18318c9c28fef2b312d36832f782331dca9b6c463ba3eb3a5980670db54e53a8db90ac879e3e913f52d57f287100d31c9d5
|
7
|
+
data.tar.gz: c2d1fda5a4844c6bfaa52e0bb8dba6a69d4250963bfaadf8fec4e8faea1334aa4318c93e0c49612ac8c66530df1984c882097008f585deabc823fbf4c76d1c82
|
data/README.md
CHANGED
@@ -1,14 +1,19 @@
|
|
1
1
|
oliver
|
2
2
|
======
|
3
3
|
|
4
|
+
[](http://badge.fury.io/rb/oliver)
|
5
|
+
|
4
6
|
oliver manages your local GitHub
|
5
7
|
repositories for you with a simple `Olivefile`.
|
6
8
|
|
9
|
+
> "like podfiles, but for git repositories"
|
10
|
+
-- [@istx25](https://github.com/istx25)
|
11
|
+
|
7
12
|
installation
|
8
13
|
------------
|
9
14
|
|
10
15
|
oliver is a CLI that you can install
|
11
|
-
through [RubyGems](https://rubygems.org)
|
16
|
+
through [RubyGems](https://rubygems.org/gems/oliver)
|
12
17
|
|
13
18
|
```bash
|
14
19
|
$ gem install oliver
|
@@ -105,6 +110,40 @@ the `olive` command will be what you use
|
|
105
110
|
when working with oliver, similar to how
|
106
111
|
bundler uses the `bundle` command.
|
107
112
|
|
113
|
+
before you do anything, you'll probably
|
114
|
+
want to initialize the entire directory
|
115
|
+
that you're keeping these git
|
116
|
+
repositories in (in the example
|
117
|
+
above, "main_directory/" would
|
118
|
+
be the directory)
|
119
|
+
do to this, you're going to want
|
120
|
+
to make a `OliveFile` and write a bit
|
121
|
+
in it
|
122
|
+
|
123
|
+
```bash
|
124
|
+
$ cd main_directory/
|
125
|
+
$ touch Olivefile
|
126
|
+
$ vim Olivefile
|
127
|
+
```
|
128
|
+
|
129
|
+
and in the `Olivefile`
|
130
|
+
|
131
|
+
```vim
|
132
|
+
repos:
|
133
|
+
- "trommel/oliver"
|
134
|
+
- "istx25/dotfiles"
|
135
|
+
|
136
|
+
# use 3 spaces for indentation, not tabs!
|
137
|
+
# I spent, like, an hour trying to fix a nonexistant bug becuase of this
|
138
|
+
# smh so hard
|
139
|
+
```
|
140
|
+
|
141
|
+
you can then run
|
142
|
+
|
143
|
+
```bash
|
144
|
+
$ olive
|
145
|
+
```
|
146
|
+
|
108
147
|
### start tracking a repo
|
109
148
|
|
110
149
|
this will add it to the tracking list
|
@@ -149,6 +188,61 @@ append `colour=off` to any statement
|
|
149
188
|
|
150
189
|
don't forget to spell *"colour"* **the proper way**.
|
151
190
|
|
191
|
+
branches
|
192
|
+
========
|
193
|
+
|
194
|
+
I kept fixing bugs and then I would frantically
|
195
|
+
push the fixes because I was worried people, if anyone actually
|
196
|
+
uses oliver, would experience problems with it if I didn't push
|
197
|
+
the fix immediately. the problem, obviously, with this
|
198
|
+
is that I didn't catch other things I needed to fix, and now I have,
|
199
|
+
like, a billion commits, even though most of them are just me changing
|
200
|
+
the version variable.
|
201
|
+
|
202
|
+
anyways, there's an [unstable](https://github.com/trommel/oliver/tree/unstable)
|
203
|
+
branch, if you want to check it out.
|
204
|
+
the official gem that's hosted on rubygems, though, is
|
205
|
+
the gem of the master branch, and that's how it's going to stay.
|
206
|
+
|
207
|
+
things to implement
|
208
|
+
===================
|
209
|
+
|
210
|
+
[Douglas](https://twitter.com/istx25) gave me this cool
|
211
|
+
idea that [CocoaPods](https://github.com/CocoaPods/CocoaPods) uses, where
|
212
|
+
when we run
|
213
|
+
|
214
|
+
```bash
|
215
|
+
$ olive install
|
216
|
+
```
|
217
|
+
|
218
|
+
it can not only install the repos on the list, but remove the repos
|
219
|
+
that have been installed locally but are no longer on the list.
|
220
|
+
this way, if you want to delete a bunch of repositories, you can simply
|
221
|
+
remove them from the list and run
|
222
|
+
|
223
|
+
```bash
|
224
|
+
$ olive install
|
225
|
+
```
|
226
|
+
|
227
|
+
I spent, like, 50 minutes on this and I can't figure out a good way
|
228
|
+
to do it, though, so.. yeah
|
229
|
+
|
230
|
+
I'll add it as soon as I can figure it out.
|
231
|
+
|
232
|
+
versions
|
233
|
+
========
|
234
|
+
|
235
|
+
for some reason, I was using things like "1.5" as oliver's
|
236
|
+
version for a bit, even though oliver isn't even finished (to
|
237
|
+
even the help menu), so if you check the previous gem versions,
|
238
|
+
the newest gem version is probably (maybe) smaller / below
|
239
|
+
previous gem versions. this was me being silly and not thinking.
|
240
|
+
|
241
|
+
as of right now (July 18, 2014, 6:19 PM), oliver's version
|
242
|
+
is 0.1.5, and it will continue to build off from there.
|
243
|
+
|
244
|
+
sorry about doing that silly thing.
|
245
|
+
|
152
246
|
testing
|
153
247
|
=======
|
154
248
|
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# Different arguments
|
2
|
+
# (Make this into a case statement asap)
|
3
|
+
# (It'll be way easier and cleaner to work with later)
|
4
|
+
def different_arguments
|
5
|
+
if !ARGV[0].nil?
|
6
|
+
if ARGV[0].downcase == 'init'
|
7
|
+
|
8
|
+
if !File.file?(Name::OLIVER)
|
9
|
+
File.open(Name::OLIVER, 'w') do |file|
|
10
|
+
file.write("repos:\n")
|
11
|
+
file.write(" - \"trommel/oliver\"\n")
|
12
|
+
puts "#{Rainbow(Name::OLIVER.red)} has been created."
|
13
|
+
end
|
14
|
+
else
|
15
|
+
puts "#{Rainbow(Name::OLIVER).red} already exists."
|
16
|
+
end
|
17
|
+
|
18
|
+
Jib.exit
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
data/lib/oliver/main.rb
CHANGED
@@ -1,5 +1,41 @@
|
|
1
|
+
require 'awesome_print'
|
1
2
|
# Main oliver file
|
2
3
|
def run_main
|
3
|
-
|
4
|
-
|
4
|
+
|
5
|
+
# Back up your files, man
|
6
|
+
if !File.directory?('.backup')
|
7
|
+
Dir.mkdir '.backup'
|
8
|
+
end
|
9
|
+
|
10
|
+
# The buggiest code in the world (that's probably totally untrue)
|
11
|
+
body = File.read(Name::OLIVER.chomp)
|
12
|
+
final = YAML.load("---\n#{body}\n---")
|
13
|
+
final["repos"].each do |url|
|
14
|
+
|
15
|
+
# Split the url in half
|
16
|
+
splitted = url.split '/'
|
17
|
+
username = splitted[0]
|
18
|
+
repo = splitted[1]
|
19
|
+
current_repos = Dir.entries '.'
|
20
|
+
['.', '..', '.backup', Name::OLIVER].each do |i|
|
21
|
+
current_repos.delete(i)
|
22
|
+
end
|
23
|
+
|
24
|
+
# Clone the repo if it doesn't already exist
|
25
|
+
if !File.directory?(repo)
|
26
|
+
%x(git clone git://github.com/#{url} --quiet)
|
27
|
+
puts "#{Rainbow(repo).green}/ has been successfully cloned."
|
28
|
+
else
|
29
|
+
puts "#{Rainbow(repo).red}/ already exists."
|
30
|
+
end
|
31
|
+
|
32
|
+
# If the directory doesn't exist
|
33
|
+
# in `Name::OLIVER`, move it to .backup
|
34
|
+
current_repos.each do |directory_thing|
|
35
|
+
if !final["repos"].to_s.include? directory_thing
|
36
|
+
%x(mv #{directory_thing} .backup)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
5
41
|
end
|
data/lib/oliver/methods.rb
CHANGED
@@ -1,27 +1,46 @@
|
|
1
|
-
|
1
|
+
# If the user can't even
|
2
|
+
# specify basic arguments
|
3
|
+
# just give him/her some help
|
4
|
+
# and heavy medication
|
5
|
+
def are_you_serious?
|
6
|
+
if ARGV[0].nil?
|
7
|
+
help
|
8
|
+
Jib.exit
|
9
|
+
end
|
10
|
+
end
|
2
11
|
|
3
12
|
# Help the user with their heavy troubles
|
4
13
|
def help
|
5
14
|
|
6
15
|
helper = [
|
16
|
+
[
|
17
|
+
"install",
|
18
|
+
"clones / removes directories if they're listed on the #{Name::OLIVER}"
|
19
|
+
],
|
20
|
+
|
21
|
+
[
|
22
|
+
"init",
|
23
|
+
"initializes the main directory by creating a base #{Name::OLIVER}"
|
24
|
+
],
|
25
|
+
|
7
26
|
[
|
8
27
|
"add username/repo",
|
9
|
-
"clone repo and add it to
|
28
|
+
"clone repo and add it to the #{Name::OLIVER}",
|
10
29
|
],
|
11
30
|
|
12
31
|
[
|
13
32
|
"remove username/repo",
|
14
|
-
"delete repo and remove it from
|
33
|
+
"delete repo and remove it from the #{Name::OLIVER}",
|
15
34
|
],
|
16
35
|
|
17
36
|
[
|
18
37
|
"list",
|
19
|
-
"list repos currently on
|
38
|
+
"list repos currently on the #{Name::OLIVER}"
|
20
39
|
],
|
21
40
|
|
22
41
|
[
|
23
42
|
"update",
|
24
|
-
"pull updates from each tracked repo"
|
43
|
+
"pull updates from each tracked repo on the #{Name::OLIVER}"
|
25
44
|
]
|
26
45
|
]
|
27
46
|
|
@@ -41,7 +60,8 @@ end
|
|
41
60
|
# a question like "what version is oliver?"
|
42
61
|
# or "I need some help"
|
43
62
|
def other_things
|
44
|
-
|
63
|
+
are_you_serious?
|
64
|
+
case ARGV[0].to_s.downcase
|
45
65
|
when '-v' || '--version'
|
46
66
|
puts "#{Rainbow('oliver').red} #{Rainbow("v#{Oliver::VERSION}").green}"
|
47
67
|
when '-h' || '--help'
|
@@ -50,19 +70,3 @@ def other_things
|
|
50
70
|
help
|
51
71
|
end
|
52
72
|
end
|
53
|
-
|
54
|
-
# If the user can't even
|
55
|
-
# specify basic arguments
|
56
|
-
# just give him/her some help
|
57
|
-
# and heavy medication
|
58
|
-
if ARGV[0].nil?
|
59
|
-
help
|
60
|
-
Jib.exit
|
61
|
-
end
|
62
|
-
|
63
|
-
# the main oliver "project" thing
|
64
|
-
# I'll probably move this into a
|
65
|
-
# seperate file in the future
|
66
|
-
def oliver_main
|
67
|
-
run_main
|
68
|
-
end
|
data/lib/oliver/version.rb
CHANGED
data/lib/oliver.rb
CHANGED
@@ -1,23 +1,39 @@
|
|
1
1
|
# holy shit, this is massive
|
2
2
|
# twss
|
3
|
-
require 'launchy'
|
4
3
|
require 'jibry'
|
5
4
|
require 'rainbow'
|
5
|
+
require 'YAML'
|
6
|
+
require_relative "oliver/oliver_file_name"
|
7
|
+
require_relative "oliver/arguments"
|
6
8
|
require_relative "oliver/version"
|
7
9
|
require_relative "oliver/methods"
|
8
|
-
require_relative "oliver/
|
10
|
+
require_relative "oliver/main"
|
9
11
|
|
10
12
|
# if the user doesn't want to use rainbow
|
11
13
|
# just disable it completely
|
12
14
|
Rainbow.enabled = false if ARGV[-1] == 'colour=off'
|
13
15
|
|
16
|
+
if ARGV[0].nil?
|
17
|
+
help
|
18
|
+
Jib.exit
|
19
|
+
end
|
20
|
+
|
21
|
+
# (Literally) different arguments
|
22
|
+
different_arguments
|
23
|
+
|
14
24
|
# if `Name::OLIVER` (string)
|
15
25
|
# exists as a file continue with oliver
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
oliver_main
|
26
|
+
if File.file? Name::OLIVER
|
27
|
+
if ARGV[0].downcase == 'install'
|
28
|
+
run_main
|
29
|
+
Jib.exit
|
21
30
|
else
|
22
|
-
|
31
|
+
# name_install = Rainbow('oliver install')
|
32
|
+
# puts "#{name_install} requires an #{Name::OLIVER} to do its magic."
|
33
|
+
help
|
34
|
+
Jib.exit
|
35
|
+
end
|
36
|
+
else
|
37
|
+
other_things
|
38
|
+
Jib.exit
|
23
39
|
end
|
data/oliver.gemspec
CHANGED
@@ -17,7 +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 '
|
21
|
-
gem.add_dependency 'jibry', '>= 0.0.1'
|
20
|
+
gem.add_dependency 'jibry', '>= 0.0.3'
|
22
21
|
gem.add_dependency 'rainbow', '>= 2.0.0'
|
23
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: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Josh
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-07-
|
11
|
+
date: 2014-07-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -38,34 +38,20 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: launchy
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ">="
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '2.4'
|
48
|
-
type: :runtime
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ">="
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '2.4'
|
55
41
|
- !ruby/object:Gem::Dependency
|
56
42
|
name: jibry
|
57
43
|
requirement: !ruby/object:Gem::Requirement
|
58
44
|
requirements:
|
59
45
|
- - ">="
|
60
46
|
- !ruby/object:Gem::Version
|
61
|
-
version: 0.0.
|
47
|
+
version: 0.0.3
|
62
48
|
type: :runtime
|
63
49
|
prerelease: false
|
64
50
|
version_requirements: !ruby/object:Gem::Requirement
|
65
51
|
requirements:
|
66
52
|
- - ">="
|
67
53
|
- !ruby/object:Gem::Version
|
68
|
-
version: 0.0.
|
54
|
+
version: 0.0.3
|
69
55
|
- !ruby/object:Gem::Dependency
|
70
56
|
name: rainbow
|
71
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -95,6 +81,7 @@ files:
|
|
95
81
|
- Rakefile
|
96
82
|
- bin/olive
|
97
83
|
- lib/oliver.rb
|
84
|
+
- lib/oliver/arguments.rb
|
98
85
|
- lib/oliver/main.rb
|
99
86
|
- lib/oliver/methods.rb
|
100
87
|
- lib/oliver/oliver_file_name.rb
|
@@ -120,7 +107,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
120
107
|
version: '0'
|
121
108
|
requirements: []
|
122
109
|
rubyforge_project:
|
123
|
-
rubygems_version: 2.4.
|
110
|
+
rubygems_version: 2.4.1
|
124
111
|
signing_key:
|
125
112
|
specification_version: 4
|
126
113
|
summary: Manage your Git(Hub) easier.
|