oliver 0.1.8 → 1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ee8e25dced7524a7265bec1c88393febccba5752
4
- data.tar.gz: 46f14498aeba8c0374a2a7007ba699afc883b9c9
3
+ metadata.gz: 7430fbfa0f21e51ca5eb9148880759b553850b69
4
+ data.tar.gz: fb21c3d4c3c41d2e40444e43ebcf887dfb2c1d21
5
5
  SHA512:
6
- metadata.gz: 26732cf3a02329036afb886a5ad3e1b7ce5b3d2ef725ec4ebcffa331137b9487a9558efa1d31cb0194a3959c51d546f19ff6440f5ea6e778a5a6d8a7694b1e2c
7
- data.tar.gz: 58bdc8d883ea97ab9361b1087c4ffc0b079ee5b563b2d5b77ba0a2da48438a0d60e17aa28dfdded5eba0e2efc71c3c2925cc43c008737c1df9f994f06007b4c6
6
+ metadata.gz: f8f376a707e02a713aba211d8e302aab9e4f1176f4367c4704117c2fa994ebe4115913c751027956bddd7289a697ce19d139e6c4a0a0a56d6d01d5fa6f74f6b2
7
+ data.tar.gz: 61f9417b5173f78f3eef5f2a4a665a85629d35fa03f7f389375da367ea0d27a352729a3bdced9aabba2109bba801c87bd8b441ad89b3eb7b36f85f3afd136eba
data/README.md CHANGED
@@ -1,19 +1,14 @@
1
1
  oliver
2
2
  ======
3
3
 
4
- [![Gem Version](https://badge.fury.io/rb/oliver.svg)](http://badge.fury.io/rb/oliver)
5
-
6
4
  oliver manages your local GitHub
7
5
  repositories for you with a simple `Olivefile`.
8
6
 
9
- > "like podfiles, but for git repositories"
10
- -- [@istx25](https://github.com/istx25)
11
-
12
7
  installation
13
8
  ------------
14
9
 
15
10
  oliver is a CLI that you can install
16
- through [RubyGems](https://rubygems.org/gems/oliver)
11
+ through [RubyGems](https://rubygems.org)
17
12
 
18
13
  ```bash
19
14
  $ gem install oliver
@@ -130,18 +125,14 @@ and in the `Olivefile`
130
125
 
131
126
  ```vim
132
127
  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
128
+ - "trommel/oliver"
129
+ - "istx25/dotfiles"
139
130
  ```
140
131
 
141
132
  you can then run
142
133
 
143
134
  ```bash
144
- $ olive install # installs / removes listed repos
135
+ $ olive
145
136
  ```
146
137
 
147
138
  ### start tracking a repo
@@ -188,48 +179,6 @@ append `colour=off` to any statement
188
179
 
189
180
  don't forget to spell *"colour"* **the proper way**.
190
181
 
191
- things to remember
192
- ==================
193
-
194
- - run everything with `olive`, not `oliver`. "oliver" is the name
195
- of the project, `olive` is the name of the CLI.
196
-
197
- branches
198
- ========
199
-
200
- I kept fixing bugs and then I would frantically
201
- push the fixes because I was worried people, if anyone actually
202
- uses oliver, would experience problems with it if I didn't push
203
- the fix immediately. the problem, obviously, with this
204
- is that I didn't catch other things I needed to fix, and now I have,
205
- like, a billion commits, even though most of them are just me changing
206
- the version variable.
207
-
208
- anyways, there's an [unstable](https://github.com/trommel/oliver/tree/unstable)
209
- branch, if you want to check it out.
210
- the official gem that's hosted on rubygems, though, is
211
- the gem of the master branch, and that's how it's going to stay.
212
-
213
- ideas
214
- =====
215
-
216
- refer to
217
- [IDEAS.md](https://github.com/trommel/oliver/blob/master/spec/IDEAS.md).
218
-
219
- versions
220
- ========
221
-
222
- for some reason, I was using things like "1.5" as oliver's
223
- version for a bit, even though oliver isn't even finished (to
224
- even the help menu), so if you check the previous gem versions,
225
- the newest gem version is probably (maybe) smaller / below
226
- previous gem versions. this was me being silly and not thinking.
227
-
228
- as of right now (July 18, 2014, 6:19 PM), oliver's version
229
- is 0.1.5, and it will continue to build off from there.
230
-
231
- sorry about doing that silly thing.
232
-
233
182
  testing
234
183
  =======
235
184
 
data/lib/oliver/main.rb CHANGED
@@ -1,41 +1,9 @@
1
- require 'awesome_print'
2
1
  # Main oliver file
2
+ require 'awesome_print'
3
3
  def run_main
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
4
  body = File.read(Name::OLIVER.chomp)
12
5
  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
-
6
+ final["repos"].each do |repo|
7
+ %x(git clone git://github.com/#{repo} --quiet)
40
8
  end
41
9
  end
@@ -1,45 +1,36 @@
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
11
+
1
12
  # Help the user with their heavy troubles
2
13
  def help
3
14
 
4
15
  helper = [
5
- [
6
- "init",
7
- "initializes the main directory by creating a base #{Name::OLIVER}"
8
- ],
9
-
10
- [
11
- "install",
12
- "clones / removes directories if they're listed on the #{Name::OLIVER}"
13
- ],
14
-
15
16
  [
16
17
  "add username/repo",
17
- "clone repo and add it to the #{Name::OLIVER}",
18
+ "clone repo and add it to tracking list",
18
19
  ],
19
20
 
20
21
  [
21
22
  "remove username/repo",
22
- "delete repo and remove it from the #{Name::OLIVER}",
23
+ "delete repo and remove it from tracking list",
23
24
  ],
24
25
 
25
26
  [
26
27
  "list",
27
- "list repos currently on the #{Name::OLIVER}"
28
+ "list repos currently on tracking list"
28
29
  ],
29
30
 
30
31
  [
31
32
  "update",
32
- "pull updates from each tracked repo on the #{Name::OLIVER}"
33
- ],
34
-
35
- [
36
- "-v",
37
- "return oliver's version"
38
- ],
39
-
40
- [
41
- "-h",
42
- "return this help menu"
33
+ "pull updates from each tracked repo"
43
34
  ]
44
35
  ]
45
36
 
@@ -53,19 +44,19 @@ def help
53
44
  puts "#{Rainbow(line).green} # => #{Rainbow(blurb).blue}"
54
45
  end
55
46
 
56
- Jib.exit
57
-
58
47
  end
59
48
 
60
49
  # Be totally ready if the user asks
61
50
  # a question like "what version is oliver?"
62
51
  # or "I need some help"
63
52
  def other_things
64
- case ARGV[0].downcase
53
+ are_you_serious?
54
+ case ARGV[0].to_s.downcase
65
55
  when '-v' || '--version'
66
56
  puts "#{Rainbow('oliver').red} #{Rainbow("v#{Oliver::VERSION}").green}"
67
- Jib.exit
68
57
  when '-h' || '--help'
69
58
  help
59
+ else
60
+ help
70
61
  end
71
62
  end
@@ -1,3 +1,3 @@
1
1
  module Oliver
2
- VERSION = "0.1.8"
2
+ VERSION = "1.0"
3
3
  end
data/lib/oliver.rb CHANGED
@@ -1,45 +1,23 @@
1
1
  # holy shit, this is massive
2
2
  # twss
3
+ require 'launchy'
3
4
  require 'jibry'
4
5
  require 'rainbow'
5
6
  require 'YAML'
6
- require_relative "oliver/oliver_file_name"
7
- require_relative "oliver/arguments"
7
+ require 'git'
8
8
  require_relative "oliver/version"
9
9
  require_relative "oliver/methods"
10
+ require_relative "oliver/oliver_file_name"
10
11
  require_relative "oliver/main"
11
12
 
12
13
  # if the user doesn't want to use rainbow
13
14
  # just disable it completely
14
15
  Rainbow.enabled = false if ARGV[-1] == 'colour=off'
15
16
 
16
- # Right off the bat,
17
- # if the user doesn't specify even one argument
18
- # just give him some help and quit oliver
19
- if ARGV[0].nil?
20
- help
21
- Jib.exit
22
- end
23
-
24
- # (Literally) different arguments
25
- different_arguments
26
-
27
- # (Literally) other things
28
- other_things
29
-
30
17
  # if `Name::OLIVER` (string)
31
18
  # exists as a file continue with oliver
32
19
  if File.file? Name::OLIVER
33
- if ARGV[0].downcase == 'install'
34
- run_main
35
- Jib.exit
36
- else
37
- name_install = Rainbow('oliver install').red
38
- name_color = Rainbow(Name::OLIVER).red
39
- puts "#{name_install} requires an #{name_color} to do its magic."
40
- Jib.exit
41
- end
20
+ run_main
42
21
  else
43
- help
44
- Jib.exit
22
+ other_things
45
23
  end
data/oliver.gemspec CHANGED
@@ -9,7 +9,7 @@ Gem::Specification.new do |gem|
9
9
  gem.homepage = 'https://github.com/trommel/oliver'
10
10
 
11
11
  gem.files = `git ls-files`.split($\)
12
- gem.executables = ['olive', 'oliver']
12
+ gem.executables = ['olive']
13
13
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
14
14
  gem.name = 'oliver'
15
15
  gem.require_paths = ['oliver']
@@ -17,6 +17,7 @@ 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 'jibry', '>= 0.0.3'
20
+ gem.add_dependency 'launchy', '>= 2.4'
21
+ gem.add_dependency 'jibry', '>= 0.0.1'
21
22
  gem.add_dependency 'rainbow', '>= 2.0.0'
22
23
  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.8
4
+ version: '1.0'
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-19 00:00:00.000000000 Z
11
+ date: 2014-07-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -38,20 +38,34 @@ 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'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: jibry
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
59
  - - ">="
46
60
  - !ruby/object:Gem::Version
47
- version: 0.0.3
61
+ version: 0.0.1
48
62
  type: :runtime
49
63
  prerelease: false
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
52
66
  - - ">="
53
67
  - !ruby/object:Gem::Version
54
- version: 0.0.3
68
+ version: 0.0.1
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: rainbow
57
71
  requirement: !ruby/object:Gem::Requirement
@@ -71,21 +85,16 @@ email:
71
85
  - joshception@icloud.com
72
86
  executables:
73
87
  - olive
74
- - oliver
75
88
  extensions: []
76
89
  extra_rdoc_files: []
77
90
  files:
78
91
  - ".gitignore"
79
92
  - CONTRIBUTING.md
80
93
  - Gemfile
81
- - Gemfile.lock
82
- - IDEAS.md
83
94
  - README.md
84
95
  - Rakefile
85
96
  - bin/olive
86
- - bin/oliver
87
97
  - lib/oliver.rb
88
- - lib/oliver/arguments.rb
89
98
  - lib/oliver/main.rb
90
99
  - lib/oliver/methods.rb
91
100
  - lib/oliver/oliver_file_name.rb
@@ -111,7 +120,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
111
120
  version: '0'
112
121
  requirements: []
113
122
  rubyforge_project:
114
- rubygems_version: 2.4.1
123
+ rubygems_version: 2.4.0
115
124
  signing_key:
116
125
  specification_version: 4
117
126
  summary: Manage your Git(Hub) easier.
data/Gemfile.lock DELETED
@@ -1,21 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- oliver (0.1.7)
5
- jibry (>= 0.0.3)
6
- rainbow (>= 2.0.0)
7
-
8
- GEM
9
- remote: https://rubygems.org/
10
- specs:
11
- jibry (0.0.3)
12
- rainbow (2.0.0)
13
- rake (10.3.2)
14
-
15
- PLATFORMS
16
- ruby
17
-
18
- DEPENDENCIES
19
- bundler (~> 1.6)
20
- oliver!
21
- rake
data/IDEAS.md DELETED
@@ -1,48 +0,0 @@
1
- ideas
2
- =====
3
-
4
- ideas that should or have already been implemented.
5
-
6
- - [x] make the backup directory hidden (`.backup`)
7
-
8
- - [ ] add verbose mode (`--verbose`) so things like `olive install` will have output like
9
-
10
- ```bash
11
- olive/ already exists.
12
- dotfiles was cloned.
13
- ```
14
-
15
- etc, etc. otherwise, this should be defaulted to silent.
16
-
17
- this should also be able to be set through the Olivefile
18
-
19
- ```bash
20
- repos:
21
- - "trommel/oliver"
22
-
23
- prefs:
24
- - "verbose"
25
- - "no colour" # this too :P
26
- ```
27
-
28
- - [ ] [Douglas](https://twitter.com/istx25) gave me this cool
29
- idea that [CocoaPods](https://github.com/CocoaPods/CocoaPods) uses, where
30
- you can run
31
-
32
- ```bash
33
- $ olive install
34
- ```
35
-
36
- it can not only install the repos on the list, but remove the repos
37
- that have been installed locally but are no longer on the list.
38
- this way, if you want to delete a bunch of repositories, you can simply
39
- remove them from the list and run
40
-
41
- ```bash
42
- $ olive install
43
- ```
44
-
45
- I spent, like, 50 minutes on this and I can't figure out a good way
46
- to do it, though, so.. yeah
47
-
48
- I'll add it as soon as I can figure it out.
data/bin/oliver DELETED
@@ -1,6 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require 'rainbow'
3
- puts Rainbow('Use the "olive" CLI.').red
4
- puts Rainbow('Run "olive -h" for help.').red
5
- puts
6
- require_relative '../lib/oliver'
@@ -1,19 +0,0 @@
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].downcase == 'init'
6
-
7
- if !File.file?(Name::OLIVER)
8
- File.open(Name::OLIVER, 'w') do |file|
9
- file.write("repos:\n")
10
- file.write(" - \"trommel/oliver\"\n")
11
- puts "#{Rainbow(Name::OLIVER.green)} has been created."
12
- end
13
- else
14
- puts "#{Rainbow(Name::OLIVER).red} already exists."
15
- end
16
-
17
- Jib.exit
18
- end
19
- end