#!/usr/bin/ruby.ruby3.3 
#
# encoding: UTF-8
#
# Copyright (c) 2016 SUSE LINUX Products GmbH
#
# Author: Klaus Kämpf <kkaempf@suse.de>
#

require 'tmpdir'

def usage msg = nil
  STDERR.puts "*** Failed: #{msg}" if msg
  STDERR.puts "Usage:"
  STDERR.puts "kit-prepare-for-dist <kit-tarball>"
  exit 1
end

bindir = File.expand_path(File.dirname(__FILE__))

tarball = ARGV.shift

usage unless tarball

usage "#{tarball} not readable" unless File.readable?(tarball)

dir = File.expand_path(File.dirname(tarball))
basename = File.basename(tarball)

basename_extension = File.extname(basename)

pwd = Dir.pwd

::Dir.mktmpdir do |tmp|
  ::Dir.chdir tmp do |d|
  puts "Extracting #{tarball}"
  tarpath = File.join(dir, basename)
  Kernel.system("tar xf #{tarpath}") || exit(1)
  puts "Searching the maven universe"
  script = File.join(pwd, "create-tarball.sh")
  cmd = "#{bindir}/kitbuilder -v -D #{tmp}/kit/m2 -s #{script}"
  Kernel.system(cmd) || exit(1)
  s = File.read(script)
  File.open(script, "w+") do |f|
    f.puts s
    f.puts "cat > kit/m2/settings.xml <<EOF"
    File.open(File.join(bindir, "..", "templates", "settings.xml")) do |settings|
      f.write(settings.read.tr('`','\''))
    end
    f.puts "EOF"
    f.puts "tar c" + ((basename_extension==".xz")?"J":"j") + "f #{basename} kit"
    f.puts "rm -rf kit"
  end
  puts "Done. Now you can safely remove #{tarball}"
end
end
