tools 0.0.1 → 0.0.5
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 +5 -5
- data/.gitignore +3 -0
- data/.ruby-gemset +1 -1
- data/.ruby-version +1 -1
- data/Rakefile +45 -1
- data/TODO.txt +357 -0
- data/aux +111 -0
- data/bin/tools +66 -0
- data/lib/files/pt-BR.yml +207 -0
- data/lib/files/requireds.rb +28 -0
- data/lib/lib/cache.rb +48 -0
- data/lib/lib/config.rb +227 -0
- data/lib/lib/console.rb +147 -0
- data/lib/lib/display.rb +41 -0
- data/lib/lib/files.rb +51 -0
- data/lib/lib/log.rb +66 -0
- data/lib/lib/net.rb +141 -0
- data/lib/lib/utils.rb +364 -0
- data/lib/tools.rb +85 -1
- data/lib/tools/version.rb +2 -1
- data/test/minitest/minit-display.rb +29 -0
- data/test/minitest/minit-tools.rb +67 -0
- data/test/minitest/run +9 -0
- data/tools.gemspec +25 -3
- metadata +362 -10
data/bin/tools
ADDED
@@ -0,0 +1,66 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# coding: utf-8
|
3
|
+
require 'tools'
|
4
|
+
require 'thor'
|
5
|
+
|
6
|
+
Signal.trap("INT") {
|
7
|
+
puts "\n\tNote: You will typically use Signal.trap instead.\n".light_red
|
8
|
+
exit
|
9
|
+
}
|
10
|
+
|
11
|
+
Signal.trap("TERM") {
|
12
|
+
puts "\n\tNote: You will typically use Signal.trap instead.\n".light_red
|
13
|
+
exit
|
14
|
+
}
|
15
|
+
|
16
|
+
load Tools.files + '/requireds.rb'
|
17
|
+
|
18
|
+
class Tools_exec < Thor
|
19
|
+
|
20
|
+
desc 'help', ''
|
21
|
+
def help(command='')
|
22
|
+
puts "\tHELP will be here..... Coming soon....".light_green
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
desc 'show', ''
|
27
|
+
def show(command='')
|
28
|
+
puts "Gem_path.: #{Tools.gem_path}"
|
29
|
+
puts "Ldap_pass.: #{Tools.ldap_pass}"
|
30
|
+
puts "Ldap_user.: #{Tools.ldap_user}"
|
31
|
+
puts "User.: #{Tools.user}"
|
32
|
+
puts "Pwd.: #{Tools.pwd}"
|
33
|
+
puts "Host.: #{Tools.host}"
|
34
|
+
puts "Files: #{Tools.files}"
|
35
|
+
end
|
36
|
+
|
37
|
+
desc 'config', ''
|
38
|
+
def config
|
39
|
+
ap 'config'
|
40
|
+
# ToolsConfig.config
|
41
|
+
end
|
42
|
+
|
43
|
+
|
44
|
+
desc 'console', ''
|
45
|
+
def console
|
46
|
+
ap 'console'
|
47
|
+
#ToolsConsole.create_console
|
48
|
+
#ToolsConsole.run_console
|
49
|
+
end
|
50
|
+
|
51
|
+
|
52
|
+
def method_missing(method, *args, &block)
|
53
|
+
|
54
|
+
exit()
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
58
|
+
|
59
|
+
begin
|
60
|
+
Tools_exec.start(ARGV)
|
61
|
+
rescue SystemExit => e
|
62
|
+
puts "\tExiting tools gem... See you later...".light_green
|
63
|
+
exit(e.status)
|
64
|
+
rescue Exception => e
|
65
|
+
puts e
|
66
|
+
end
|
data/lib/files/pt-BR.yml
ADDED
@@ -0,0 +1,207 @@
|
|
1
|
+
---
|
2
|
+
pt-BR:
|
3
|
+
date:
|
4
|
+
abbr_day_names:
|
5
|
+
- Dom
|
6
|
+
- Seg
|
7
|
+
- Ter
|
8
|
+
- Qua
|
9
|
+
- Qui
|
10
|
+
- Sex
|
11
|
+
- Sáb
|
12
|
+
abbr_month_names:
|
13
|
+
-
|
14
|
+
- Jan
|
15
|
+
- Fev
|
16
|
+
- Mar
|
17
|
+
- Abr
|
18
|
+
- Mai
|
19
|
+
- Jun
|
20
|
+
- Jul
|
21
|
+
- Ago
|
22
|
+
- Set
|
23
|
+
- Out
|
24
|
+
- Nov
|
25
|
+
- Dez
|
26
|
+
day_names:
|
27
|
+
- Domingo
|
28
|
+
- Segunda-feira
|
29
|
+
- Terça-feira
|
30
|
+
- Quarta-feira
|
31
|
+
- Quinta-feira
|
32
|
+
- Sexta-feira
|
33
|
+
- Sábado
|
34
|
+
formats:
|
35
|
+
default: "%d/%m/%Y"
|
36
|
+
long: "%d de %B de %Y"
|
37
|
+
short: "%d de %B"
|
38
|
+
month_names:
|
39
|
+
-
|
40
|
+
- Janeiro
|
41
|
+
- Fevereiro
|
42
|
+
- Março
|
43
|
+
- Abril
|
44
|
+
- Maio
|
45
|
+
- Junho
|
46
|
+
- Julho
|
47
|
+
- Agosto
|
48
|
+
- Setembro
|
49
|
+
- Outubro
|
50
|
+
- Novembro
|
51
|
+
- Dezembro
|
52
|
+
order:
|
53
|
+
- :day
|
54
|
+
- :month
|
55
|
+
- :year
|
56
|
+
datetime:
|
57
|
+
distance_in_words:
|
58
|
+
about_x_hours:
|
59
|
+
one: aproximadamente 1 hora
|
60
|
+
other: aproximadamente %{count} horas
|
61
|
+
about_x_months:
|
62
|
+
one: aproximadamente 1 mês
|
63
|
+
other: aproximadamente %{count} meses
|
64
|
+
about_x_years:
|
65
|
+
one: aproximadamente 1 ano
|
66
|
+
other: aproximadamente %{count} anos
|
67
|
+
almost_x_years:
|
68
|
+
one: quase 1 ano
|
69
|
+
other: quase %{count} anos
|
70
|
+
half_a_minute: meio minuto
|
71
|
+
less_than_x_minutes:
|
72
|
+
one: menos de um minuto
|
73
|
+
other: menos de %{count} minutos
|
74
|
+
less_than_x_seconds:
|
75
|
+
one: menos de 1 segundo
|
76
|
+
other: menos de %{count} segundos
|
77
|
+
over_x_years:
|
78
|
+
one: mais de 1 ano
|
79
|
+
other: mais de %{count} anos
|
80
|
+
x_days:
|
81
|
+
one: 1 dia
|
82
|
+
other: "%{count} dias"
|
83
|
+
x_minutes:
|
84
|
+
one: 1 minuto
|
85
|
+
other: "%{count} minutos"
|
86
|
+
x_months:
|
87
|
+
one: 1 mês
|
88
|
+
other: "%{count} meses"
|
89
|
+
x_seconds:
|
90
|
+
one: 1 segundo
|
91
|
+
other: "%{count} segundos"
|
92
|
+
prompts:
|
93
|
+
day: Dia
|
94
|
+
hour: Hora
|
95
|
+
minute: Minuto
|
96
|
+
month: Mês
|
97
|
+
second: Segundo
|
98
|
+
year: Ano
|
99
|
+
errors:
|
100
|
+
format: "%{attribute} %{message}"
|
101
|
+
messages:
|
102
|
+
accepted: deve ser aceito
|
103
|
+
blank: não pode ficar em branco
|
104
|
+
present: deve ficar em branco
|
105
|
+
confirmation: não é igual a %{attribute}
|
106
|
+
empty: não pode ficar vazio
|
107
|
+
equal_to: deve ser igual a %{count}
|
108
|
+
even: deve ser par
|
109
|
+
exclusion: não está disponível
|
110
|
+
greater_than: deve ser maior que %{count}
|
111
|
+
greater_than_or_equal_to: deve ser maior ou igual a %{count}
|
112
|
+
inclusion: não está incluído na lista
|
113
|
+
invalid: não é válido
|
114
|
+
less_than: deve ser menor que %{count}
|
115
|
+
less_than_or_equal_to: deve ser menor ou igual a %{count}
|
116
|
+
not_a_number: não é um número
|
117
|
+
not_an_integer: não é um número inteiro
|
118
|
+
odd: deve ser ímpar
|
119
|
+
record_invalid: 'A validação falhou: %{errors}'
|
120
|
+
restrict_dependent_destroy:
|
121
|
+
one: Não é possível excluir o registro pois existe um %{record} dependente
|
122
|
+
many: Não é possível excluir o registro pois existem %{record} dependentes
|
123
|
+
taken: já está em uso
|
124
|
+
too_long: 'é muito longo (máximo: %{count} caracteres)'
|
125
|
+
too_short: 'é muito curto (mínimo: %{count} caracteres)'
|
126
|
+
wrong_length: não possui o tamanho esperado (%{count} caracteres)
|
127
|
+
other_than: deve ser diferente de %{count}
|
128
|
+
template:
|
129
|
+
body: 'Por favor, verifique o(s) seguinte(s) campo(s):'
|
130
|
+
header:
|
131
|
+
one: 'Não foi possível gravar %{model}: 1 erro'
|
132
|
+
other: 'Não foi possível gravar %{model}: %{count} erros.'
|
133
|
+
helpers:
|
134
|
+
select:
|
135
|
+
prompt: Por favor selecione
|
136
|
+
submit:
|
137
|
+
create: Criar %{model}
|
138
|
+
submit: Salvar %{model}
|
139
|
+
update: Atualizar %{model}
|
140
|
+
number:
|
141
|
+
currency:
|
142
|
+
format:
|
143
|
+
delimiter: "."
|
144
|
+
format: "%u %n"
|
145
|
+
precision: 2
|
146
|
+
separator: ","
|
147
|
+
significant: false
|
148
|
+
strip_insignificant_zeros: false
|
149
|
+
unit: R$
|
150
|
+
format:
|
151
|
+
delimiter: "."
|
152
|
+
precision: 3
|
153
|
+
separator: ","
|
154
|
+
significant: false
|
155
|
+
strip_insignificant_zeros: false
|
156
|
+
human:
|
157
|
+
decimal_units:
|
158
|
+
format: "%n %u"
|
159
|
+
units:
|
160
|
+
billion:
|
161
|
+
one: bilhão
|
162
|
+
other: bilhões
|
163
|
+
million:
|
164
|
+
one: milhão
|
165
|
+
other: milhões
|
166
|
+
quadrillion:
|
167
|
+
one: quatrilhão
|
168
|
+
other: quatrilhões
|
169
|
+
thousand: mil
|
170
|
+
trillion:
|
171
|
+
one: trilhão
|
172
|
+
other: trilhões
|
173
|
+
unit: ''
|
174
|
+
format:
|
175
|
+
delimiter: "."
|
176
|
+
precision: 2
|
177
|
+
significant: true
|
178
|
+
strip_insignificant_zeros: true
|
179
|
+
storage_units:
|
180
|
+
format: "%n %u"
|
181
|
+
units:
|
182
|
+
byte:
|
183
|
+
one: Byte
|
184
|
+
other: Bytes
|
185
|
+
gb: GB
|
186
|
+
kb: KB
|
187
|
+
mb: MB
|
188
|
+
tb: TB
|
189
|
+
percentage:
|
190
|
+
format:
|
191
|
+
delimiter: "."
|
192
|
+
format: "%n%"
|
193
|
+
precision:
|
194
|
+
format:
|
195
|
+
delimiter: "."
|
196
|
+
support:
|
197
|
+
array:
|
198
|
+
last_word_connector: " e "
|
199
|
+
two_words_connector: " e "
|
200
|
+
words_connector: ", "
|
201
|
+
time:
|
202
|
+
am: ''
|
203
|
+
formats:
|
204
|
+
default: "%a, %d de %B de %Y, %H:%M:%S %z"
|
205
|
+
long: "%d de %B de %Y, %H:%M"
|
206
|
+
short: "%d de %B, %H:%M"
|
207
|
+
pm: ''
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'awesome_print'
|
2
|
+
require 'base64'
|
3
|
+
require 'colorize'
|
4
|
+
require 'dnsruby'
|
5
|
+
require 'encrypt'
|
6
|
+
require 'getoptlong'
|
7
|
+
require 'highline/import'
|
8
|
+
require 'i18n'
|
9
|
+
require 'ipaddress'
|
10
|
+
require 'ipcalc'
|
11
|
+
require 'json'
|
12
|
+
require 'logger'
|
13
|
+
require 'net/http'
|
14
|
+
require 'net/https'
|
15
|
+
require 'net/smtp'
|
16
|
+
require 'net/ssh'
|
17
|
+
require 'netaddr'
|
18
|
+
require 'prompt'
|
19
|
+
require 'public_suffix'
|
20
|
+
require 'rest_client'
|
21
|
+
require 'ruby-progressbar'
|
22
|
+
require 'rubygems'
|
23
|
+
require 'socket'
|
24
|
+
require 'tty-prompt'
|
25
|
+
require 'xmlsimple'
|
26
|
+
require 'thor'
|
27
|
+
require 'yaml'
|
28
|
+
include Dnsruby
|
data/lib/lib/cache.rb
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'singleton'
|
2
|
+
class ToolsCache
|
3
|
+
include Singleton
|
4
|
+
|
5
|
+
def initialize(options = {})
|
6
|
+
end
|
7
|
+
|
8
|
+
|
9
|
+
# Create a cache file in work area
|
10
|
+
#
|
11
|
+
# @param arguments
|
12
|
+
# @return
|
13
|
+
def self.create_cache_file cache_name, cache_dir
|
14
|
+
|
15
|
+
unless File.exists? cache_dir
|
16
|
+
ToolsLog.tools_error "Invalid directory in new config file in '#{cache_dir}'.", :light_red
|
17
|
+
ToolsLog.tools_exit
|
18
|
+
end
|
19
|
+
unless cache_dir.end_with? '/'
|
20
|
+
cache_dir += '/'
|
21
|
+
end
|
22
|
+
|
23
|
+
cache_file = cache_dir + cache_name + '.cache'
|
24
|
+
if File.exists? cache_file
|
25
|
+
ToolsLog.tools_error "The cache file in '#{cache_file}' already exists. Leaving operation...", :light_yellow
|
26
|
+
else
|
27
|
+
ToolsFiles.create_file cache_dir, cache_name, "cache_#{cache_name}"
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.method_missing(method, *args, &block)
|
33
|
+
#expected call format => STRING_LOGGER_TYPE + '_' + LOGGER_TYPE
|
34
|
+
# Ex.: tools_info
|
35
|
+
cache_name = method.to_s.split('_').first
|
36
|
+
cache_method = method.to_s.split('_').last
|
37
|
+
cache_file = ToolsUtil.get_variable "cache_#{cache_name}"
|
38
|
+
|
39
|
+
ap cache_name
|
40
|
+
ap cache_method
|
41
|
+
ap cache_file
|
42
|
+
ap args
|
43
|
+
ap block
|
44
|
+
|
45
|
+
end
|
46
|
+
|
47
|
+
|
48
|
+
end
|
data/lib/lib/config.rb
ADDED
@@ -0,0 +1,227 @@
|
|
1
|
+
require 'singleton'
|
2
|
+
class ToolsConfig
|
3
|
+
include Singleton
|
4
|
+
|
5
|
+
def initialize(options = {})
|
6
|
+
end
|
7
|
+
|
8
|
+
|
9
|
+
|
10
|
+
# Create a Config file in work area
|
11
|
+
#
|
12
|
+
# Sample
|
13
|
+
#
|
14
|
+
# ToolsConfig.create_config_file 'sample', '/myhome/tools/sample.log'
|
15
|
+
# log = ToolsUtil.get_variable "sample_config" => Logger Object
|
16
|
+
#
|
17
|
+
# ToolsConfig.create_log_file 'xyko', '/home/francisco/2018/xykotools/tools/xyko.config'
|
18
|
+
# config = ToolsConfig.xyko_load
|
19
|
+
# ToolsConfig.xyko_add {}
|
20
|
+
#
|
21
|
+
# @param logname
|
22
|
+
# @param logfile
|
23
|
+
# @return
|
24
|
+
def self.create_config_file config_name, config_file, config_type = :json
|
25
|
+
unless File.exists? config_file
|
26
|
+
case config_type
|
27
|
+
when :json
|
28
|
+
config = File.open(config_file, 'w')
|
29
|
+
data = {}
|
30
|
+
config.write JSON.pretty_generate(data)
|
31
|
+
config.close
|
32
|
+
ToolsLog.tools_info "Json config file '#{config_file}' was created!'"
|
33
|
+
return true
|
34
|
+
when :yaml
|
35
|
+
end
|
36
|
+
else
|
37
|
+
ToolsLog.tools_warn "The file #{config_file} really exist. leaving operation...."
|
38
|
+
end
|
39
|
+
ToolsUtil.set_variable "#{config_name}_config_file", config_file
|
40
|
+
ToolsUtil.set_variable "#{config_name}_config_type", config_type
|
41
|
+
end
|
42
|
+
|
43
|
+
|
44
|
+
def self.method_missing(method, *args, &block)
|
45
|
+
#expected call format => STRING_LOGGER_TYPE + '_' + LOGGER_TYPE
|
46
|
+
# Ex.: tools_info
|
47
|
+
config_name = method.to_s.split('_').first
|
48
|
+
config_method = method.to_s.split('_').last
|
49
|
+
config_file = ToolsUtil.get_variable "#{config_name}_config_file"
|
50
|
+
config_type = ToolsUtil.get_variable "#{config_name}_config_type"
|
51
|
+
|
52
|
+
|
53
|
+
end
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
|
58
|
+
# Create a config file in work area
|
59
|
+
#
|
60
|
+
# @param arguments
|
61
|
+
# @return
|
62
|
+
def self.create_config_file_old *arguments
|
63
|
+
directory = arguments.extract_first
|
64
|
+
file_name = arguments.extract_first
|
65
|
+
|
66
|
+
if arguments.extract_symbol :json
|
67
|
+
config_type = :json
|
68
|
+
else
|
69
|
+
if arguments.extract_symbol :yaml
|
70
|
+
config_type = :yaml
|
71
|
+
else
|
72
|
+
config_type = :default
|
73
|
+
end
|
74
|
+
end
|
75
|
+
config_type = :json if config_type.eql? :default
|
76
|
+
ToolsLog.tools_info "Setting config_type to '#{config_type}!'"
|
77
|
+
ToolsUtil.set_variable 'config_file_type', config_type
|
78
|
+
|
79
|
+
unless File.exists? directory
|
80
|
+
ToolsLog.tools_error "Invalid directory in new config file in '#{directory}'.", :light_red
|
81
|
+
ToolsLog.tools_exit
|
82
|
+
end
|
83
|
+
unless directory.end_with? '/'
|
84
|
+
directory += '/'
|
85
|
+
end
|
86
|
+
config_file_location = directory + file_name
|
87
|
+
ToolsUtil.set_variable 'config_file_location', config_file_location
|
88
|
+
ToolsLog.tools_info "Setting config_file_location to '#{config_file_location}!'"
|
89
|
+
|
90
|
+
unless File.exists? config_file_location
|
91
|
+
case config_type
|
92
|
+
when :json
|
93
|
+
config_file = File.open(config_file_location, 'w')
|
94
|
+
config = {}
|
95
|
+
config_file.write JSON.pretty_generate(config)
|
96
|
+
config_file.close
|
97
|
+
ToolsLog.tools_info "Json config file created!'"
|
98
|
+
return true
|
99
|
+
when :yaml
|
100
|
+
end
|
101
|
+
else
|
102
|
+
ToolsLog.tools_warn "The file #{config_file_location} really exist. leaving operation...."
|
103
|
+
end
|
104
|
+
|
105
|
+
end
|
106
|
+
|
107
|
+
# Test and register a config file in work area
|
108
|
+
# @param source
|
109
|
+
# @return boolean
|
110
|
+
def self.test_config_type source
|
111
|
+
file = open(source)
|
112
|
+
content = file.read
|
113
|
+
if ToolsUtil.valid_json? content
|
114
|
+
config_type = :json
|
115
|
+
else
|
116
|
+
if ToolsUtil.valid_yaml? content
|
117
|
+
config_type = :yaml
|
118
|
+
else
|
119
|
+
config_type = :invalid
|
120
|
+
ToolsLog.tools_error "Invalid format in config file in '#{source}'.", :light_red
|
121
|
+
ToolsLog.tools_exit
|
122
|
+
end
|
123
|
+
end
|
124
|
+
ToolsUtil.set_variable 'config_file_type', config_type
|
125
|
+
end
|
126
|
+
|
127
|
+
|
128
|
+
# Load a content from a config file in work area
|
129
|
+
# @param source
|
130
|
+
# @return content
|
131
|
+
def self.load_config source
|
132
|
+
test_config_type source
|
133
|
+
case ToolsUtil.get_variable 'config_file_type'
|
134
|
+
when :json
|
135
|
+
file = open(source)
|
136
|
+
json = file.read
|
137
|
+
parsed = JSON.parse(json)
|
138
|
+
ToolsUtil.set_variable 'config_data', parsed
|
139
|
+
return parsed
|
140
|
+
when :yaml
|
141
|
+
end
|
142
|
+
end
|
143
|
+
|
144
|
+
# Merge data in config file in work area
|
145
|
+
# @param source
|
146
|
+
# @return content
|
147
|
+
def self.insert_in_config source, command
|
148
|
+
test_config_type source
|
149
|
+
case ToolsUtil.get_variable 'config_file_type'
|
150
|
+
when :json
|
151
|
+
file = open(source)
|
152
|
+
json = file.read
|
153
|
+
parsed = JSON.parse(json)
|
154
|
+
parsed.rmerge!(command)
|
155
|
+
file.close
|
156
|
+
file = open(source, 'w')
|
157
|
+
file.write JSON.pretty_generate(parsed)
|
158
|
+
file.close
|
159
|
+
when :yaml
|
160
|
+
end
|
161
|
+
end
|
162
|
+
|
163
|
+
|
164
|
+
|
165
|
+
def self.validate_config
|
166
|
+
# ToolsLog.info "\t\tValidanting config file in #{Tools.home+'/.tools/config'}."
|
167
|
+
# ToolsConfig.daily_backup_config
|
168
|
+
# ToolsConfig.purge_backup_config
|
169
|
+
# file = open(Cmdapi.home+'/.tools/config')
|
170
|
+
# config = file.read
|
171
|
+
# begin
|
172
|
+
# JSON.parse(config)
|
173
|
+
# return true
|
174
|
+
# rescue Exception => e
|
175
|
+
# CMDAPIUtil.show_info "\tInvalid JSON config file in #{Cmdapi.home+'/.tools/config'}."
|
176
|
+
# CMDAPIUtil.show_info "\t Follow the instructions below to fix the problem."
|
177
|
+
# CMDAPIUtil.show_info "\t 1. Rename the config file #{Cmdapi.home+'/.tools/config'}."
|
178
|
+
# CMDAPIUtil.show_info "\t 2. Cmdapi run again. The cmdapi will create a new configuration file."
|
179
|
+
# CMDAPIUtil.show_info "\t 3. Copy the keys from the previous file to the new file."
|
180
|
+
# CMDAPIUtil.show_info "\t 4. Run cmdapi again.."
|
181
|
+
# CMDAPIUtil.show_info "\t Aborting operation...."
|
182
|
+
# exit
|
183
|
+
# end
|
184
|
+
end
|
185
|
+
|
186
|
+
def self.check_config
|
187
|
+
# ToolsLog.info "\t\tChecking config file: #{Tools.home+'/.tools/config'}."
|
188
|
+
# file = open(Tools.home+'/.tools/config')
|
189
|
+
# json = file.read
|
190
|
+
# parsed = JSON.parse(json)
|
191
|
+
# file.close
|
192
|
+
end
|
193
|
+
|
194
|
+
def self.purge_backup_config # execupa o purge de todos os backup com mais de 14 dias
|
195
|
+
# ToolsLog.info "\t\tPurge backup config file: #{Tools.home+'/.tools/config'}."
|
196
|
+
# to_clean = Dir.glob(File.join(Tools.home+'/.tools/backup', '*')).select { |a|
|
197
|
+
# Time.now - File.ctime(a) > 14*24*60*60 }
|
198
|
+
# to_clean.each do |file_to_delete|
|
199
|
+
# File.delete(file_to_delete)
|
200
|
+
# end
|
201
|
+
end
|
202
|
+
|
203
|
+
def self.config_backup
|
204
|
+
# ToolsLog.info "\t\tBackuping config file in #{Tools.home+'/.tools/backup'}."
|
205
|
+
# FileUtils.cp Tools.home+'/.tools/config',
|
206
|
+
# Tolls.home+'/.tools/backup/config_' +
|
207
|
+
# (ToolsUtil.get_date '%Y%m%d-%H%M') + '.backup'
|
208
|
+
end
|
209
|
+
|
210
|
+
def self.daily_backup_config
|
211
|
+
# #captura o backup mais recente
|
212
|
+
# least = Dir.glob(File.join(Cmdapi.home+'/.cmdapi3/backup', 'config*.backup')).max { |a,b| File.ctime(a) <=> File.ctime(b) }
|
213
|
+
# unless least.nil?
|
214
|
+
# #se não houver sido feito hoje
|
215
|
+
# unless File.ctime(least).to_date == Time.now.to_date
|
216
|
+
# # ToolsLog.info "\t\tStarting config backup."
|
217
|
+
# ToolsConfig.config_backup
|
218
|
+
# end
|
219
|
+
# else
|
220
|
+
# # ToolsLog.info "\t\tStarting config backup."
|
221
|
+
# ToolsConfig.config_backup
|
222
|
+
# end
|
223
|
+
# return true
|
224
|
+
end
|
225
|
+
|
226
|
+
|
227
|
+
end
|