lib/pave.rb in pave-0.0.1 vs lib/pave.rb in pave-0.0.2

- old
+ new

@@ -1,5 +1,81 @@ require "pave/version" module Pave - # Your code goes here... + class Concrete + include Methadone::CLILogging + include Methadone::SH + + attr_accessor :name + + def self.create(name) + info "" + info "Setting up Concrete5 in folder #{name}." + new(name).setup + 0 + end + + def initialize(name) + @name = name + end + + def setup + clone_concrete5 + set_up_app_folder + end + + def clone_concrete5 + info "* Downloading Concrete5 version 5.6.2.1..." + sh "curl http://www.concrete5.org/download_file/-/view/58379/8497 -o c5.zip" + info "* Download complete. Unzipping..." + sh "unzip c5.zip" + sh "rm c5.zip" + sh "mv concrete5.6.2.1 #{name}" + info "* Concrete5 downloaded and unzipped into ./#{name}." + end + + def set_up_app_folder + info "* Setting up folders..." + sh "mkdir #{name}/app" + + symlink_folders + remove_extra_folders + end + + def symlink_folders + symlinked_folders.each do |folder| + sh "mv #{name}/#{folder} #{name}/app/#{folder}" + sh "ln -s app/#{folder} #{name}/#{folder}" + end + end + + def symlinked_folders + [ + :blocks, + :elements, + :jobs, + :libraries, + :models, + :packages, + :page_types, + :single_pages, + :themes, + :tools, + ] + end + + def remove_extra_folders + sh "rmdir #{name}/" + removed_folders.join(" #{name}/") + end + + def removed_folders + [ + :css, + :controllers, + :helpers, + :js, + :languages, + :mail, + ] + end + end end