update_repo 0.2.0 → 0.3.0
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 +1 -2
- data/lib/update_repo.rb +22 -40
- data/lib/update_repo/version.rb +1 -1
- data/update_repo.gemspec +1 -0
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ea5b6e02f412859fd3016b0a96551f9dee113b59
|
4
|
+
data.tar.gz: cf62ffcdc1ae9cc7d59ef280ffdb81bd1cb3996b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f9451f2add48a93bfa1b7214df62286d4d1d9f73560aefc69a576d130d2820a79f1f04f7931a31523dfcfabd5b17c11e20ed46c3342ba2084b43442d6b719b40
|
7
|
+
data.tar.gz: 108bad544e5cc9344be67a5fcebd31642783a30c12e17744b5fe52accd0a6f2f1ab70afead2cce3808c54b8c0e30053fa0bc81fbb8753e7f57dd1e057c43e038
|
data/README.md
CHANGED
@@ -46,9 +46,8 @@ To be added.
|
|
46
46
|
## To-Do
|
47
47
|
Not in any specific order :
|
48
48
|
|
49
|
-
- Improve error-checking and recovery while parsing the configuration file
|
49
|
+
- Improve error-checking and recovery while parsing the configuration file
|
50
50
|
* Ignore and report invalid or missing directories
|
51
|
-
* Expand eg '~/' to full valid path.
|
52
51
|
- Either add an option 'variants' or similar to allow non-standard git pull commands (eg Ubuntu kernel), or update the 'exceptions' option to do same.
|
53
52
|
- Error checking and reporting for the git processes - retry for connection issues etc (config setting).
|
54
53
|
- Add extra (optional) stats / info at end-of-job :
|
data/lib/update_repo.rb
CHANGED
@@ -2,6 +2,7 @@ require 'update_repo/version'
|
|
2
2
|
require 'yaml'
|
3
3
|
require 'colorize'
|
4
4
|
require 'update_repo/version'
|
5
|
+
require 'confoog'
|
5
6
|
|
6
7
|
# Overall module with classes performing the functionality
|
7
8
|
# Contains Class UpdateRepo::WalkRepo
|
@@ -19,8 +20,16 @@ module UpdateRepo
|
|
19
20
|
# Class constructor. No parameters required.
|
20
21
|
# @return [void]
|
21
22
|
def initialize
|
23
|
+
# @counter - this will be ioncremented with each repo updated.
|
22
24
|
@counter = 0
|
25
|
+
# @ start_time - will be used to get elapsed time
|
23
26
|
@start_time = 0
|
27
|
+
# @config - Class. Reads the configuration from a file in YAML format and
|
28
|
+
# allows easy access to the configuration data
|
29
|
+
@config = Confoog::Settings.new(filename: '.updatereporc',
|
30
|
+
prefix: 'update_repo',
|
31
|
+
autoload: true)
|
32
|
+
exit 1 unless @config.status[:errors] == Status::INFO_FILE_LOADED
|
24
33
|
end
|
25
34
|
|
26
35
|
# This function will perform the required actions to traverse the Repo.
|
@@ -28,10 +37,10 @@ module UpdateRepo
|
|
28
37
|
# walk_repo = UpdateRepo::WalkRepo.new
|
29
38
|
# walk_repo.start
|
30
39
|
def start
|
31
|
-
|
32
|
-
show_header(
|
33
|
-
|
34
|
-
recurse_dir(loc,
|
40
|
+
exceptions = @config['exceptions']
|
41
|
+
show_header(exceptions)
|
42
|
+
@config['location'].each do |loc|
|
43
|
+
recurse_dir(loc, exceptions)
|
35
44
|
end
|
36
45
|
# print out an informative footer...
|
37
46
|
footer
|
@@ -48,7 +57,6 @@ module UpdateRepo
|
|
48
57
|
dirpath = dirname + '/' + dir
|
49
58
|
next unless File.directory?(dirpath) && notdot?(dir)
|
50
59
|
if gitdir?(dirpath)
|
51
|
-
dir.chomp!
|
52
60
|
!exceptions.include?(dir) ? update_repo(dirpath) : skip_dir(dirpath)
|
53
61
|
else
|
54
62
|
recurse_dir(dirpath, exceptions)
|
@@ -56,45 +64,19 @@ module UpdateRepo
|
|
56
64
|
end
|
57
65
|
end
|
58
66
|
|
59
|
-
# locate the configuration file and return this data.
|
60
|
-
# Note that this will be re-written later to use my 'confoog' gem.
|
61
|
-
# @return [hash] Hash containing all the configuration parameters.
|
62
|
-
# @return [string] Location of the configuration file.
|
63
|
-
def check_config
|
64
|
-
# locate the configuration file.
|
65
|
-
# first we check in this script location and if present then we ignore any
|
66
|
-
# further files.
|
67
|
-
dev_config = File.join '.', CONFIG_FILE
|
68
|
-
user_config = File.join Gem.user_home, CONFIG_FILE
|
69
|
-
|
70
|
-
if File.exist? dev_config
|
71
|
-
# configuration exists in script directory so we ignore any others.
|
72
|
-
return YAML.load_file(dev_config), File.expand_path(dev_config)
|
73
|
-
elsif File.exist? user_config
|
74
|
-
# configuration exists in user home directory so we use that.
|
75
|
-
return YAML.load_file(user_config), File.expand_path(user_config)
|
76
|
-
end
|
77
|
-
# otherwise return error
|
78
|
-
print 'Error : Cannot find configuration file'.red, user_config.red,
|
79
|
-
'aborting'.red
|
80
|
-
exit 1
|
81
|
-
end
|
82
|
-
|
83
67
|
# Display a simple header to the console
|
84
|
-
# @param configs [hash] Configuration hash, used here to list exceptions.
|
85
|
-
# @param location [string] location of config file.
|
86
68
|
# @example
|
87
|
-
# show_header
|
88
|
-
# @return []
|
89
|
-
def show_header(
|
69
|
+
# show_header(exceptions)
|
70
|
+
# @return [void]
|
71
|
+
def show_header(exceptions)
|
90
72
|
# print an informative header before starting
|
91
73
|
print "\nGit Repo update utility (v", VERSION, ')',
|
92
74
|
" \u00A9 Grant Ramsay <seapagan@gmail.com>\n"
|
93
|
-
print "Using Configuration from #{
|
94
|
-
list_locations
|
95
|
-
if
|
75
|
+
print "Using Configuration from '#{@config.config_path}'\n"
|
76
|
+
list_locations
|
77
|
+
if exceptions
|
96
78
|
print "\nExclusions:".underline, ' ',
|
97
|
-
|
79
|
+
exceptions.join(', ').yellow, "\n"
|
98
80
|
end
|
99
81
|
# save the start time for later display in the footer...
|
100
82
|
@start_time = Time.now
|
@@ -109,9 +91,9 @@ module UpdateRepo
|
|
109
91
|
"#{Time.at(duration).utc.strftime('%H:%M:%S')}\n\n".cyan
|
110
92
|
end
|
111
93
|
|
112
|
-
def list_locations
|
94
|
+
def list_locations
|
113
95
|
print "\nRepo location(s):\n".underline
|
114
|
-
|
96
|
+
@config['location'].each do |loc|
|
115
97
|
print '-> ', loc.cyan, "\n"
|
116
98
|
end
|
117
99
|
end
|
data/lib/update_repo/version.rb
CHANGED
data/update_repo.gemspec
CHANGED
@@ -34,6 +34,7 @@ Gem::Specification.new do |spec|
|
|
34
34
|
spec.add_development_dependency 'wwtd'
|
35
35
|
|
36
36
|
spec.add_dependency 'colorize'
|
37
|
+
spec.add_dependency 'confoog'
|
37
38
|
|
38
39
|
# Depends on Ruby version if we can use 'Reek'
|
39
40
|
spec.add_development_dependency 'reek', '~> 3.3' if RUBY_VERSION > '2.0'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: update_repo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Grant Ramsay
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-03-
|
11
|
+
date: 2016-03-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -192,6 +192,20 @@ dependencies:
|
|
192
192
|
- - ">="
|
193
193
|
- !ruby/object:Gem::Version
|
194
194
|
version: '0'
|
195
|
+
- !ruby/object:Gem::Dependency
|
196
|
+
name: confoog
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
198
|
+
requirements:
|
199
|
+
- - ">="
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: '0'
|
202
|
+
type: :runtime
|
203
|
+
prerelease: false
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - ">="
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: '0'
|
195
209
|
- !ruby/object:Gem::Dependency
|
196
210
|
name: reek
|
197
211
|
requirement: !ruby/object:Gem::Requirement
|