omnibus-software 22.11.239 → 23.2.283

Sign up to get free protection for your applications and to get access to all the features.
Files changed (84) hide show
  1. checksums.yaml +4 -4
  2. data/.buildkite/hooks/pre-command +9 -0
  3. data/.expeditor/config.yml +11 -0
  4. data/.expeditor/software_upload.pipeline.yml +17 -0
  5. data/CHANGELOG.md +13 -0
  6. data/Gemfile +1 -1
  7. data/VERSION +1 -1
  8. data/config/patches/bash/updated_race-condition.patch +15 -0
  9. data/config/patches/openssl/openssl-1.0.1j-windows-relocate-dll.patch +28 -4
  10. data/config/software/bash.rb +15 -6
  11. data/config/software/bzip2.rb +2 -0
  12. data/config/software/cacerts.rb +2 -0
  13. data/config/software/chef.rb +3 -2
  14. data/config/software/cmake.rb +6 -0
  15. data/config/software/cpanminus.rb +2 -1
  16. data/config/software/curl.rb +3 -1
  17. data/config/software/elasticsearch.rb +6 -0
  18. data/config/software/erlang.rb +6 -6
  19. data/config/software/expat.rb +4 -1
  20. data/config/software/gecode.rb +2 -0
  21. data/config/software/git-windows.rb +2 -0
  22. data/config/software/git.rb +5 -1
  23. data/config/software/gmp.rb +2 -0
  24. data/config/software/go.rb +8 -1
  25. data/config/software/google-protobuf.rb +1 -1
  26. data/config/software/gtar.rb +2 -0
  27. data/config/software/libarchive.rb +4 -1
  28. data/config/software/libedit.rb +3 -0
  29. data/config/software/libffi.rb +4 -1
  30. data/config/software/libiconv.rb +2 -0
  31. data/config/software/libintl-perl.rb +3 -0
  32. data/config/software/liblzma.rb +5 -1
  33. data/config/software/libossp-uuid.rb +2 -0
  34. data/config/software/libsodium.rb +2 -0
  35. data/config/software/libtool.rb +2 -0
  36. data/config/software/libuuid.rb +0 -1
  37. data/config/software/libxml2.rb +2 -0
  38. data/config/software/libxslt.rb +5 -1
  39. data/config/software/libyaml.rb +2 -0
  40. data/config/software/logrotate.rb +4 -1
  41. data/config/software/lua.rb +2 -0
  42. data/config/software/make.rb +4 -1
  43. data/config/software/makedepend.rb +4 -1
  44. data/config/software/mpc.rb +5 -1
  45. data/config/software/mpfr.rb +3 -0
  46. data/config/software/ncurses.rb +4 -1
  47. data/config/software/nginx.rb +2 -0
  48. data/config/software/nodejs-binary.rb +3 -0
  49. data/config/software/openresty.rb +2 -0
  50. data/config/software/opensearch.rb +6 -1
  51. data/config/software/openssl-fips.rb +4 -0
  52. data/config/software/openssl.rb +4 -0
  53. data/config/software/patch.rb +2 -0
  54. data/config/software/patchelf.rb +4 -0
  55. data/config/software/pcre.rb +2 -0
  56. data/config/software/perl-extutils-embed.rb +2 -1
  57. data/config/software/perl-extutils-makemaker.rb +2 -1
  58. data/config/software/perl-thread-queue.rb +2 -1
  59. data/config/software/perl.rb +2 -0
  60. data/config/software/perl_pg_driver.rb +2 -1
  61. data/config/software/pkg-config-lite.rb +2 -0
  62. data/config/software/pkg-config.rb +2 -0
  63. data/config/software/popt.rb +7 -2
  64. data/config/software/postgresql.rb +5 -4
  65. data/config/software/python.rb +5 -1
  66. data/config/software/redis.rb +4 -1
  67. data/config/software/rsync.rb +2 -0
  68. data/config/software/ruby-msys2-devkit.rb +6 -0
  69. data/config/software/ruby-windows-devkit-bash.rb +2 -0
  70. data/config/software/ruby.rb +2 -0
  71. data/config/software/runit.rb +2 -1
  72. data/config/software/server-jre.rb +14 -7
  73. data/config/software/server-open-jre.rb +16 -0
  74. data/config/software/sqitch.rb +6 -1
  75. data/config/software/stunnel.rb +8 -6
  76. data/config/software/util-macros.rb +2 -0
  77. data/config/software/xproto.rb +2 -1
  78. data/config/software/zlib.rb +4 -1
  79. data/scripts/internal_sources.rb +78 -0
  80. data/scripts/internal_sources.yml +413 -0
  81. data/test/generate_steps.rb +11 -1
  82. data/test/omnibus-build.sh +5 -0
  83. data/test/omnibus.rb +4 -0
  84. metadata +12 -6
@@ -60,6 +60,8 @@ version("2.6.8") { source sha256: "1807b78577bc08596a390e8a41aede37b8512190
60
60
  version("2.6.7") { source sha256: "e4227e8b7f65485ecb73397a83e0d09dcd39f25efd411c782b69424e55c7a99e" }
61
61
 
62
62
  source url: "https://cache.ruby-lang.org/pub/ruby/#{version.match(/^(\d+\.\d+)/)[0]}/ruby-#{version}.tar.gz"
63
+ internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz",
64
+ authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}"
63
65
 
64
66
  # In order to pass notarization we need to sign any binaries and libraries included in the package.
65
67
  # This makes sure we include and bins and libs that are brought in by gems.
@@ -27,7 +27,8 @@ version("2.1.2") { source sha256: "6fd0160cb0cf1207de4e66754b6d39750cff14bb0aa66
27
27
  version("2.1.1") { source sha256: "ffcf2d27b32f59ac14f2d4b0772a3eb80d9342685a2042b7fbbc472c07cf2a2c" }
28
28
 
29
29
  source url: "http://smarden.org/runit/runit-#{version}.tar.gz"
30
-
30
+ internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz",
31
+ authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}"
31
32
  relative_path "admin/runit-#{version}/src"
32
33
 
33
34
  build do
@@ -49,7 +49,8 @@ version "8u202" do
49
49
  cookie: license_cookie,
50
50
  warning: license_warning,
51
51
  unsafe: true
52
-
52
+ internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz",
53
+ authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}"
53
54
  relative_path "jdk1.8.0_202"
54
55
  end
55
56
 
@@ -60,7 +61,8 @@ version "8u162" do
60
61
  cookie: license_cookie,
61
62
  warning: license_warning,
62
63
  unsafe: true
63
-
64
+ internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz",
65
+ authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}"
64
66
  relative_path "jdk1.8.0_162"
65
67
  end
66
68
 
@@ -71,7 +73,8 @@ version "8u151" do
71
73
  cookie: license_cookie,
72
74
  warning: license_warning,
73
75
  unsafe: true
74
-
76
+ internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz",
77
+ authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}"
75
78
  relative_path "jdk1.8.0_151"
76
79
  end
77
80
 
@@ -82,7 +85,8 @@ version "8u144" do
82
85
  cookie: license_cookie,
83
86
  warning: license_warning,
84
87
  unsafe: true
85
-
88
+ internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz",
89
+ authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}"
86
90
  relative_path "jdk1.8.0_144"
87
91
  end
88
92
 
@@ -93,7 +97,8 @@ version "8u121" do
93
97
  cookie: license_cookie,
94
98
  warning: license_warning,
95
99
  unsafe: true
96
-
100
+ internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz",
101
+ authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}"
97
102
  relative_path "jdk1.8.0_121"
98
103
  end
99
104
 
@@ -104,7 +109,8 @@ version "8u111" do
104
109
  cookie: license_cookie,
105
110
  warning: license_warning,
106
111
  unsafe: true
107
-
112
+ internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz",
113
+ authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}"
108
114
  relative_path "jdk1.8.0_111"
109
115
  end
110
116
 
@@ -115,7 +121,8 @@ version "8u91" do
115
121
  cookie: license_cookie,
116
122
  warning: license_warning,
117
123
  unsafe: true
118
-
124
+ internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz",
125
+ authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}"
119
126
  relative_path "jdk1.8.0_91"
120
127
  end
121
128
 
@@ -43,6 +43,8 @@ version "11.0.17+8" do
43
43
  sha256: "752616097e09d7f60a3ad8bd312f90eaf50ac72577e55df229fe6e8091148f79",
44
44
  warning: license_warning,
45
45
  unsafe: true
46
+ internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz",
47
+ authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}"
46
48
  end
47
49
 
48
50
  version "11.0.16.1+1" do
@@ -50,6 +52,8 @@ version "11.0.16.1+1" do
50
52
  sha256: "1ffe1a682e8179e35238bf3f93aba0cb185850e202c676f41d38cb0561883eda",
51
53
  warning: license_warning,
52
54
  unsafe: true
55
+ internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz",
56
+ authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}"
53
57
  end
54
58
 
55
59
  version "11.0.15+10" do
@@ -57,6 +61,8 @@ version "11.0.15+10" do
57
61
  sha256: "22831fd097dfb39e844cb34f42064ff26a0ada9cd13621d7b8bca8e9b9d3a5ee",
58
62
  warning: license_warning,
59
63
  unsafe: true
64
+ internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz",
65
+ authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}"
60
66
  end
61
67
 
62
68
  version "11.0.14.1+1" do
@@ -64,6 +70,8 @@ version "11.0.14.1+1" do
64
70
  sha256: "b5a6960bc6bb0b1a967e307f908ea9b06ad7adbbd9df0b8954ab51374faa8a98",
65
71
  warning: license_warning,
66
72
  unsafe: true
73
+ internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz",
74
+ authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}"
67
75
  end
68
76
 
69
77
  version "11.0.13+8" do
@@ -71,6 +79,8 @@ version "11.0.13+8" do
71
79
  sha256: "fb0a27e6e1f26a1ee79daa92e4cfe3ec0d676acfe114d99dd84b3414f056e8a0",
72
80
  warning: license_warning,
73
81
  unsafe: true
82
+ internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz",
83
+ authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}"
74
84
  end
75
85
 
76
86
  version "11.0.12+7" do
@@ -78,6 +88,8 @@ version "11.0.12+7" do
78
88
  sha256: "e813e270b7ea0a13f9c400ce5abd4cb811aacbd536b8909e6c7f0e346f78348c",
79
89
  warning: license_warning,
80
90
  unsafe: true
91
+ internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz",
92
+ authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}"
81
93
  end
82
94
 
83
95
  version "11.0.11+9" do
@@ -85,6 +97,8 @@ version "11.0.11+9" do
85
97
  sha256: "144f2c6bcf64faa32016f2474b6c01031be75d25325e9c3097aed6589bc5d548",
86
98
  warning: license_warning,
87
99
  unsafe: true
100
+ internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz",
101
+ authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}"
88
102
  end
89
103
 
90
104
  version "11.0.10+9" do
@@ -92,6 +106,8 @@ version "11.0.10+9" do
92
106
  sha256: "25fdcf9427095ac27c8bdfc82096ad2e615693a3f6ea06c700fca7ffb271131a",
93
107
  warning: license_warning,
94
108
  unsafe: true
109
+ internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz",
110
+ authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}"
95
111
  end
96
112
 
97
113
  relative_path "jdk-#{version}-jre"
@@ -15,7 +15,7 @@
15
15
  #
16
16
 
17
17
  name "sqitch"
18
- default_version "1.3.0"
18
+ default_version "1.3.1"
19
19
 
20
20
  license "MIT"
21
21
  license_file "https://raw.githubusercontent.com/theory/sqitch/master/README.md"
@@ -28,6 +28,7 @@ dependency "libintl-perl"
28
28
 
29
29
  # version_list: url=https://github.com/theory/#{name}/releases/download/v#{version}/ filter=app-sqitch-*.tar.gz
30
30
 
31
+ version("1.3.1") { source sha256: "f5e768d298cd4047ee2ae42319782e8c2cda312737bcbdbfaf580bd47efe8b94" }
31
32
  version("1.3.0") { source sha256: "7d07635ec77a7faf3c50281c76ec833c68702f14470996cb2203a8bc6abc5bf2" }
32
33
  version("1.2.1") { source sha256: "020835a13429effd8fda12d5627604ecf99293775918f4f8ba9ccc5ed796e5e7" }
33
34
  version("1.1.0") { source sha256: "ee146cd75d6300837e6ca559bb0bde247d42123c96b2c5d4b2800f38d3e3d1ab" }
@@ -36,9 +37,13 @@ version("0.973") { source sha256: "95fc7f18fff786c5d2579133e2e3ac56779e54bb3a06
36
37
 
37
38
  if version >= "1.1.0"
38
39
  source url: "https://github.com/theory/#{name}/releases/download/v#{version}/app-sqitch-v#{version}.tar.gz"
40
+ internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz",
41
+ authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}"
39
42
  relative_path "App-Sqitch-v#{version}"
40
43
  else
41
44
  source url: "https://github.com/theory/#{name}/releases/download/v#{version}/app-sqitch-#{version}.tar.gz"
45
+ internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz",
46
+ authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}"
42
47
  relative_path "App-Sqitch-#{version}"
43
48
  end
44
49
 
@@ -26,12 +26,14 @@ dependency "openssl"
26
26
 
27
27
  # version_list: url=https://www.stunnel.org/downloads/ filter=*.tar.gz
28
28
 
29
- if version < "5.65"
30
- source url: "https://www.stunnel.org/archive/5.x/stunnel-#{version}.tar.gz"
31
- else
32
- source url: "https://www.stunnel.org/downloads/stunnel-#{version}.tar.gz"
33
- end
29
+ source url: "https://www.stunnel.org/archive/5.x/stunnel-#{version}.tar.gz"
30
+ internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz",
31
+ authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}"
32
+
34
33
  relative_path "stunnel-#{version}"
34
+
35
+ version("5.67") { source sha256: "3086939ee6407516c59b0ba3fbf555338f9d52f459bcab6337c0f00e91ea8456" }
36
+ version("5.66") { source sha256: "558178704d1aa5f6883aac6cc5d6bbf2a5714c8a0d2e91da0392468cee9f579c" }
35
37
  version("5.65") { source sha256: "60c500063bd1feff2877f5726e38278c086f96c178f03f09d264a2012d6bf7fc" }
36
38
  version("5.64") { source sha256: "eebe53ed116ba43b2e786762b0c2b91511e7b74857ad4765824e7199e6faf883" }
37
39
  version("5.63") { source sha256: "c74c4e15144a3ae34b8b890bb31c909207301490bd1e51bfaaa5ffeb0a994617" }
@@ -58,7 +60,7 @@ build do
58
60
  env["WIN32_SSL_DIR_PATCHED"] = "#{install_dir}/embedded"
59
61
 
60
62
  mingw = ENV["MSYSTEM"].downcase
61
- target = (mingw == "mingw32" ? "mingw" : mingw)
63
+ target = (mingw == "mingw32" ? "mingw" : "mingw64")
62
64
  # Starting omnibus-toolchain version 1.1.115 we do not build msys2 as a part of omnibus-toolchain anymore, but pre install it in image
63
65
  # so here we set the path to default install of msys2 first and default to OMNIBUS_TOOLCHAIN_INSTALL_DIR for backward compatibility
64
66
  msys_path = ENV["MSYS2_INSTALL_DIR"] ? "#{ENV["MSYS2_INSTALL_DIR"]}" : "#{ENV["OMNIBUS_TOOLCHAIN_INSTALL_DIR"]}/embedded/bin"
@@ -24,6 +24,8 @@ version("1.19.0") { source sha256: "0d4df51b29023daf2f63aebf3ebc638ea88efedfd560
24
24
  version("1.18.0") { source sha256: "cf4ab0e17bfee0f7689cdcff8c7d7f164c9a710f851f91c488f5cd81fac9c0aa" }
25
25
 
26
26
  source url: "https://www.x.org/releases/individual/util/util-macros-#{version}.tar.gz"
27
+ internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz",
28
+ authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}"
27
29
 
28
30
  license "MIT"
29
31
  license_file "COPYING"
@@ -24,7 +24,8 @@ version("7.0.28") { source sha256: "6cabc8ce3fa2b1a2427871167b62c24d5b08a58bd3e8
24
24
  version("7.0.25") { source sha256: "e3dc634103f923a2276289745eb7b702b18cfc885ea4b2382bd35a8cc3d935cb" }
25
25
 
26
26
  source url: "https://www.x.org/releases/individual/proto/xproto-#{version}.tar.gz"
27
-
27
+ internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz",
28
+ authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}"
28
29
  license "MIT"
29
30
  license_file "COPYING"
30
31
  skip_transitive_dependency_licensing true
@@ -15,16 +15,19 @@
15
15
  #
16
16
 
17
17
  name "zlib"
18
- default_version "1.2.12"
18
+ default_version "1.2.13"
19
19
 
20
20
  # version_list: url=https://zlib.net/fossils/ filter=*.tar.gz
21
21
 
22
+ version("1.2.13") { source sha256: "b3a24de97a8fdbc835b9833169501030b8977031bcb54b3b3ac13740f846ab30" }
22
23
  version("1.2.12") { source sha256: "91844808532e5ce316b3c010929493c0244f3d37593afd6de04f71821d5136d9" }
23
24
  version("1.2.11") { source sha256: "c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1" }
24
25
  version("1.2.8") { source sha256: "36658cb768a54c1d4dec43c3116c27ed893e88b02ecfcb44f2166f9c0b7f2a0d" }
25
26
  version("1.2.6") { source sha256: "21235e08552e6feba09ea5e8d750805b3391c62fb81c71a235c0044dc7a8a61b" }
26
27
 
27
28
  source url: "https://zlib.net/fossils/zlib-#{version}.tar.gz"
29
+ internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz",
30
+ authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}"
28
31
 
29
32
  license "Zlib"
30
33
  license_file "README"
@@ -0,0 +1,78 @@
1
+ #!/usr/bin/env ruby
2
+ require "net/http"
3
+ require "openssl"
4
+ require "tmpdir"
5
+ require "yaml"
6
+
7
+ ARTIFACTORY_REPO_URL = ENV["ARTIFACTORY_REPO_URL"] || "https://artifactory-internal.ps.chef.co/artifactory/omnibus-software-local"
8
+ ARTIFACTORY_PASSWORD = ENV["ARTIFACTORY_PASSWORD"]
9
+
10
+ def print_usage
11
+ puts "Must provide path to internal_sources.yml file."
12
+ puts "Usage: ./internal_sources.rb <file path> [only]"
13
+ puts ""
14
+ puts " <file path>: Path to an internal_sources.yml file."
15
+ puts " [only]: (Optional) Name of software to upload. Skips all others."
16
+ end
17
+
18
+ def validate_checksum!(response, source)
19
+ if source.key?("sha256")
20
+ response.header["x-checksum-sha256"] == source["sha256"]
21
+ elsif source.key?("md5")
22
+ response.header["x-checksum-md5"] == source["md5"]
23
+ elsif source.key?("sha1")
24
+ response.header["x-checksum-sha1"] == source["sha1"]
25
+ else
26
+ raise "Unknown checksum format supplied for '#{source["url"]}'"
27
+ end
28
+ end
29
+
30
+ def exists_in_artifactory?(name, source)
31
+ uri = URI(ARTIFACTORY_REPO_URL)
32
+ file_name = File.basename(source["url"])
33
+ dir_name = name
34
+ path = File.join(uri.path, dir_name, file_name)
35
+ http = Net::HTTP.new(uri.host, uri.port)
36
+ http.use_ssl = true
37
+ response = http.head(path)
38
+ validate_checksum!(response, source)
39
+ end
40
+
41
+ def maybe_upload(name, source)
42
+ unless exists_in_artifactory?(name, source)
43
+ Dir.mktmpdir do |dir|
44
+ puts "Downloading #{name} from #{source["url"]}"
45
+ raise "Failed to download" unless system("wget -q -P #{dir} #{source["url"]}")
46
+
47
+ file_name = File.basename(source["url"])
48
+ downloaded_file = File.join(dir, file_name)
49
+ repo_url = File.join(ARTIFACTORY_REPO_URL, name, file_name)
50
+ puts "Uploading #{downloaded_file} to #{repo_url}"
51
+ raise "Failed to upload" unless system("curl -s -H 'X-JFrog-Art-Api:#{ARTIFACTORY_PASSWORD}' -T '#{downloaded_file}' #{repo_url}")
52
+
53
+ puts ""
54
+ end
55
+ else
56
+ puts "#{File.basename(source["url"])} exists in artifactory already...skipping"
57
+ end
58
+ end
59
+
60
+ if ARGV.size < 1 || ARGV.size > 2
61
+ print_usage
62
+ exit(1)
63
+ end
64
+
65
+ file_path = ARGV[0]
66
+ only = ARGV[1]
67
+
68
+ unless File.exist?(file_path)
69
+ abort("File '#{file_path}' does not exist")
70
+ end
71
+
72
+ yaml = YAML.load_file file_path
73
+ yaml["software"].each do |software|
74
+ next if only && software["name"] != only
75
+
76
+ name = software["name"]
77
+ software["sources"].each { |source| maybe_upload(name, source) }
78
+ end