#!/usr/bin/env ruby
require 'json'
require 'socket'

pool, ctid = ARGV

s = UNIXSocket.new("/run/osctl/user-control/#{Process.uid}.sock")

payload = {
  cmd: :ct_wrapper_start,
  opts: {
    id: ctid,
    pool:,
    pid: Process.pid
  }
}

s.send("#{payload.to_json}\n", 0)

ret = JSON.parse(s.readline, symbolize_names: true)
s.close

if ret[:status]
  Process.exec(*ARGV[2..])
else
  warn "Error: #{ret[:message]}"
  exit(false)
end
