#!/usr/bin/env ruby
# SPDX-License-Identifier: MulanPSL-2.0+
# Copyright (c) 2020 Huawei Technologies Co., Ltd. All rights reserved.
# frozen_string_literal: true

replicate = 2
require 'set'
require_relative '../defconfig'

start_pod
for i in Array(1..replicate)
  docker_rm "new-repo-#{i}"
end

names = Set.new %w[
  ETCD_HOST
  ETCD_PORT
  JOB_JSON_DIR
  JSON_CONSUME_INTERVAL
]

# add character set, when parsing repodate
#   invalid byte sequence in US-ASCII
RUBYOPT = "-KU -E utf-8:utf-8"

defaults = relevant_defaults(names)
defaults['ETCD_PORT'] ||= 2379
defaults['JOB_JSON_DIR'] ||= '/repositories/new-jobs'

for i in Array(1..replicate)
  cmd = %W[
    docker run
    --name=new-repo-#{i}
    -d
    --restart=always
    -u lkp
    --cpus=16
    -e CCI_SRC=/c/cbs
    -e ETCD_HOST=#{defaults['ETCD_HOST']}
    -e ETCD_PORT=#{defaults['ETCD_PORT']}
    -e JOB_JSON_DIR=#{defaults['JOB_JSON_DIR']}
    -e RUBYOPT=#{RUBYOPT}
    -e JSON_CONSUME_INTERVAL=#{defaults['JSON_CONSUME_INTERVAL']}
    -v #{ENV['CCI_SRC']}:/c/cbs:ro
    -v /etc/compass-ci:/etc/compass-ci:ro
    -v /etc/localtime:/etc/localtime:ro
    -v /srv/repositories:/repositories
    -v /srv/log:/srv/log
    -w /c/cbs/container/new-repo
    new-repo
  ]
  
  cmd += ['ruby', 'newrepo.rb']
  
  system(*cmd)
end
