# frozen_string_literal: true require "thor" module Neetob class CLI < Thor require_relative "cli/heroku/commands" require_relative "cli/cloudflare/commands" require_relative "cli/sre/commands" require_relative "cli/github/commands" require_relative "cli/users/commands" require_relative "cli/fetchorupdate_repos/execute" require_relative "cli/local/commands" require_relative "cli/code/commands" require_relative "cli/neeto_deploy/commands" require_relative "cli/redirections/commands" require_relative "cli/monthly_audit/commands" class_option :sandbox, { type: :boolean, default: false, desc: "All the commands in sandbox mode will run only on the \"neeto-dummy\" app." } def self.start(*) super end desc "heroku", "Interact with any resource in Heroku" subcommand "heroku", Heroku::Commands desc "github", "Interact with any resource in Github" subcommand "github", Github::Commands desc "cloudflare", "Interact with any resource in Cloudflare" subcommand "cloudflare", Cloudflare::Commands desc "sre", "Commands related to the SRE checklist" subcommand "sre", Sre::Commands desc "neetodeploy", "Interact with resources in neetoDeploy" subcommand "neetodeploy", NeetoDeploy::Commands desc "users", "Interact with the contributors of neeto apps" subcommand "users", Users::Commands desc "local", "Interact with the local neeto repos" subcommand "local", Local::Commands desc "code", "Interact with code base of neeto products" subcommand "code", Code::Commands desc "redirections", "Check whether the redirections are working properly" subcommand "redirections", Redirections::Commands desc "make_repos_uptodate", "Uptodate all neeto repos" option :repos, type: :array, aliases: "-r", default: ["*"], desc: "Github repo names. Can be matched using the '*' wildcard. Example: \"neeto*\" \"neeto-cal-web\", also providing \"all\" as value matches all neeto repos. Note: The default value is \"*\", hence all neeto repos would be affected." def make_repos_uptodate FetchorupdateRepos::Execute.new(options[:sandbox], options[:repos]).run end desc "monthly_audit", "Monthly audit of all the neeto apps/domains/functionalities/ops" subcommand "monthly_audit", MonthlyAudit::Commands end end