Class: ChefDK::Command::GeneratorCommands::Policyfile

Inherits:
Base
  • Object
show all
Defined in:
lib/chef-dk/command/generator_commands/policyfile.rb

Instance Attribute Summary collapse

Attributes inherited from Base

#params

Instance Method Summary collapse

Methods inherited from Base

#chef_runner, #generator_cookbook_name, #generator_cookbook_path, #have_git?

Methods included from ChefDK::Configurable

#chef_config, #chefdk_config, #config_loader, #default_chef_server_http_client, #generator_config, #knife_config, #reset_config!

Methods inherited from Base

#check_license_acceptance, #needs_help?, #needs_version?, #run_with_default_options

Methods included from Helpers

#chefdk_home, #err, #git_bin_dir, #git_windows_bin_dir, #msg, #omnibus_apps_dir, #omnibus_bin_dir, #omnibus_chefdk_location, #omnibus_embedded_bin_dir, #omnibus_env, #omnibus_install?, #omnibus_root, #stderr, #stdout, #system_command, #usr_bin_path, #usr_bin_prefix

Constructor Details

#initialize(*args) ⇒ Policyfile

Returns a new instance of Policyfile.



36
37
38
39
40
41
42
43
# File 'lib/chef-dk/command/generator_commands/policyfile.rb', line 36

def initialize(*args)
  super
  @new_file_basename = nil
  @policyfile_dir = nil
  @policy_name = nil
  @policy_run_list = nil
  @params_valid = true
end

Instance Attribute Details

#new_file_basenameObject (readonly)

Returns the value of attribute new_file_basename.



31
32
33
# File 'lib/chef-dk/command/generator_commands/policyfile.rb', line 31

def new_file_basename
  @new_file_basename
end

#policy_nameObject (readonly)

Returns the value of attribute policy_name.



33
34
35
# File 'lib/chef-dk/command/generator_commands/policyfile.rb', line 33

def policy_name
  @policy_name
end

#policy_run_listObject (readonly)

Returns the value of attribute policy_run_list.



34
35
36
# File 'lib/chef-dk/command/generator_commands/policyfile.rb', line 34

def policy_run_list
  @policy_run_list
end

#policyfile_dirObject (readonly)

Returns the value of attribute policyfile_dir.



32
33
34
# File 'lib/chef-dk/command/generator_commands/policyfile.rb', line 32

def policyfile_dir
  @policyfile_dir
end

Instance Method Details

#read_and_validate_paramsObject



71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# File 'lib/chef-dk/command/generator_commands/policyfile.rb', line 71

def read_and_validate_params
  arguments = parse_options(params)

  case arguments.size
  when 0
    if chef_repo_mode?
      err("ERROR: You must give a policy name when generating a policy in a chef-repo.")
      @params_valid = false
      return false
    else
      use_default_policy_settings
    end
  when 1
    derive_policy_settings_from_args(arguments[0])
  else
    @params_valid = false
    err("ERROR: too many arguments")
    return false
  end
end

#recipeObject



45
46
47
# File 'lib/chef-dk/command/generator_commands/policyfile.rb', line 45

def recipe
  "policyfile"
end

#runObject



59
60
61
62
63
64
65
66
67
68
69
# File 'lib/chef-dk/command/generator_commands/policyfile.rb', line 59

def run
  read_and_validate_params
  if params_valid?
    setup_context
    chef_runner.converge
    0
  else
    err(opt_parser)
    1
  end
end

#setup_contextObject



49
50
51
52
53
54
55
56
57
# File 'lib/chef-dk/command/generator_commands/policyfile.rb', line 49

def setup_context
  super
  Generator.add_attr_to_context(:policyfile_dir, policyfile_dir)
  Generator.add_attr_to_context(:new_file_basename, new_file_basename)
  Generator.add_attr_to_context(:include_chef_repo_source, chef_repo_mode?)
  Generator.add_attr_to_context(:policy_name, policy_name)
  Generator.add_attr_to_context(:policy_run_list, policy_run_list)
  Generator.add_attr_to_context(:policy_local_cookbook, nil)
end