Sha256: 319343bab99ffe4b221b72590f0636f2886735046aabb228b56c45c91a1c3cf1
Contents?: true
Size: 910 Bytes
Versions: 96
Compression:
Stored size: 910 Bytes
Contents
require 'open-uri' class Lono::Template::Bashify def initialize(options={}) @options = options @path = options[:path] end def user_data_paths(data,path="") paths = [] paths << path data.each do |key,value| if value.is_a?(Hash) paths += user_data_paths(value,"#{path}/#{key}") else paths += ["#{path}/#{key}"] end end paths.select {|p| p =~ /UserData/ && p =~ /Fn::Join/ } end def run raw = open(@path).read json = JSON.load(raw) paths = user_data_paths(json) if paths.empty? puts "No UserData script found" return end paths.each do |path| puts "UserData script for #{path}:" key = path.sub('/','').split("/").map {|x| "['#{x}']"}.join('') user_data = eval("json#{key}") delimiter = user_data[0] script = user_data[1] puts script.join(delimiter) end end end
Version data entries
96 entries across 96 versions & 1 rubygems