Class: Ops

Inherits:
Object
  • Object
show all
Defined in:
lib/ops.rb

Overview

executes commands based on local ‘ops.yml`

Defined Under Namespace

Classes: ActionConfigError, UnknownActionError

Constant Summary collapse

CONFIG_FILE =
"ops.yml"
INVALID_SYNTAX_EXIT_CODE =
64
UNKNOWN_ACTION_EXIT_CODE =
65
ERROR_LOADING_APP_CONFIG_EXIT_CODE =
66
MIN_VERSION_NOT_MET_EXIT_CODE =
67
ACTION_CONFIG_ERROR_EXIT_CODE =
68
BUILTIN_SYNTAX_ERROR_EXIT_CODE =
69
ACTION_NOT_ALLOWED_IN_ENV_EXIT_CODE =
70
RECOMMEND_HELP_TEXT =
"Run 'ops help' for a list of builtins and actions."

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(argv) ⇒ Ops

Returns a new instance of Ops.



43
44
45
46
47
48
# File 'lib/ops.rb', line 43

def initialize(argv)
	@action_name = argv[0]
	@args = argv[1..-1]

	Options.set(config["options"] || {})
end

Class Method Details

.project_nameObject



38
39
40
# File 'lib/ops.rb', line 38

def project_name
	File.basename(::Dir.pwd)
end

Instance Method Details

#runObject



50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/ops.rb', line 50

def run
	# "return" is here to allow specs to stub "exit" without executing everything after it
	return exit(INVALID_SYNTAX_EXIT_CODE) unless syntax_valid?
	return exit(MIN_VERSION_NOT_MET_EXIT_CODE) unless min_version_met?

	run_action
rescue UnknownActionError => e
	Output.error(e.to_s)
	Output.out(RECOMMEND_HELP_TEXT) unless print_did_you_mean
	exit(UNKNOWN_ACTION_EXIT_CODE)
rescue ActionConfigError => e
	Output.error("Error(s) running action '#{@action_name}': #{e}")
	exit(ACTION_CONFIG_ERROR_EXIT_CODE)
end