Created
January 23, 2015 11:23
-
-
Save cobyism/e836a5ad9520318c8dcf to your computer and use it in GitHub Desktop.
Reverse engineer *.js.map files to *.coffee
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env ruby | |
require "json" | |
require "fileutils" | |
# Find all *.js.map files in current directory | |
files = Dir["./**/*.js.map"] | |
# Parse out the JSON | |
mapfiles = files.map { |f| JSON.parse File.read(f) } | |
# Set where the output should go | |
export_directory = "./source" | |
# Nuke the previous output | |
exec "rm -rf #{export_directory}" if File.directory?(export_directory) | |
# Iterate over all the sources and resurrect them. | |
mapfiles.each do |mapfile| | |
mapfile["sources"].each_with_index do |source, index| | |
# Create a directory for each file. | |
outdir = File.dirname("#{export_directory}/#{source}") | |
FileUtils.mkdir_p(outdir) unless File.directory?(outdir) | |
# Create each file and write out the contents | |
outfile = "#{export_directory}/#{source}" | |
contents = mapfile["sourcesContent"][index] | |
File.open(outfile, "w") { |f| f.write contents } | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment