Skip to content

Instantly share code, notes, and snippets.

@kitplummer
Created January 11, 2010 15:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kitplummer/274296 to your computer and use it in GitHub Desktop.
Save kitplummer/274296 to your computer and use it in GitHub Desktop.
simple script used to consume mephisto blog entries into textile files.
#!/usr/bin/ruby -w
require "rubygems"
require "mysql"
begin
# connect to the MySQL server
dbh = Mysql.real_connect("url", "user", "pass", "db")
# get server version string and display it
puts "Server version: " + dbh.get_server_info
res = dbh.query("select id, title, body, published_at from contents")
res.each do |row|
#printf "%s, %s\n", row[0], row[3]
# header
header = "---\nlayout: post\ntitle: #{row[1]}\n---\n\n"
corrected = row[1].downcase.gsub(/[^a-z ]/, '').gsub(/ /, '-')
pubdate = row[3].split(" ")[0]
filename = pubdate + "-" + corrected + ".textile"
if (File.exist?(filename))
filename = filename + '.' + row[0]
end
puts "FILENAME: #{filename}"
f = File.new(filename, "w")
f.puts(header)
f.puts(row[2])
f.close
end
puts "Number of rows returned: #{res.num_rows}"
res.free
rescue Mysql::Error => e
puts "Error code: #{e.errno}"
puts "Error message: #{e.error}"
puts "Error SQLSTATE: #{e.sqlstate}" if e.respond_to?("sqlstate")
ensure
# disconnect from server
dbh.close if dbh
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment