Class: Marv::Server::Create
- Inherits:
-
Object
- Object
- Marv::Server::Create
- Defined in:
- lib/marv/server/create.rb
Instance Method Summary collapse
-
#add_config_files ⇒ Object
Add configuration files.
-
#copy_wordpress_files ⇒ Object
Copy WordPress files.
-
#create_hotel_server ⇒ Object
Create hotel server.
-
#create_server ⇒ Object
Create server.
-
#create_server_dir ⇒ Object
Creates a directory for a new server.
-
#download_wordpress ⇒ Object
Downloads WordPress from wordpress.org.
-
#initialize(server) ⇒ Create
constructor
Initialize server creator.
-
#start_server ⇒ Object
Starts the new server.
Constructor Details
#initialize(server) ⇒ Create
Initialize server creator
8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/marv/server/create.rb', line 8 def initialize(server) @server = server @task = server.task @global = Marv::Global.new(server.task) @name = server.name @path = server.path @database = server.database @config = server.config create_server end |
Instance Method Details
#add_config_files ⇒ Object
Add configuration files
100 101 102 103 104 105 106 |
# File 'lib/marv/server/create.rb', line 100 def add_config_files layouts = ::File.join(Marv.root, 'layouts', 'config') @global.template ::File.join(layouts, 'server.rb'), ::File.join(@path, 'config.rb'), @server.context @global.template ::File.join(layouts, 'router.php'), ::File.join(@path, 'router.php'), @server.context @global.template ::File.join(layouts, 'wp-config.php'), ::File.join(@path, 'wp-config.php'), @server.context end |
#copy_wordpress_files ⇒ Object
Copy WordPress files
82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'lib/marv/server/create.rb', line 82 def copy_wordpress_files package = download_wordpress tmp_dir = ::File. "/tmp/wordpress-latest-#{Time.now.to_i}" @task.empty_directory tmp_dir unless ::File.directory?(tmp_dir) # Extract package to temporary dir ::Zip.on_exists_proc = true ::Zip::File.open(package) do |zip_file| zip_file.each do |entry| entry.extract(::File.join(tmp_dir, entry.to_s)) end end @task.directory ::File.join(tmp_dir, 'wordpress'), @path @task.remove_dir tmp_dir end |
#create_hotel_server ⇒ Object
Create hotel server
109 110 111 112 113 114 115 116 117 118 119 120 |
# File 'lib/marv/server/create.rb', line 109 def create_hotel_server @task.say_warning "Hotel package detected on your system.", false if @task.yes?("Would you like to create a hotel server?") begin `hotel add 'php -S 127.0.0.1:$PORT' --port #{@server.port} --dir #{@server.path}` @task.say_success "Hotel server created successfully!", false rescue Exception => e @task.say_error "There was an error while creating hotel server:", e., false end end end |
#create_server ⇒ Object
Create server
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/marv/server/create.rb', line 21 def create_server if ::File.exists?(@server.config_file) @task.say_error "A server with the name #{@name} already exists!" abort end @config.merge! @server. begin @task.shell.mute do create_server_dir copy_wordpress_files @server.create_database add_config_files end rescue Exception => e @task.say_error "Error while creating server:", e. abort end @task.say_success "Server #{@name} created successfully!" if @task.exec_exixts?('hotel') create_hotel_server else start_server end end |
#create_server_dir ⇒ Object
Creates a directory for a new server
59 60 61 62 |
# File 'lib/marv/server/create.rb', line 59 def create_server_dir @task.remove_dir @path @task.empty_directory @path end |
#download_wordpress ⇒ Object
Downloads WordPress from wordpress.org
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/marv/server/create.rb', line 65 def download_wordpress package = "/tmp/wordpress-#{@config[:wp_version]}.zip" # Download package file if ::File.exists?(package) @task.say_warning "WordPress is already downloaded...", false, true else ::File.exists?(package) @task.say_info "Downloading WordPress...", false, true @task.get "https://wordpress.org/wordpress-#{@config[:wp_version]}.zip" do |content| @task.create_file package, content end end # Return package file package end |