-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcreacionPaquetes.rb
153 lines (135 loc) · 4.05 KB
/
creacionPaquetes.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
#!/usr/bin/env ruby
require 'rubygems'
require 'json'
require 'rbconfig'
require 'fileutils'
require 'colorize'
class ConstruyeT
@@dir = ""
@@dir_packages = ""
@@gitMERX = ""
@@dir_packages_build = ""
@@diccionario = ""
@@instancia = nil
@@dir_scriptrb = nil
@@os = nil
def initialize(instancia,git)
os
@@instancia = instancia
if git.to_s == 'S'
gitLocalDirFromRemote
end
@@dir_scriptrb = Dir.pwd
if @@os == "win"
@@dir_scriptrb = @@dir_scriptrb.gsub(%r{/}) {'\\'}
end
file = File.read(File.join(@@dir_packages, "#{@@diccionario}"))
data_hash = JSON.parse(file)
dependencies = data_hash["dependencies"]
puts " "
puts "==> Creación de paquetes...".green
dependencies.each do |k,v|
dir_package = File.join(@@dir_packages, k)
if @@os == "win"
dir_package = dir_package.gsub(%r{/}) {'\\'}
end
Dir.chdir(dir_package)
package = File.join(dir_package, "#{k}.zip")
puts ""
puts "====>Creando paquete #{k}".green
if @@os == "win"
package = package.gsub(%r{/}) {'\\'}
system("7z a -tzip #{package} -xr!\".DS_Store\" -x!\"*.sonarlint*\" -x!\"*.directory*\" -x!\"*.md\" -x!\"*.zip\"")
else
system("zip -r #{package} . -x .DS_Store *.md *.sonarlint* *.directory* *.zip")
end
FileUtils.cp File.join(dir_package, "#{k}.zip"), File.join(@@dir_packages_build,@@instancia)
end
puts ""
end
def gitLocalDirFromRemote()
puts " "
puts "==> Obteniendo cambios de Git...".green
if existe_directorio?(@@dir_packages)
puts " "
puts "====> Actualizando repositorio #{@@instancia} de MerxBP...".green
Dir.chdir(@@dir_packages)
system("git fetch origin #{@@instancia}")
res = `git branch`
exp = /#{@@instancia}/
ar = res.to_s.split("\n")
flag = false
ar.each do |i|
if exp.match(i.to_s.strip)
flag = true
end
end
if !flag
system("git checkout -b #{@@instancia} origin/#{@@instancia}")
else
system("git checkout #{@@instancia}")
end
system("git merge origin/#{@@instancia}")
else
puts " "
puts "====> Creando repositorio #{localOrPaquetes} de MerxBP...".green
Dir.chdir(@@dir)
system("git clone #{@@gitMERX}")
Dir.chdir(@@dir_packages)
res = `git branch`
exp = /\*\s#{@@instancia}/
if !exp.match(res)
system("git checkout -b #{@@instancia} origin/#{@@instancia}")
else
system("git checkout #{@@instancia}")
end
end
end
def existe_directorio?(directory)
File.directory?(directory)
end
def existe_archivo?(file)
File.file?(file)
end
#Investiga que plataforma estamos utilizando
def os
if (/cygwin|mswin|mingw|bccwin|wince|emx/ =~ RUBY_PLATFORM) != nil
@@os = "win"
elsif RUBY_PLATFORM =~ /linux/
@@os = "linux"
elsif (/darwin/ =~ RUBY_PLATFORM) != nil
@@os = "mac"
else
puts "====> Estamos corriendo sobre un OS desconocido, solo funcionamos por el momento en Windows, Mac y Linux".red
exit(true)
end
end
end
system("clear")
system("cls")
#Preguntamos por los generales antes de restaurar
puts "====================================================".green
puts "| |".green
puts "| Bienvenido al Constructor de paquetes para las |".green
puts "| instancias de MerxBP |".green
puts "| |".green
puts "====================================================".green
puts ""
if ARGV.length != 0
instancia = ARGV[0].chomp
if ARGV.length > 1
arg0 = ARGV[1].upcase.chomp
if arg0 != "N" && arg0 != "S"
git = "N"
else
git = arg0;
end
else
git = "N"
end
else
puts "Se esperaba el nombre de la instancia o branch para iniciar el proceso".red
puts ""
exit(true)
end
constructor = ConstruyeT.new(instancia,git)