central 0.2.3 → 0.2.4
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 +1 -1
- data/lib/central.rb +23 -29
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 59a223e19b875e1e3d7dc50f70f60697816d47e3
|
4
|
+
data.tar.gz: 8037442fffcaaccbe55bf1209dae265890432836
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1ef58f6d6da2bf0f3148677cc86d5cf5779c4d2fa766102c1dfd5cd4ac5aad643d7e55ed78a575b83a6e2d38735bfefdc0bb8a6eebe5935dde1ec4326bf03fa6
|
7
|
+
data.tar.gz: 025ab8f80c6e4cc29038ff1cacb276206527da789865732539d64887b23b590007c9debe723ab7224ed02de28ac705be2a331cdeaf04ae568ed7a1ade5392858
|
data/bin/central
CHANGED
data/lib/central.rb
CHANGED
@@ -45,9 +45,8 @@ end
|
|
45
45
|
|
46
46
|
# run shell command and get output, optionaly can print command running if verbose and if not silent will also print to stdout and stderr
|
47
47
|
$shell_return_value = nil
|
48
|
-
def shell(command,
|
49
|
-
|
50
|
-
puts "Executing: #{command}" if options[:verbose]
|
48
|
+
def shell(command,verbose: false, silent: true)
|
49
|
+
puts "Executing: #{command}" if verbose
|
51
50
|
stdout = ''
|
52
51
|
stdout_line = ''
|
53
52
|
stderr = ''
|
@@ -101,8 +100,8 @@ def shell(command,options={:verbose => false, :silent => true})
|
|
101
100
|
end
|
102
101
|
|
103
102
|
# run shell command with sudo prefix, acts same as shell
|
104
|
-
def sudo(command,
|
105
|
-
return shell('sudo '+command,
|
103
|
+
def sudo(command,verbose:,silent:)
|
104
|
+
return shell('sudo '+command, verbose: verbose, silent: silent)
|
106
105
|
end
|
107
106
|
|
108
107
|
# function used to check that system has all required tools installed
|
@@ -151,7 +150,7 @@ end
|
|
151
150
|
# check if directory exists
|
152
151
|
def dir_exists?(path)
|
153
152
|
path = abs(path)
|
154
|
-
Dir.
|
153
|
+
Dir.exist?(path)
|
155
154
|
end
|
156
155
|
|
157
156
|
# get directory name of a file
|
@@ -184,7 +183,7 @@ def mkdir(path)
|
|
184
183
|
end
|
185
184
|
|
186
185
|
# remove file/directory
|
187
|
-
def rm(path,recursive
|
186
|
+
def rm(path,recursive: false)
|
188
187
|
path = abs(path)
|
189
188
|
if recursive
|
190
189
|
recursive = '-R '
|
@@ -210,7 +209,7 @@ end
|
|
210
209
|
|
211
210
|
# remove directory recursively
|
212
211
|
def rmdir(path)
|
213
|
-
rm(path,true)
|
212
|
+
rm(path,recursive: true)
|
214
213
|
end
|
215
214
|
|
216
215
|
# touch file
|
@@ -228,7 +227,7 @@ def touch(path)
|
|
228
227
|
end
|
229
228
|
|
230
229
|
# change file permissions
|
231
|
-
def chmod(path,permissions,recursive
|
230
|
+
def chmod(path,permissions,recursive: false)
|
232
231
|
path = abs(path)
|
233
232
|
if recursive
|
234
233
|
recursive = '-R '
|
@@ -265,7 +264,7 @@ def symlink(from,to)
|
|
265
264
|
end
|
266
265
|
|
267
266
|
# git clone url into a path
|
268
|
-
def git(url,path,branch
|
267
|
+
def git(url,path,branch: nil,silent: false,depth: nil)
|
269
268
|
path = abs(path)
|
270
269
|
if dir_exists?(path) && dir_exists?("#{path}/.git")
|
271
270
|
cwd = pwd()
|
@@ -295,24 +294,27 @@ def git(url,path,branch=nil,silent=false)
|
|
295
294
|
else
|
296
295
|
branch = ''
|
297
296
|
end
|
298
|
-
|
297
|
+
if depth
|
298
|
+
depth = '--depth '+depth.to_s+' '
|
299
|
+
else
|
300
|
+
depth = ''
|
301
|
+
end
|
302
|
+
out = shell("git clone #{depth}#{branch}#{url} \"#{path}\" 2>&1",{:silent => silent})
|
299
303
|
puts out if silent
|
300
304
|
puts "Git repository cloned: #{url} → #{path}"
|
301
305
|
end
|
302
306
|
end
|
303
307
|
|
304
308
|
# download url into a path using curl
|
305
|
-
def curl(url,path,verbose
|
309
|
+
def curl(url,path, verbose: false)
|
306
310
|
path = abs(path)
|
307
|
-
|
311
|
+
puts "Downloading #{url} → #{path}"
|
312
|
+
output = shell("curl -s -S \"#{url}\"",verbose: verbose, silent: true)
|
308
313
|
unless $shell_return_value.success?
|
309
314
|
STDERR.puts output
|
310
315
|
STDERR.puts "Couldn't download file from #{url}..."
|
311
316
|
exit 1
|
312
317
|
end
|
313
|
-
if File.exists?(path) && File.read(path) == output
|
314
|
-
return
|
315
|
-
end
|
316
318
|
File.write(path,output)
|
317
319
|
puts "Downloaded #{url} → #{path}"
|
318
320
|
end
|
@@ -347,16 +349,16 @@ def source(file,source)
|
|
347
349
|
end
|
348
350
|
|
349
351
|
# list directory content
|
350
|
-
def ls(path,
|
352
|
+
def ls(path,dotfiles: false, grep: '', dir: true, file: true)
|
351
353
|
path = abs(path)
|
352
|
-
if
|
354
|
+
if dotfiles
|
353
355
|
dotfiles = '-a '
|
354
356
|
else
|
355
357
|
dotfiles = ''
|
356
358
|
end
|
357
359
|
command = "ls -1 #{dotfiles}\"#{path}\" 2>&1"
|
358
|
-
if
|
359
|
-
command += " | grep #{
|
360
|
+
if grep.length > 0
|
361
|
+
command += " | grep #{grep}"
|
360
362
|
end
|
361
363
|
output = shell(command)
|
362
364
|
if output.downcase.end_with?('no such file or directory')
|
@@ -364,14 +366,6 @@ def ls(path,options={})
|
|
364
366
|
exit 1
|
365
367
|
end
|
366
368
|
ls = output.split("\n")
|
367
|
-
dir = true
|
368
|
-
file = true
|
369
|
-
if options.key?(:dir)
|
370
|
-
dir = options[:dir]
|
371
|
-
end
|
372
|
-
if options.key?(:file)
|
373
|
-
file = options[:file]
|
374
|
-
end
|
375
369
|
unless dir
|
376
370
|
ls = ls.keep_if {|f| !File.directory?("#{path}/#{f}") }
|
377
371
|
end
|
@@ -414,7 +408,7 @@ def erb(file,output_file = nil)
|
|
414
408
|
end
|
415
409
|
if file_exists?(file)
|
416
410
|
output = ERB.new(File.read(file)).result
|
417
|
-
if File.
|
411
|
+
if File.exist?(output_file) && File.read(output_file) == output
|
418
412
|
return
|
419
413
|
end
|
420
414
|
File.write(output_file,output)
|
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.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dmitry Geurkov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-05-19 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: central dotfile management system
|
14
14
|
email: d.geurkov@gmail.com
|
@@ -39,7 +39,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
39
39
|
version: '0'
|
40
40
|
requirements: []
|
41
41
|
rubyforge_project:
|
42
|
-
rubygems_version: 2.5.2
|
42
|
+
rubygems_version: 2.5.2.1
|
43
43
|
signing_key:
|
44
44
|
specification_version: 4
|
45
45
|
summary: central dotfile management
|