pullbot 0.0.2 → 0.0.3

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 CHANGED
@@ -1,7 +1,15 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 60b84394a56c120b1aeac3104b3ba1ead16a1ccf
4
- data.tar.gz: 69cc4ca662433907c8a8e044663607e887509e79
5
- SHA512:
6
- metadata.gz: 4b0a90500b7cb2ffa99090a9945406d0b4ca208b7b6d75abc0db969434865ecb25f6b2973a34d19b1709acd25334ae9f9662390a1076729bb285a0444bd1ab35
7
- data.tar.gz: d59c7b37155deba0cb68b808584b204986960738745409b5ffe1007df98f9f6b63a13fc0cfe34185c69c7f791207acf38f979c21041f1f5691f1d276fdbdb61e
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ ODEzNjcxNWZlMGQwNDgxMmJkZGJhZDM5Zjg0MjZjYjNlYTVmZWY3Yw==
5
+ data.tar.gz: !binary |-
6
+ MmNlYjJmN2YzYWZjYWRmYTA5YzJjYzg3MDlmZTA1NTA5N2ZiNWM0OQ==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ NTJiNTBmMmY3YmM1MDdlOGZkM2I2ZWRlNzYwOGMxYmZmZGMxODA1NzZjN2Y1
10
+ YTA5ODk2MWU3ZTQ2Y2ZmZmM4MDEyOTIxNmJkZDUzODI3NTU3ODVhZTAwZTBk
11
+ NTRmMjEyOGY5N2VmNjdiNWE2MjRmNjM0NGUzZGE2NzJjY2JjMWI=
12
+ data.tar.gz: !binary |-
13
+ N2IwNzUwZjdlNzNlNTAwNjhlNGEyZGJjY2UzMjBhZmE4MjJiNjBkMjQ1MTBk
14
+ ZmQ0MWEzNzc0MWY4YWYxNzJkZTA4MTQ4MjlkY2UwMTNhYjgxN2ZmNDc0YmNl
15
+ MmY3ODc0YWNhYjQ3NmIyOWQ4NjBkMTZiOGU2NWYyMzgxZjE5NTU=
data/.gitignore CHANGED
@@ -1,3 +1,4 @@
1
1
  .idea/*
2
2
  repo*/*
3
- *.swp
3
+ *.swp
4
+ *.gem
data/Gemfile CHANGED
@@ -1,5 +1,3 @@
1
1
  source 'http://rubygems.org'
2
2
 
3
- gem 'pry'
4
- gem 'pry-debugger'
5
- gem 'open4'
3
+ gemspec
@@ -1,29 +1,18 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ pullbot (0.0.3)
5
+ formatador
6
+ open4
7
+
1
8
  GEM
2
9
  remote: http://rubygems.org/
3
10
  specs:
4
- coderay (1.0.9)
5
- columnize (0.3.6)
6
- debugger (1.6.2)
7
- columnize (>= 0.3.1)
8
- debugger-linecache (~> 1.2.0)
9
- debugger-ruby_core_source (~> 1.2.3)
10
- debugger-linecache (1.2.0)
11
- debugger-ruby_core_source (1.2.3)
12
- method_source (0.8.2)
11
+ formatador (0.2.4)
13
12
  open4 (1.3.0)
14
- pry (0.9.12.2)
15
- coderay (~> 1.0.5)
16
- method_source (~> 0.8)
17
- slop (~> 3.4)
18
- pry-debugger (0.2.2)
19
- debugger (~> 1.3)
20
- pry (~> 0.9.10)
21
- slop (3.4.6)
22
13
 
23
14
  PLATFORMS
24
15
  ruby
25
16
 
26
17
  DEPENDENCIES
27
- open4
28
- pry
29
- pry-debugger
18
+ pullbot!
@@ -1,37 +1,34 @@
1
- require_relative '../progress-bar/bar'
2
- require_relative 'repository'
1
+ require 'progressbar'
2
+ require 'formatador'
3
3
 
4
4
  module PullBundle
5
5
 
6
6
  class Base
7
7
 
8
- DEFAULT_DIRECTORY = Dir.pwd
9
-
10
- def initialize(options = {})
11
- @dir = options[:dir] || DEFAULT_DIRECTORY
12
- @repositories = repositories(@dir)
13
- run(@repositories)
8
+ def initialize
9
+ run(repositories)
14
10
  end
15
11
 
16
12
  def run(repositories)
17
- repositories.each do |repository|
18
- begin
19
- repository.run()
20
- puts "#{repository.name}: Success"
21
- rescue Repository::CommandException => command_exception
22
- puts "#{repository.name}: #{command_exception}"
23
- end
13
+ pbar = ProgressBar.new('Running', repositories.size)
14
+
15
+ results = repositories.map do |repository|
16
+ result = repository.run
17
+ pbar.inc
18
+ result
24
19
  end
20
+
21
+ pbar.finish
22
+
23
+ Formatador.display_table(results)
25
24
  end
26
25
 
27
- def repositories(dirs)
28
- repositories = []
29
- Dir.foreach(dirs) do |dir|
30
- next if dir == '.' or dir == '..'
31
- repositories << Repository.new(base: dirs, name: dir)
26
+ def repositories
27
+ Configr.repositories.map do |dir|
28
+ Repository.new path: dir
32
29
  end
33
- repositories
34
30
  end
35
31
 
36
32
  end
33
+
37
34
  end
@@ -0,0 +1,13 @@
1
+ require 'yaml'
2
+
3
+ module PullBundle
4
+
5
+ class Configr
6
+
7
+ def self.repositories
8
+ YAML.load_file("#{Dir.home}/.pullbot")[:repos]
9
+ end
10
+
11
+ end
12
+
13
+ end
@@ -4,16 +4,24 @@ module PullBundle
4
4
 
5
5
  class Repository
6
6
 
7
- attr_accessor :name
8
-
9
- ERRORS = ['ERROR', 'fatal']
7
+ attr_accessor :path
10
8
 
11
9
  def initialize(options = {})
12
- @name = options[:name]
13
- @address = "#{options[:base]}/#{@name}"
10
+ @path = options[:path]
14
11
  end
15
12
 
16
13
  def run
14
+ begin
15
+ do_run
16
+ { path: path, result: 'Success' }
17
+ rescue CommandException => e
18
+ { path: path, result: e }
19
+ end
20
+ end
21
+
22
+ private
23
+
24
+ def do_run
17
25
  if is_git_repository? and is_clean?
18
26
  update
19
27
  else
@@ -28,11 +36,11 @@ module PullBundle
28
36
  end
29
37
 
30
38
  def is_ruby_repository?
31
- File.exist?("#{@address}//Gemfile")
39
+ File.exist?("#{@path}//Gemfile")
32
40
  end
33
41
 
34
42
  def is_git_repository?
35
- Dir.exist?("#{@address}//.git")
43
+ Dir.exist?("#{@path}//.git")
36
44
  end
37
45
 
38
46
  def install_gems
@@ -50,15 +58,11 @@ module PullBundle
50
58
  end
51
59
 
52
60
  def run_command(command, condition, exception)
53
- Dir.chdir(@address)
61
+ Dir.chdir(@path)
54
62
  status = Open4::popen4(command)
55
63
  message = status[2].read
56
64
  error = status[3].read
57
- raise exception if not message.include?(condition) or not error.empty? or include_error_message?(message)
58
- end
59
-
60
- def include_error_message?(message)
61
- not ERRORS.reduce(true) { |meta, error| meta and not message.include?(error) }
65
+ raise exception unless message.include?(condition) or error.empty?
62
66
  end
63
67
 
64
68
  class CommandException < Exception
@@ -1,4 +1,6 @@
1
- require_relative 'pull-bundle/base'
1
+ require 'pull-bundle/base'
2
+ require 'pull-bundle/configr'
3
+ require 'pull-bundle/repository'
2
4
 
3
5
  class Pullbot
4
6
  def self.create
@@ -8,10 +8,11 @@ Gem::Specification.new do |gem|
8
8
  gem.description = 'Auto pull git repository and bundle ruby gems'
9
9
  gem.name = 'pullbot'
10
10
  gem.summary = 'pullbot'
11
- gem.version = '0.0.2'
11
+ gem.version = '0.0.3'
12
12
  gem.homepage = 'http://rubygems.org/gems/pullbot'
13
13
 
14
14
  gem.add_runtime_dependency 'open4'
15
+ gem.add_runtime_dependency 'formatador'
15
16
 
16
17
  gem.files = `git ls-files`.split($/)
17
18
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
data/test.sh ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env bash
2
+
3
+ ruby -Ilib bin/pullbot
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pullbot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - biq
@@ -14,14 +14,28 @@ dependencies:
14
14
  name: open4
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ! '>='
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ! '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: formatador
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ! '>='
25
39
  - !ruby/object:Gem::Version
26
40
  version: '0'
27
41
  description: Auto pull git repository and bundle ruby gems
@@ -36,12 +50,12 @@ files:
36
50
  - Gemfile.lock
37
51
  - README.md
38
52
  - bin/pullbot
39
- - lib/progress-bar/bar.rb
40
53
  - lib/pull-bundle/base.rb
54
+ - lib/pull-bundle/configr.rb
41
55
  - lib/pull-bundle/repository.rb
42
56
  - lib/pullbot.rb
43
- - pullbot-0.0.1.gem
44
57
  - pullbot.gemspec
58
+ - test.sh
45
59
  homepage: http://rubygems.org/gems/pullbot
46
60
  licenses: []
47
61
  metadata: {}
@@ -51,17 +65,17 @@ require_paths:
51
65
  - lib
52
66
  required_ruby_version: !ruby/object:Gem::Requirement
53
67
  requirements:
54
- - - '>='
68
+ - - ! '>='
55
69
  - !ruby/object:Gem::Version
56
70
  version: '0'
57
71
  required_rubygems_version: !ruby/object:Gem::Requirement
58
72
  requirements:
59
- - - '>='
73
+ - - ! '>='
60
74
  - !ruby/object:Gem::Version
61
75
  version: '0'
62
76
  requirements: []
63
77
  rubyforge_project:
64
- rubygems_version: 2.0.6
78
+ rubygems_version: 2.0.7
65
79
  signing_key:
66
80
  specification_version: 4
67
81
  summary: pullbot
@@ -1,49 +0,0 @@
1
- module ProgressBar
2
-
3
- class Bar
4
-
5
- DEFAULT_OUTPUT_STREAM = $stdout
6
- DEFAULT_LENGTH = 100
7
- attr_accessor :length, :output, :format_string, :steps
8
-
9
- def initialize(options = {})
10
- @output = options[:output] || DEFAULT_OUTPUT_STREAM
11
- @length = options[:length] || DEFAULT_LENGTH
12
- @steps = options[:steps] || 1
13
- init_string
14
-
15
- update(@output, @format_string)
16
- end
17
-
18
- def step sym
19
- @format_string += "#{'=' * (step_length - 1) + sym}"
20
- update @output, @format_string
21
- end
22
-
23
- def result
24
- output.print @format_string
25
- output.flush
26
- end
27
-
28
- private
29
-
30
- def init_string
31
- @length = @length / @steps * @steps
32
- @format_string = ""
33
- end
34
-
35
- def step_length
36
- @length / @steps
37
- end
38
-
39
- def update(output, string)
40
- output.print string
41
- output.print "\r"
42
- output.flush
43
- end
44
-
45
- end
46
- end
47
-
48
- ProgressBar::Bar.new
49
-
Binary file