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

Version Path
lono-7.5.2 lib/lono/template/bashify.rb
lono-7.5.1 lib/lono/template/bashify.rb
lono-7.5.0 lib/lono/template/bashify.rb
lono-7.4.11 lib/lono/template/bashify.rb
lono-7.4.10 lib/lono/template/bashify.rb
lono-7.4.9 lib/lono/template/bashify.rb
lono-7.4.8 lib/lono/template/bashify.rb
lono-7.4.7 lib/lono/template/bashify.rb
lono-7.4.6 lib/lono/template/bashify.rb
lono-7.4.5 lib/lono/template/bashify.rb
lono-7.4.4 lib/lono/template/bashify.rb
lono-7.4.3 lib/lono/template/bashify.rb
lono-7.4.2 lib/lono/template/bashify.rb
lono-7.4.1 lib/lono/template/bashify.rb
lono-7.4.0 lib/lono/template/bashify.rb
lono-7.3.2 lib/lono/template/bashify.rb
lono-7.3.1 lib/lono/template/bashify.rb
lono-7.3.0 lib/lono/template/bashify.rb
lono-7.2.3 lib/lono/template/bashify.rb
lono-7.2.2 lib/lono/template/bashify.rb