central 0.2.0 → 0.2.1
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/bin/central +9 -0
- data/lib/central.rb +43 -29
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 40c3c1a6118599140ca0da2b5efbd531b0eb45aa
|
4
|
+
data.tar.gz: 1cb733800e425bec33f90c9d7a015dcd612827f3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0b37e52fd86ac446273f675ea8958637b6e3779e552f70090b9201f038e4557b48703bf487f8022bcbe51372d8f3755d640b4f8d9b0bc94e12a856feafa1a29f
|
7
|
+
data.tar.gz: f581da8f4f9a6252188040d7ee1a26fd4e9465939dc98dfa6ed88b0888888856fb3aa9a021b80cbea15a6145f3fd28b85dacc9d32de1002706b302cdcbb4249a
|
data/bin/central
CHANGED
@@ -8,4 +8,13 @@
|
|
8
8
|
|
9
9
|
require 'central'
|
10
10
|
|
11
|
+
if ARGV.length > 0
|
12
|
+
if ARGV[0] == '-v' || ARGV[0] == '--version' || ARGV[0] == '-version'
|
13
|
+
puts "central v0.2.1"
|
14
|
+
end
|
15
|
+
if ARGV[0] == '-h' || ARGV[0] == '--help' || ARGV[0] == '-help'
|
16
|
+
puts "central [path/to/configuration.rb]"
|
17
|
+
end
|
18
|
+
exit 0
|
19
|
+
end
|
11
20
|
central(ARGV)
|
data/lib/central.rb
CHANGED
@@ -106,21 +106,14 @@ end
|
|
106
106
|
# function used to check that system has all required tools installed
|
107
107
|
def check_tool(name,check)
|
108
108
|
begin
|
109
|
-
output = shell(check)
|
110
|
-
if output.
|
111
|
-
|
112
|
-
|
113
|
-
STDERR.puts "#{name} not found, please install it to use central"
|
114
|
-
exit 1
|
115
|
-
end
|
116
|
-
elsif output.kind_of?(Array)
|
117
|
-
if output[0] == '' and output[1] == ''
|
118
|
-
STDERR.puts "#{name} not found, please install it to use central"
|
119
|
-
exit 1
|
120
|
-
end
|
109
|
+
output = shell(check+' 2>&1').downcase
|
110
|
+
if output == '' or output.include?('command not found')
|
111
|
+
STDERR.puts "#{name} not found, please install it to use central"
|
112
|
+
exit 1
|
121
113
|
end
|
122
114
|
rescue Errno::ENOENT
|
123
115
|
STDERR.puts "#{name} not found, please install it to use central"
|
116
|
+
exit 1
|
124
117
|
end
|
125
118
|
end
|
126
119
|
|
@@ -171,14 +164,19 @@ end
|
|
171
164
|
|
172
165
|
# get full path of symlink
|
173
166
|
def symlink_path(symlink)
|
174
|
-
shell("readlink \"#{abs(symlink)}\"").strip
|
167
|
+
shell("readlink \"#{abs(symlink)}\" 2>&1").strip
|
175
168
|
end
|
176
169
|
|
177
170
|
# make directory including intermediate directories
|
178
171
|
def mkdir(path)
|
179
172
|
path = abs(path)
|
180
173
|
unless dir_exists?(path)
|
181
|
-
out = shell("mkdir -p \"#{path}\"")
|
174
|
+
out = shell("mkdir -p \"#{path}\" 2>&1")
|
175
|
+
unless $shell_return_value.success?
|
176
|
+
STDERR.puts out
|
177
|
+
STDERR.puts "Couldn't create directory: #{path}"
|
178
|
+
exit 1
|
179
|
+
end
|
182
180
|
puts "Created directory: #{path}"
|
183
181
|
end
|
184
182
|
end
|
@@ -193,7 +191,12 @@ def rm(path,recursive=false)
|
|
193
191
|
end
|
194
192
|
is_dir = dir_exists?(path)
|
195
193
|
is_symlink = symlink?(path)
|
196
|
-
out = shell("rm #{recursive}-f \"#{path}\"")
|
194
|
+
out = shell("rm #{recursive}-f \"#{path}\" 2>&1")
|
195
|
+
unless $shell_return_value.success?
|
196
|
+
STDERR.puts out
|
197
|
+
STDERR.puts "Couldn't remove path: #{path}"
|
198
|
+
exit 1
|
199
|
+
end
|
197
200
|
if is_dir
|
198
201
|
puts "Removed directory: #{path}"
|
199
202
|
elsif is_symlink
|
@@ -212,7 +215,12 @@ end
|
|
212
215
|
def touch(path)
|
213
216
|
path = abs(path)
|
214
217
|
unless file_exists?(path)
|
215
|
-
out = shell("touch \"#{path}\"")
|
218
|
+
out = shell("touch \"#{path}\" 2>&1")
|
219
|
+
unless $shell_return_value.success?
|
220
|
+
STDERR.puts out
|
221
|
+
STDERR.puts "Couldn't touch file: #{path}"
|
222
|
+
exit 1
|
223
|
+
end
|
216
224
|
puts "Touched file: #{path}"
|
217
225
|
end
|
218
226
|
end
|
@@ -244,7 +252,12 @@ def symlink(from,to)
|
|
244
252
|
STDERR.puts "Directory #{from} exists in place of symlink..."
|
245
253
|
exit 1
|
246
254
|
else
|
247
|
-
out = shell("ln -s \"#{to}\" \"#{from}\"")
|
255
|
+
out = shell("ln -s \"#{to}\" \"#{from}\" 2>&1")
|
256
|
+
unless $shell_return_value.success?
|
257
|
+
STDERR.puts out
|
258
|
+
STDERR.puts "Couldn't create symlink: #{from} → #{to}"
|
259
|
+
exit 1
|
260
|
+
end
|
248
261
|
puts "Created symlink: #{from} → #{to}"
|
249
262
|
end
|
250
263
|
end
|
@@ -257,20 +270,20 @@ def git(url,path,branch=nil,silent=false)
|
|
257
270
|
chdir path
|
258
271
|
out = nil
|
259
272
|
if branch
|
260
|
-
out = shell('git fetch',{:silent => silent})
|
273
|
+
out = shell('git fetch 2>&1',{:silent => silent})
|
261
274
|
if out.size > 0
|
262
|
-
puts out
|
275
|
+
puts out if silent
|
263
276
|
end
|
264
|
-
out = shell("git checkout #{branch}",{:silent => silent})
|
277
|
+
out = shell("git checkout #{branch} 2>&1",{:silent => silent})
|
265
278
|
unless out.downcase.include? 'is now at'
|
266
|
-
puts out
|
279
|
+
puts out if silent
|
267
280
|
end
|
268
|
-
out = shell("git pull origin #{branch}",{:silent => silent})
|
281
|
+
out = shell("git pull origin #{branch} 2>&1",{:silent => silent})
|
269
282
|
else
|
270
|
-
out = shell('git pull',{:silent => silent})
|
283
|
+
out = shell('git pull 2>&1',{:silent => silent})
|
271
284
|
end
|
272
285
|
unless out.downcase.include? "already up-to-date"
|
273
|
-
puts out
|
286
|
+
puts out if silent
|
274
287
|
puts "Git repository pulled: #{url} → #{path}"
|
275
288
|
end
|
276
289
|
chdir cwd
|
@@ -280,8 +293,8 @@ def git(url,path,branch=nil,silent=false)
|
|
280
293
|
else
|
281
294
|
branch = ''
|
282
295
|
end
|
283
|
-
out = shell("git clone #{branch}#{url} \"#{path}\"",{:silent => silent})
|
284
|
-
puts out
|
296
|
+
out = shell("git clone #{branch}#{url} \"#{path}\" 2>&1",{:silent => silent})
|
297
|
+
puts out if silent
|
285
298
|
puts "Git repository cloned: #{url} → #{path}"
|
286
299
|
end
|
287
300
|
end
|
@@ -291,6 +304,7 @@ def curl(url,path,verbose=false)
|
|
291
304
|
path = abs(path)
|
292
305
|
output = shell("curl -s -S \"#{url}\"",{:verbose => verbose, :silent => true})
|
293
306
|
unless $shell_return_value.success?
|
307
|
+
STDERR.puts output
|
294
308
|
STDERR.puts "Couldn't download file from #{url}..."
|
295
309
|
exit 1
|
296
310
|
end
|
@@ -338,7 +352,7 @@ def ls(path,options={})
|
|
338
352
|
else
|
339
353
|
dotfiles = ''
|
340
354
|
end
|
341
|
-
command = "ls -1 #{dotfiles}\"#{path}\""
|
355
|
+
command = "ls -1 #{dotfiles}\"#{path}\" 2>&1"
|
342
356
|
if options.key?(:grep) && options[:grep].length > 0
|
343
357
|
command += " | grep #{options[:grep]}"
|
344
358
|
end
|
@@ -393,8 +407,8 @@ def run(file)
|
|
393
407
|
cwd = pwd()
|
394
408
|
file = abs(file)
|
395
409
|
unless file_exists?(file)
|
396
|
-
puts "No configuration file: #{file} found"
|
397
|
-
|
410
|
+
STDERR.puts "No configuration file: #{file} found"
|
411
|
+
exit 1
|
398
412
|
end
|
399
413
|
puts "Running configuration: "+file
|
400
414
|
file_cwd = file_dir(file)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: central
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dmitry Geurkov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-03-11 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: central dotfile management system
|
14
14
|
email: d.geurkov@gmail.com
|