class Knife::Clc::Bootstrap::Methods::AsyncWindowsPackage
Constants
- COMBINED_SCRIPT_PATH
- LINES_PER_PARTIAL_SCRIPT
Attributes
config[R]
subcommand_loader[R]
Public Class Methods
new(params)
click to toggle source
# File lib/knife-clc/bootstrap/methods/async_windows_package.rb, line 13 def initialize(params) @config = params.fetch(:config) @subcommand_loader = params.fetch(:subcommand_loader) end
Public Instance Methods
execute(launch_parameters)
click to toggle source
# File lib/knife-clc/bootstrap/methods/async_windows_package.rb, line 18 def execute(launch_parameters) launch_parameters['packages'] ||= [] launch_parameters['packages'].concat(packages_for_async_bootstrap) end
Private Instance Methods
appending_script(script_to_append)
click to toggle source
# File lib/knife-clc/bootstrap/methods/async_windows_package.rb, line 45 def appending_script(script_to_append) "$script = @'\n" + script_to_append + "'@\n" + "$script | out-file #{COMBINED_SCRIPT_PATH} -Append -Encoding ASCII\n" end
bootstrap_command()
click to toggle source
# File lib/knife-clc/bootstrap/methods/async_windows_package.rb, line 57 def bootstrap_command subcommand_loader.load(:class => Chef::Knife::BootstrapWindowsWinrm, :config => config) end
bootstrap_script()
click to toggle source
# File lib/knife-clc/bootstrap/methods/async_windows_package.rb, line 61 def bootstrap_script command = bootstrap_command command.render_template(command.load_template(config[:bootstrap_template])) end
ensure_windows_newlines(script)
click to toggle source
# File lib/knife-clc/bootstrap/methods/async_windows_package.rb, line 52 def ensure_windows_newlines(script) script.gsub!("\r\n", "\n") script.gsub!("\n", "\r\n") end
packages_for_async_bootstrap()
click to toggle source
# File lib/knife-clc/bootstrap/methods/async_windows_package.rb, line 25 def packages_for_async_bootstrap split_script(bootstrap_script).map do |partial_script| { 'packageId' => 'a5d9d04369df4276a4f98f2ca7f7872b', 'parameters' => { 'Mode' => 'PowerShell', 'Script' => partial_script } } end end
split_script(script)
click to toggle source
# File lib/knife-clc/bootstrap/methods/async_windows_package.rb, line 37 def split_script(script) partial_scripts = script.lines.each_slice(LINES_PER_PARTIAL_SCRIPT).map do |lines| appending_script(lines.join).tap { |script| ensure_windows_newlines(script) } end partial_scripts.push(COMBINED_SCRIPT_PATH) end