37 lines
997 B
Ruby
37 lines
997 B
Ruby
#!/usr/bin/env ruby
|
|
|
|
require 'yaml'
|
|
require 'json'
|
|
require 'optparse'
|
|
require 'ostruct'
|
|
require 'fileutils'
|
|
|
|
#quit unless our script gets two command line arguments
|
|
unless ARGV.length == 3
|
|
puts "Dude, not the right number of arguments."
|
|
puts "Usage: ruby json2md.rb [-j][-y] json_file.json yaml_file.yaml\n"
|
|
exit
|
|
end
|
|
|
|
$json_file = ARGV[1]
|
|
$yaml_file = ARGV[2]
|
|
|
|
options = OpenStruct.new
|
|
OptionParser.new do |opt|
|
|
opt.on('-j', '--json', 'Convert to JSON') { |o| options.json = o }
|
|
opt.on('-y', '--yaml', 'Convert to YAML') { |o| options.yaml = o }
|
|
end.parse!
|
|
|
|
case
|
|
when options.yaml == true
|
|
y_file = File.open("#{$yaml_file}", 'a')
|
|
y_file.write(YAML.dump(JSON.parse(IO.read($json_file))))
|
|
y_file.close
|
|
puts "Converted to YAML. Output file is #{$yaml_file}"
|
|
|
|
when options.json == true
|
|
j_file = YAML.load_file(File.open("#{$yaml_file}", 'r'))
|
|
File.write "#{$json_file}", JSON.pretty_generate(j_file)
|
|
puts "Converted to JSON. Output file is #{$json_file}"
|
|
end
|