class Shellpress::Wordpress

Constants

ORDER

Public Class Methods

source_root() click to toggle source
# File lib/shellpress/wordpress.rb, line 7
def self.source_root
  File.dirname(__FILE__)
end

Public Instance Methods

clean() click to toggle source
# File lib/shellpress/wordpress.rb, line 104
def clean
  if options[:all]
    FileUtils.rm_rf "."
  else
    Dir.glob("*").reject{|file| ['.yml'].include?(File.extname(file)) }
  end
end
download() click to toggle source
# File lib/shellpress/wordpress.rb, line 19
def download
  version = options[:version]

  if version
    say "*** Downloading WordPress #{version}", :green
    run "wget http://wordpress.org/wordpress-#{version}.tar.gz -O wordpress.tar.gz", :verbose => false
  else
    say "*** Downloading latest WordPress", :green
    run "wget http://wordpress.org/latest.tar.gz -O wordpress.tar.gz", :verbose => false
  end

  run "tar zxf wordpress.tar.gz", :verbose => false
  remove_file "wordpress.tar.gz", :verbose => false
  run "mv wordpress/* .", :verbose => false
  run "rmdir wordpress", :verbose => false
end
install() click to toggle source
# File lib/shellpress/wordpress.rb, line 50
def install
  config = options[:config]
  output = options[:output]

  unless File.exists?("wp-content")
    invoke :download
  end

  if config
    say "*** Loading settings from #{config}", :green
    settings = YAML.load_file(config)
  elsif File.exists?("config.yml") && !options[:skip_config]
    say "*** Loading settings from config.yml", :green
    settings = YAML.load_file("config.yml")
  else
    settings = { "mysql" => {}, "wp" => {} }

    settings["mysql"]["host"] = ask "MySQL host: "
    settings["mysql"]["db"] = ask "MySQL db: "
    settings["mysql"]["user"] = ask "MySQL user: "
    settings["mysql"]["pass"] = ask "MySQL pass: "
    settings["wp"]["title"]= ask "WordPress Title: "
    settings["wp"]["user"] = ask "WordPress User: "
    settings["wp"]["pass"] = ask "WordPress Pass: "
    settings["wp"]["email"] = ask "WordPress Email: "
    settings["wp"]["url"] = ask "WordPress URL: "

    if output
      File.open(output, "w") do |out|
        say "*** #{output} written", :green
        YAML.dump(settings, out)
      end
    end
  end

  say "*** Downloading WordPress Salt keys", :green
  run "wget https://api.wordpress.org/secret-key/1.1/salt/ -O /tmp/wp.keys", :verbose => false

  say "*** Updating wp-config with settings", :green
  run "sed -e 's/localhost/#{settings['mysql']['host']}/' -e 's/database_name_here/#{settings['mysql']['db']}/' -e 's/username_here/#{settings['mysql']['user']}/' -e 's/password_here/#{settings['mysql']['pass']}/' wp-config-sample.php > wp-config.php", :verbose => false
  run "sed -i '\/\#\@\-\/r \/tmp\/wp.keys' wp-config.php", :verbose => false
  run "sed -i '\/\#\@\+\/,\/\#\@\-\/d' wp-config.php", :verbose => false

  run "curl -d 'weblog_title=#{settings['wp']['title']}&user_name=#{settings['wp']['user']}&admin_password=#{settings['wp']['pass']}&admin_password2=#{settings['wp']['pass']}&admin_email=#{settings['wp']['email']}' http://#{settings['wp']['url']}/wp-admin/install.php?step=2"

end