require 'commander' require 'sct/command' module Sct class CommandsGenerator include Commander::Methods def self.start self.new.run end def run program :name, 'sct' program :version, Sct::VERSION program :summary, 'CLI helper tool for local SCT development' program :description, 'SCT is a CLI tool for developers using the Visma Continuous Deployment Model in conjunction with the Google Cloud Platform (GCP). It provides multiple command to set up and maintain a kubernetes cluster on a machine for local development' global_option('--verbose') { $verbose = true } command :init do |c| c.syntax = 'sct init' c.description = 'setup sct' c.action do |args, options| UI.important("setting up sct") Sct::InitCommand.new.execute(args, options) end end command :hostfile do |c| c.syntax = 'sct hostfile' c.description = 'patch hostfile with kubernetes ip' c.action do |args, options| UI.important("Trying to patch hostfile") Sct::HostfileCommand.new.execute(args, options) end end command :'mysql proxy' do |c| c.syntax = 'sct mysql proxy' c.description = 'setup google mysql proxy' c.action do |args, options| UI.important("Trying to setup mysql proxy") Sct::MysqlproxyCommand.new.execute(args, options) end end command :'cluster' do |c| c.syntax = 'sct cluster' c.description = 'make changes to the cluster' end command :'shell' do |c| c.syntax = 'sct shell' c.description = 'run commands from the shell using docker containers' end run! end end end