Skip to content

Instantly share code, notes, and snippets.

@jsahlen
Created November 18, 2009 13:12
Show Gist options
  • Save jsahlen/237830 to your computer and use it in GitHub Desktop.
Save jsahlen/237830 to your computer and use it in GitHub Desktop.
#!/usr/bin/ruby
require 'fileutils'
outdir = ENV['HOME']+"/Desktop"
project = File.basename `pwd`.strip
pwd = `pwd`.strip
@php = `which php`.strip
outdir += "/#{project}_compiled"
result = `find . -name "*.*"`
exit if !result
result = result.split("\n")
result.collect! { |line| line.gsub(/^\.\/(.*)/, '\1') }
result.delete_if { |line| line.match(/^skel\//) || line.match(/\.DS_Store/) || line.match(/\.svn/) }
folders = Array.new
htmlfiles = Array.new
result.each do |line|
folders.push line if line.match(/\//)
htmlfiles.push line if line.match(/\.(html|php)$/)
end
htmlfiles.delete_if { |line| File.basename(line).match(/^_/) }
folders.collect! { |line| line.gsub(/(.*)\/.*/, '\1') }
folders.uniq!
result.delete_if { |line| line.match(/\.(html|php)$/) }
def createdir(dir)
puts "Creating: #{dir}"
FileUtils.mkdir_p "#{dir}"
end
def copyfile(src,dest)
if File.exist?(src) && !File.directory?(src)
puts "Copying: #{dest}"
FileUtils.cp src, dest
end
end
def docompile(src,dest)
if File.exist?(src)
puts "Compiling: #{dest}"
return if `#{@php} #{src} > #{dest}`
end
end
if result.length > 0
if File.directory? outdir
print "Replace existing directory #{outdir}? [y/N] "
exit unless gets =~ /^(y|yes)$/i
puts "Deleting: #{outdir}"
FileUtils.rm_r "#{outdir}"
end
createdir "#{outdir}"
folders.each { |folder| createdir "#{outdir}/#{folder}" }
result.each { |file| copyfile "#{file}", "#{outdir}/#{file}" }
htmlfiles.each { |file| docompile "#{file}", "#{outdir}/#{file}" }
print "Rename .php files to .html? [y/N] "
exit unless gets =~ /^(y|yes)$/i
files_to_rename = `find #{outdir} -name "*.php"`
exit if !files_to_rename
files_to_rename = files_to_rename.split("\n")
files_to_rename.each do |file|
newname = file.sub(/\.php$/, '.html')
puts "Renaming #{file} to #{File.basename(newname)}"
FileUtils.mv "#{file}", "#{newname}"
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment