conjur-debify 1.12.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0b5fa10a6d866735c45f5edfd2a9defcc685ebe502c8950b219b6a8bc22ed232
4
- data.tar.gz: 169e5c66e12fe3533c778255b337ad64b323f35cbc298f8e39c00e7abe765b7f
3
+ metadata.gz: 6f76a5ea0e2c4fc01e0666594176690174cf1894f478570118056908c03c5e81
4
+ data.tar.gz: ebdb065547d044394079979326f759118e264a640a5feb41341fdba6386de661
5
5
  SHA512:
6
- metadata.gz: f9326cdb7fd4efafc3db3dda92e6a313cfc504dc34a24450be1076078cc8124b93c8f8ab781f59434cf625c4a37e2a1e8e6b1ead7466a7df00c2de7e3c3cca30
7
- data.tar.gz: 8aae92edeacc8a8ffecaa7bbe4bf09cbb0a0f797b40c4cc8e52e4b9999cd7f607a58a913334e5f82cdcabfe07cc94ab2803bce65b3e99e0b84a0ed23d56824d6
6
+ metadata.gz: ed14d2fecc7c4229f8c3c59d289acd39b7defd6c046b5417d332d7adfe6b921cdc5dc16b81f95825b07e9d595f92ecc7924508fc0529f6ccce00bd182e0d8f65
7
+ data.tar.gz: 9c8aaaa932d2971d549a2db859c2e47c16f26890fc25ed6491c5cd854fb4d363af289312947e5f9deb950d55b044a6bc32158472445c391241bd19604d7a5725
@@ -1,5 +1,11 @@
1
1
  ## [Unreleased]
2
2
 
3
+ # 2.0.0
4
+ ### Changed
5
+ - Debify now receives the flag `--output` as input to indicate the file type that it should package (e.g `rpm`). If this
6
+ flag is not given, the default value is `deb`.
7
+ [conjurinc/debify#56](https://github.com/conjurinc/debify/issues/56)
8
+
3
9
  # 1.12.0
4
10
 
5
11
  ### Added
data/Dockerfile CHANGED
@@ -1,32 +1,18 @@
1
1
  FROM ruby:2.6-stretch
2
2
 
3
- ### DockerInDocker support is take from
4
- ### https://github.com/jpetazzo/dind/blob/master/Dockerfile . I
5
- ### elected to base this image on ruby, then pull in the (slightly
6
- ### outdated) support for DockerInDocker. Creation of the official
7
- ### docker:dind image much more complicated and didn't lend itself to
8
- ### also running ruby.
9
-
10
3
  RUN apt-get update -qq && \
11
4
  apt-get dist-upgrade -qqy && \
12
5
  apt-get install -qqy \
13
6
  apt-transport-https \
14
7
  ca-certificates \
15
- curl \
16
- lxc \
17
- iptables
8
+ curl
18
9
 
19
- # Install Docker from Docker Inc. repositories.
20
- RUN curl -sSL https://get.docker.com/ | sh
21
-
22
- # Install the magic wrapper.
23
- RUN curl -sSL -o /usr/local/bin/wrapdocker https://raw.githubusercontent.com/jpetazzo/dind/master/wrapdocker
24
- RUN chmod +x /usr/local/bin/wrapdocker
25
-
26
- # Define additional metadata for our image.
27
- VOLUME /var/lib/docker
28
-
29
- ### End of DockerInDocker support
10
+ # Install Docker client tools
11
+ ENV DOCKERVERSION=20.10.0
12
+ RUN curl -fsSLO https://download.docker.com/linux/static/stable/x86_64/docker-${DOCKERVERSION}.tgz \
13
+ && tar xzvf docker-${DOCKERVERSION}.tgz --strip 1 \
14
+ -C /usr/local/bin docker/docker \
15
+ && rm docker-${DOCKERVERSION}.tgz
30
16
 
31
17
  RUN mkdir -p /debify
32
18
  WORKDIR /debify
data/Rakefile CHANGED
@@ -33,7 +33,8 @@ if cucumber?
33
33
  Cucumber::Rake::Task.new(:features) do |t|
34
34
  opts = "features --format junit -o #{CUKE_RESULTS} --format pretty -x"
35
35
  opts += " --tags #{ENV['TAGS']}" if ENV['TAGS']
36
- t.cucumber_opts = opts
36
+ opts += " --tags ~@skip"
37
+ t.cucumber_opts = opts
37
38
  t.fork = false
38
39
  end
39
40
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.12.0
1
+ 2.0.0
data/ci/test.sh CHANGED
@@ -2,11 +2,6 @@
2
2
 
3
3
  bundle
4
4
 
5
- # Some tests need to be logged in to the registry, to pull a base
6
- # image if it's not already available. Have entrypoint.sh do something
7
- # simple, and log in as a side effect.
8
- /debify/distrib/entrypoint.sh detect-version
9
-
10
5
  for target in spec cucumber; do
11
6
  bundle exec rake $target
12
7
  done
@@ -6,17 +6,14 @@ set +x
6
6
 
7
7
  creds=( $(ruby /debify/distrib/conjur_creds.rb) )
8
8
 
9
- # If there are creds, use them to log in to the registry. Then, run
10
- # the magic DockerInDocker wrapper script so debify can interact with
11
- # the Docker daemon.
9
+ # If there are creds, use them to log in to the registry.
12
10
  #
13
- # If there are no creds, just run debify itself. Any commands that do
11
+ # If there are no creds, any commands that do
14
12
  # Docker stuff will fail, but the non-Docker commands (e.g. the config
15
13
  # subcommands) will work fine.
16
14
  if [[ ${#creds[*]} > 0 ]]; then
17
15
  echo -n "${creds[1]}" | docker login registry.tld -u ${creds[0]} --password-stdin >/dev/null 2>&1
18
- exec wrapdocker debify "$@"
19
- else
20
- exec debify "$@"
21
16
  fi
22
17
 
18
+ exec debify "$@"
19
+
@@ -1,3 +1,4 @@
1
+ @skip
1
2
  @announce-output
2
3
  Feature: Packaging
3
4
 
@@ -2,6 +2,10 @@
2
2
  Feature: Running a sandbox
3
3
  Background:
4
4
  Given I successfully run `docker pull registry.tld/conjur-appliance-cuke-master:4.9-stable`
5
+ # The extra containers will use the `alpine` image, so we need to pull it first on the
6
+ # host to use the authenticated DockerHub connection. This avoids hitting DockerHub
7
+ # rate limits.
8
+ And I successfully run `docker pull alpine`
5
9
 
6
10
  Scenario: sandbox for 'example' project be started
7
11
  Given I successfully start a sandbox for "example" with arguments "-t 4.9-stable --no-pull"
@@ -12,11 +12,10 @@ When /^I start a container named "(.*?)"(?: on network "(.*?)")*$/ do |name, net
12
12
  networks << network
13
13
  end
14
14
 
15
- alpine = Docker::Image.create('fromImage' => 'alpine')
16
15
  options = {
17
16
  'name' => name,
18
17
  'Cmd' => [ "sh", "-c", "while true; do sleep 1; done" ],
19
- 'Image' => alpine.id
18
+ 'Image' => 'alpine'
20
19
  }
21
20
  options['HostConfig'] = { 'NetworkMode' => net_name } if net_name
22
21
 
@@ -13,6 +13,8 @@ require 'active_support/core_ext'
13
13
 
14
14
  include GLI::App
15
15
 
16
+ DEFAULT_FILE_TYPE = "deb"
17
+
16
18
  config_file '.debifyrc'
17
19
 
18
20
  desc 'Set an environment variable (e.g. TERM=xterm) when starting a container'
@@ -50,7 +52,7 @@ module DebugMixin
50
52
  if a.length == 2 && a[0].is_a?(Symbol)
51
53
  debug a.last
52
54
  else
53
- a.each do |line|
55
+ a.each do |line|
54
56
  begin
55
57
  line = JSON.parse(line)
56
58
  line.keys.each do |k|
@@ -80,7 +82,7 @@ def detect_version
80
82
  base_version = File.read("VERSION").strip
81
83
  commits_since = `git log #{base_commit}..HEAD --pretty='%h'`.split("\n").size
82
84
  hash = `git rev-parse --short HEAD`.strip
83
- [ [ base_version, commits_since ].join('.'), hash ].join("-")
85
+ [[base_version, commits_since].join('.'), hash].join("-")
84
86
  else
85
87
  `git describe --long --tags --abbrev=7 --match 'v*.*.*' | sed -e 's/^v//'`.strip.tap do |version|
86
88
  raise "No Git version (tag) for project" if version.empty?
@@ -125,15 +127,15 @@ DESC
125
127
  arg_name "project-name -- <fpm-arguments>"
126
128
  command "clean" do |c|
127
129
  c.desc "Set the current working directory"
128
- c.flag [ :d, "dir" ]
130
+ c.flag [:d, "dir"]
129
131
 
130
132
  c.desc "Ignore (don't delete) a file or directory"
131
- c.flag [ :i, :ignore ]
133
+ c.flag [:i, :ignore]
132
134
 
133
135
  c.desc "Force file deletion even if if this doesn't look like a Jenkins environment"
134
- c.switch [ :force ]
136
+ c.switch [:force]
135
137
 
136
- c.action do |global_options,cmd_options,args|
138
+ c.action do |global_options, cmd_options, args|
137
139
  def looks_like_jenkins?
138
140
  require 'etc'
139
141
  Etc.getlogin == 'jenkins' && ENV['BUILD_NUMBER']
@@ -144,10 +146,10 @@ command "clean" do |c|
144
146
  if !perform_deletion
145
147
  $stderr.puts "No --force, and this doesn't look like Jenkins. I won't actually delete anything"
146
148
  end
147
- @ignore_list = Array(cmd_options[:ignore]) + [ '.', '..', '.git' ]
149
+ @ignore_list = Array(cmd_options[:ignore]) + ['.', '..', '.git']
148
150
 
149
151
  def ignore_file? f
150
- @ignore_list.find{|ignore| f.index(ignore) == 0}
152
+ @ignore_list.find { |ignore| f.index(ignore) == 0 }
151
153
  end
152
154
 
153
155
  dir = cmd_options[:dir] || '.'
@@ -160,16 +162,16 @@ command "clean" do |c|
160
162
  end
161
163
  find_files.compact!
162
164
  delete_files = (find_files - git_files)
163
- delete_files.delete_if{|file|
165
+ delete_files.delete_if { |file|
164
166
  File.directory?(file) || ignore_file?(file)
165
167
  }
166
168
  if perform_deletion
167
169
  image = Docker::Image.create 'fromImage' => "alpine:3.3"
168
170
  options = {
169
- 'Cmd' => [ "sh", "-c", "while true; do sleep 1; done" ],
171
+ 'Cmd' => ["sh", "-c", "while true; do sleep 1; done"],
170
172
  'Image' => image.id,
171
173
  'Binds' => [
172
- [ dir, "/src" ].join(':'),
174
+ [dir, "/src"].join(':'),
173
175
  ]
174
176
  }
175
177
  options['Privileged'] = true if Docker.version['Version'] >= '1.10.0'
@@ -180,7 +182,7 @@ command "clean" do |c|
180
182
  puts file
181
183
 
182
184
  file = "/src/#{file}"
183
- cmd = [ "rm", "-f", file ]
185
+ cmd = ["rm", "-f", file]
184
186
 
185
187
  stdout, stderr, status = container.exec cmd, &DebugMixin::DOCKER
186
188
  $stderr.puts "Failed to delete #{file}" unless status == 0
@@ -232,18 +234,21 @@ DESC
232
234
  arg_name "project-name -- <fpm-arguments>"
233
235
  command "package" do |c|
234
236
  c.desc "Set the current working directory"
235
- c.flag [ :d, "dir" ]
237
+ c.flag [:d, "dir"]
238
+
239
+ c.desc "Set the output file type of the fpm command (e.g rpm)"
240
+ c.flag [:o, :output]
236
241
 
237
242
  c.desc "Specify the deb version; by default, it's read from the VERSION file"
238
- c.flag [ :v, :version ]
243
+ c.flag [:v, :version]
239
244
 
240
245
  c.desc "Specify a custom Dockerfile.fpm"
241
- c.flag [ :dockerfile]
246
+ c.flag [:dockerfile]
242
247
 
243
248
  c.desc "Specify files to add to the FPM image that are not included from the git repo"
244
- c.flag [ :'additional-files' ]
249
+ c.flag [:'additional-files']
245
250
 
246
- c.action do |global_options,cmd_options,args|
251
+ c.action do |global_options, cmd_options, args|
247
252
  raise "project-name is required" unless project_name = args.shift
248
253
 
249
254
  fpm_args = []
@@ -279,23 +284,29 @@ command "package" do |c|
279
284
  FileUtils.mkdir_p(File.dirname(destination_path))
280
285
  FileUtils.cp(original_file, destination_path)
281
286
  end
282
-
287
+
283
288
  # rename specified dockerfile to 'Dockerfile' during copy, incase name is different
284
289
  dockerfile_path = cmd_options[:dockerfile] || File.expand_path("debify/Dockerfile.fpm", pwd)
285
290
  temp_dockerfile = File.join(temp_dir, "Dockerfile")
286
-
291
+
287
292
  # change image variable in specified Dockerfile
288
293
  dockerfile = File.read(dockerfile_path)
289
294
  replace_image = dockerfile.gsub("@@image@@", fpm_image.id)
290
- File.open(temp_dockerfile, "w") {|file| file.puts replace_image}
295
+ File.open(temp_dockerfile, "w") { |file| file.puts replace_image }
291
296
 
292
297
  # build image from project being debified dir
293
298
  image = Docker::Image.build_from_dir temp_dir, &DebugMixin::DOCKER
294
299
 
295
300
  DebugMixin.debug_write "Built fpm image '#{image.id}' for project #{project_name}\n"
296
301
 
302
+ container_cmd_options = [project_name, version]
303
+
304
+ # Set the output file type if present
305
+ file_type = cmd_options[:output] || DEFAULT_FILE_TYPE
306
+ container_cmd_options << "--file-type=#{file_type}"
307
+
297
308
  options = {
298
- 'Cmd' => [ project_name, version ] + fpm_args,
309
+ 'Cmd' => container_cmd_options + fpm_args,
299
310
  'Image' => image.id
300
311
  }
301
312
  options['Privileged'] = true if Docker.version['Version'] >= '1.10.0'
@@ -307,21 +318,23 @@ command "package" do |c|
307
318
  status = container.wait
308
319
  raise "Failed to package #{project_name}" unless status['StatusCode'] == 0
309
320
 
310
- # Copy deb packages
311
- copy_packages_from_container(
312
- container,
313
- "conjur-#{project_name}_#{version}_amd64.deb",
314
- "conjur-#{project_name}-dev_#{version}_amd64.deb"
315
- )
316
-
317
- # Copy rpm packages
318
- # The rpm builder replaces dashes with underscores in the version
319
- rpm_version = version.tr('-', '_')
320
- copy_packages_from_container(
321
- container,
322
- "conjur-#{project_name}-#{rpm_version}-1.x86_64.rpm",
323
- "conjur-#{project_name}-dev-#{rpm_version}-1.x86_64.rpm"
324
- )
321
+ if file_type == "deb"
322
+ # Copy deb packages
323
+ copy_packages_from_container(
324
+ container,
325
+ "conjur-#{project_name}_#{version}_amd64.deb",
326
+ "conjur-#{project_name}-dev_#{version}_amd64.deb"
327
+ )
328
+ elsif file_type == "rpm"
329
+ # Copy rpm packages
330
+ # The rpm builder replaces dashes with underscores in the version
331
+ rpm_version = version.tr('-', '_')
332
+ copy_packages_from_container(
333
+ container,
334
+ "conjur-#{project_name}-#{rpm_version}-1.x86_64.rpm",
335
+ "conjur-#{project_name}-dev-#{rpm_version}-1.x86_64.rpm"
336
+ )
337
+ end
325
338
  ensure
326
339
  container.delete(force: true)
327
340
  end
@@ -344,10 +357,10 @@ end
344
357
 
345
358
  def network_options(cmd)
346
359
  cmd.desc "Specify link for test container"
347
- cmd.flag [ :l, :link ], :multiple => true
360
+ cmd.flag [:l, :link], :multiple => true
348
361
 
349
362
  cmd.desc 'Attach to the specified network'
350
- cmd.flag [ :n, :net ]
363
+ cmd.flag [:n, :net]
351
364
  end
352
365
 
353
366
  def short_id(id)
@@ -363,7 +376,7 @@ end
363
376
  # instead. (Docker doesn't add full container ids as network aliases,
364
377
  # only short ids).
365
378
  def shorten_source_id(link)
366
- src,dest = link.split(':')
379
+ src, dest = link.split(':')
367
380
  src && dest ? "#{short_id(src)}:#{dest}" : link
368
381
  end
369
382
 
@@ -413,32 +426,32 @@ DESC
413
426
  arg_name "project-name test-script"
414
427
  command "test" do |c|
415
428
  c.desc "Set the current working directory"
416
- c.flag [ :d, :dir ]
429
+ c.flag [:d, :dir]
417
430
 
418
431
  c.desc "Keep the Conjur appliance container after the command finishes"
419
432
  c.default_value false
420
- c.switch [ :k, :keep ]
433
+ c.switch [:k, :keep]
421
434
 
422
435
  c.desc "Image name"
423
436
  c.default_value "registry.tld/conjur-appliance-cuke-master"
424
- c.flag [ :i, :image ]
437
+ c.flag [:i, :image]
425
438
 
426
439
  c.desc "Image tag, e.g. 4.5-stable, 4.6-stable"
427
- c.flag [ :t, "image-tag"]
440
+ c.flag [:t, "image-tag"]
428
441
 
429
442
  c.desc "'docker pull' the Conjur container image"
430
443
  c.default_value true
431
- c.switch [ :pull ]
444
+ c.switch [:pull]
432
445
 
433
446
  c.desc "Specify the deb version; by default, it's read from the VERSION file"
434
- c.flag [ :v, :version ]
447
+ c.flag [:v, :version]
435
448
 
436
449
  c.desc "Specify volume for test container"
437
- c.flag [ :'volumes-from' ], :multiple => true
450
+ c.flag [:'volumes-from'], :multiple => true
438
451
 
439
452
  network_options(c)
440
453
 
441
- c.action do |global_options,cmd_options,args|
454
+ c.action do |global_options, cmd_options, args|
442
455
  raise "project-name is required" unless project_name = args.shift
443
456
  raise "test-script is required" unless test_script = args.shift
444
457
  raise "Received extra command-line arguments" if args.shift
@@ -451,7 +464,7 @@ command "test" do |c|
451
464
 
452
465
  Dir.chdir dir do
453
466
  image_tag = cmd_options["image-tag"] or raise "image-tag is required"
454
- appliance_image_id = [ cmd_options[:image], image_tag ].join(":")
467
+ appliance_image_id = [cmd_options[:image], image_tag].join(":")
455
468
  version = cmd_options[:version] || detect_version
456
469
  package_name = "conjur-#{project_name}_#{version}_amd64.deb"
457
470
  dev_package_name = "conjur-#{project_name}-dev_#{version}_amd64.deb"
@@ -459,7 +472,7 @@ command "test" do |c|
459
472
  raise "#{test_script} does not exist or is not a file" unless File.file?(test_script)
460
473
 
461
474
  begin
462
- tries ||=2
475
+ tries ||= 2
463
476
  Docker::Image.create 'fromImage' => appliance_image_id, &DebugMixin::DOCKER if cmd_options[:pull]
464
477
  rescue
465
478
  login_to_registry appliance_image_id
@@ -498,7 +511,7 @@ RUN touch /etc/service/conjur/down
498
511
  packages << dev_package_name if File.exist? dev_package_name
499
512
 
500
513
  begin
501
- tries ||=2
514
+ tries ||= 2
502
515
  appliance_image = build_test_image(appliance_image_id, project_name, packages)
503
516
  rescue
504
517
  login_to_registry appliance_image_id
@@ -519,7 +532,7 @@ RUN touch /etc/service/conjur/down
519
532
  ] + global_options[:env],
520
533
  'HostConfig' => {
521
534
  'Binds' => [
522
- [ dir, "/src/#{project_name}" ].join(':')
535
+ [dir, "/src/#{project_name}"].join(':')
523
536
  ]
524
537
  }
525
538
  }
@@ -532,16 +545,16 @@ RUN touch /etc/service/conjur/down
532
545
 
533
546
  if global_options[:'local-bundle']
534
547
  host_config['Binds']
535
- .push([ vendor_dir, "/src/#{project_name}/vendor" ].join(':'))
536
- .push([ dot_bundle_dir, "/src/#{project_name}/.bundle" ].join(':'))
548
+ .push([vendor_dir, "/src/#{project_name}/vendor"].join(':'))
549
+ .push([dot_bundle_dir, "/src/#{project_name}/.bundle"].join(':'))
537
550
  end
538
551
 
539
- container = Docker::Container.create(options.tap {|o| DebugMixin.debug_write "creating container with options #{o.inspect}"})
552
+ container = Docker::Container.create(options.tap { |o| DebugMixin.debug_write "creating container with options #{o.inspect}" })
540
553
 
541
554
  begin
542
555
  DebugMixin.debug_write "Testing #{project_name} in container #{container.id}\n"
543
556
 
544
- spawn("docker logs -f #{container.id}", [ :out, :err ] => $stderr).tap do |pid|
557
+ spawn("docker logs -f #{container.id}", [:out, :err] => $stderr).tap do |pid|
545
558
  Process.detach pid
546
559
  end
547
560
  container.start!
@@ -592,29 +605,29 @@ Once in the container, use "/opt/conjur/evoke/bin/dev-install" to install the de
592
605
  DESC
593
606
  command "sandbox" do |c|
594
607
  c.desc "Set the current working directory"
595
- c.flag [ :d, :dir ]
608
+ c.flag [:d, :dir]
596
609
 
597
610
  c.desc "Image name"
598
611
  c.default_value "registry.tld/conjur-appliance-cuke-master"
599
- c.flag [ :i, :image ]
612
+ c.flag [:i, :image]
600
613
 
601
614
  c.desc "Image tag, e.g. 4.5-stable, 4.6-stable"
602
- c.flag [ :t, "image-tag"]
615
+ c.flag [:t, "image-tag"]
603
616
 
604
617
  c.desc "Bind another source directory into the container. Use <src>:<dest>, where both are full paths."
605
- c.flag [ :"bind" ], :multiple => true
618
+ c.flag [:"bind"], :multiple => true
606
619
 
607
620
  c.desc "'docker pull' the Conjur container image"
608
621
  c.default_value false
609
- c.switch [ :pull ]
622
+ c.switch [:pull]
610
623
 
611
624
  network_options(c)
612
625
 
613
626
  c.desc "Specify volume for container"
614
- c.flag [ :'volumes-from' ], :multiple => true
627
+ c.flag [:'volumes-from'], :multiple => true
615
628
 
616
629
  c.desc "Expose a port from the container to host. Use <host>:<container>."
617
- c.flag [ :p, :port ], :multiple => true
630
+ c.flag [:p, :port], :multiple => true
618
631
 
619
632
  c.desc 'Run dev-install in /src/<project-name>'
620
633
  c.default_value false
@@ -625,9 +638,9 @@ command "sandbox" do |c|
625
638
  c.switch [:kill]
626
639
 
627
640
  c.desc 'A command to run in the sandbox'
628
- c.flag [ :c, :command ]
641
+ c.flag [:c, :command]
629
642
 
630
- c.action do |global_options,cmd_options,args|
643
+ c.action do |global_options, cmd_options, args|
631
644
  raise "Received extra command-line arguments" if args.shift
632
645
 
633
646
  dir = cmd_options[:dir] || '.'
@@ -637,11 +650,11 @@ command "sandbox" do |c|
637
650
 
638
651
  Dir.chdir dir do
639
652
  image_tag = cmd_options["image-tag"] or raise "image-tag is required"
640
- appliance_image_id = [ cmd_options[:image], image_tag ].join(":")
653
+ appliance_image_id = [cmd_options[:image], image_tag].join(":")
641
654
 
642
655
  appliance_image = if cmd_options[:pull]
643
656
  begin
644
- tries ||=2
657
+ tries ||= 2
645
658
  Docker::Image.create 'fromImage' => appliance_image_id, &DebugMixin::DOCKER if cmd_options[:pull]
646
659
  rescue
647
660
  login_to_registry appliance_image_id
@@ -671,14 +684,14 @@ command "sandbox" do |c|
671
684
 
672
685
  options['HostConfig'] = host_config = {}
673
686
  host_config['Binds'] = [
674
- [ File.expand_path(".ssh/id_rsa", ENV['HOME']), "/root/.ssh/id_rsa", 'ro' ].join(':'),
675
- [ dir, "/src/#{project_name}" ].join(':'),
687
+ [File.expand_path(".ssh/id_rsa", ENV['HOME']), "/root/.ssh/id_rsa", 'ro'].join(':'),
688
+ [dir, "/src/#{project_name}"].join(':'),
676
689
  ] + Array(cmd_options[:bind])
677
690
 
678
691
  if global_options[:'local-bundle']
679
692
  host_config['Binds']
680
- .push([ vendor_dir, "/src/#{project_name}/vendor" ].join(':'))
681
- .push([ dot_bundle_dir, "/src/#{project_name}/.bundle" ].join(':'))
693
+ .push([vendor_dir, "/src/#{project_name}/vendor"].join(':'))
694
+ .push([dot_bundle_dir, "/src/#{project_name}/.bundle"].join(':'))
682
695
  end
683
696
 
684
697
  host_config['Privileged'] = true if Docker.version['Version'] >= '1.10.0'
@@ -690,7 +703,7 @@ command "sandbox" do |c|
690
703
  port_bindings = Hash.new({})
691
704
  cmd_options[:port].each do |mapping|
692
705
  hport, cport = mapping.split(':')
693
- port_bindings["#{cport}/tcp"] = [{ 'HostPort' => hport }]
706
+ port_bindings["#{cport}/tcp"] = [{'HostPort' => hport}]
694
707
  end
695
708
  host_config['PortBindings'] = port_bindings
696
709
  end
@@ -700,7 +713,7 @@ command "sandbox" do |c|
700
713
  previous.delete(:force => true) if previous
701
714
  end
702
715
 
703
- container = Docker::Container.create(options.tap {|o| DebugMixin.debug_write "creating container with options #{o.inspect}"})
716
+ container = Docker::Container.create(options.tap { |o| DebugMixin.debug_write "creating container with options #{o.inspect}" })
704
717
  $stdout.puts container.id
705
718
  container.start!
706
719
 
@@ -736,27 +749,27 @@ DESC
736
749
  arg_name "distribution project-name"
737
750
  command "publish" do |c|
738
751
  c.desc "Set the current working directory"
739
- c.flag [ :d, :dir ]
752
+ c.flag [:d, :dir]
740
753
 
741
754
  c.desc "Specify the deb package version; by default, it's computed automatically"
742
- c.flag [ :v, :version ]
755
+ c.flag [:v, :version]
743
756
 
744
757
  c.desc "Component to publish to, either 'stable' or the name of the git branch"
745
- c.flag [ :c, :component ]
758
+ c.flag [:c, :component]
746
759
 
747
760
  c.desc "Artifactory URL to publish to"
748
761
  c.default_value "https://conjurinc.jfrog.io/conjurinc"
749
- c.flag [ :u, :url]
762
+ c.flag [:u, :url]
750
763
 
751
764
  c.desc "Artifactory Debian repo to publish package to"
752
765
  c.default_value "debian-private"
753
- c.flag [ :r, :repo]
766
+ c.flag [:r, :repo]
754
767
 
755
768
  c.desc "Artifactory RPM repo to publish package to"
756
769
  c.default_value "redhat-private"
757
770
  c.flag ['rpm-repo']
758
771
 
759
- c.action do |global_options,cmd_options,args|
772
+ c.action do |global_options, cmd_options, args|
760
773
  require 'conjur/debify/action/publish'
761
774
  raise "distribution is required" unless distribution = args.shift
762
775
  raise "project-name is required" unless project_name = args.shift
@@ -769,8 +782,8 @@ end
769
782
  desc "Auto-detect and print the repository version"
770
783
  command "detect-version" do |c|
771
784
  c.desc "Set the current working directory"
772
- c.flag [ :d, :dir ]
773
- c.action do |global_options,cmd_options,args|
785
+ c.flag [:d, :dir]
786
+ c.action do |global_options, cmd_options, args|
774
787
  raise "Received extra command-line arguments" if args.shift
775
788
 
776
789
  dir = cmd_options[:dir] || '.'
@@ -787,7 +800,7 @@ end
787
800
  desc 'Show the given configuration'
788
801
  arg_name 'configuration'
789
802
  command 'config' do |c|
790
- c.action do |_,_,args|
803
+ c.action do |_, _, args|
791
804
  raise 'no configuration provided' unless config = args.shift
792
805
  raise "Received extra command-line arguments" if args.shift
793
806
 
@@ -798,7 +811,7 @@ command 'config' do |c|
798
811
  end
799
812
 
800
813
 
801
- pre do |global,command,options,args|
814
+ pre do |global, command, options, args|
802
815
  # Pre logic here
803
816
  # Return true to proceed; false to abort and not call the
804
817
  # chosen command
@@ -807,7 +820,7 @@ pre do |global,command,options,args|
807
820
  true
808
821
  end
809
822
 
810
- post do |global,command,options,args|
823
+ post do |global, command, options, args|
811
824
  # Post logic here
812
825
  # Use skips_post before a command to skip this
813
826
  # block on that command only
@@ -8,14 +8,33 @@ version=$1
8
8
  shift
9
9
 
10
10
  if [ -z "$project_name" ]; then
11
- echo Project name argument is required
12
- exit 1
11
+ echo Project name argument is required
12
+ exit 1
13
13
  fi
14
14
  if [ -z "$version" ]; then
15
- echo Version argument is required
16
- exit 1
15
+ echo Version argument is required
16
+ exit 1
17
17
  fi
18
18
 
19
+ for i in "$@"; do
20
+ case $i in
21
+ -ft=* | --file-type=*)
22
+ file_type="${i#*=}"
23
+ shift
24
+ ;;
25
+ esac
26
+ done
27
+
28
+ if [ -z "$file_type" ]; then
29
+ echo "No file type given. Using deb"
30
+ file_type=deb
31
+ fi
32
+
33
+ echo Project Name is $project_name
34
+ echo Version is $version
35
+ echo file_type is $file_type
36
+ echo params at the end are $@
37
+
19
38
  # Build dev package first
20
39
  prefix=/src/opt/conjur/project
21
40
  cp -al $prefix /dev-pkg
@@ -27,14 +46,12 @@ cd /dev-pkg
27
46
  remove_matching $prefix
28
47
  bundle_clean
29
48
 
30
- if [ `ls | wc -l` -eq 0 ]; then
49
+ if [ $(ls | wc -l) -eq 0 ]; then
31
50
  echo No dev dependencies, skipping dev package
32
51
  else
33
- for file_type in deb rpm
34
- do
35
- echo "Building conjur-$project_name-dev $file_type package"
52
+ echo "Building conjur-$project_name-dev $file_type package"
36
53
 
37
- fpm \
54
+ fpm \
38
55
  -s dir \
39
56
  -t $file_type \
40
57
  -n conjur-$project_name-dev \
@@ -50,7 +67,6 @@ else
50
67
  --depends "conjur-$project_name = $version" \
51
68
  --prefix /opt/conjur/$project_name \
52
69
  --description "Conjur $project_name service - development files"
53
- done
54
70
  fi
55
71
 
56
72
  mv /src/opt/conjur/project /src/opt/conjur/$project_name
@@ -67,26 +83,23 @@ mkdir -p opt/conjur/etc
67
83
 
68
84
  [ -d opt/conjur/"$project_name"/distrib ] && mv opt/conjur/"$project_name"/distrib /
69
85
 
70
- for file_type in deb rpm
71
- do
72
- echo "Building conjur-$project_name-dev $file_type package"
86
+ echo "Building conjur-$project_name-dev $file_type package"
73
87
 
74
- fpm \
88
+ fpm \
75
89
  -s dir \
76
90
  -t $file_type \
77
91
  -n conjur-$project_name \
78
92
  -v $version \
79
93
  -C . \
80
- --maintainer "CyberArk Software, Inc." \
81
- --vendor "CyberArk Software, Inc." \
82
- --license "Proprietary" \
83
- --url "https://www.cyberark.com" \
84
- --config-files opt/conjur/etc \
85
- --deb-no-default-config-files \
86
- --$file_type-user conjur \
87
- --$file_type-group conjur \
88
- --description "Conjur $project_name service" \
89
- "$@"
90
- done
91
-
92
- ls -al *.{deb,rpm}
94
+ --maintainer "CyberArk Software, Inc." \
95
+ --vendor "CyberArk Software, Inc." \
96
+ --license "Proprietary" \
97
+ --url "https://www.cyberark.com" \
98
+ --config-files opt/conjur/etc \
99
+ --deb-no-default-config-files \
100
+ --$file_type-user conjur \
101
+ --$file_type-group conjur \
102
+ --description "Conjur $project_name service" \
103
+ "$@"
104
+
105
+ ls -l
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: conjur-debify
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.12.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - CyberArk Software, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-11-17 00:00:00.000000000 Z
11
+ date: 2020-12-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gli