pullbot 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
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