Sha256: 376a4930f9fa22a2f011f72baa772578e106700a371c4e84ceb11d81fdcb75c5

Contents?: true

Size: 1.85 KB

Versions: 3

Compression:

Stored size: 1.85 KB

Contents

require "net/ssh"
require "thor"

module Dogids
  class Cli < Thor
    no_commands do
      def deploy_web
        print_heading("Deploying dogids.com...")

        Net::SSH.start("web1.dogids.codelation.net", "dogids") do |ssh|
          print_command("Checking the current git status...")
          ssh.exec!(web_git_status_command) do |_channel, _stream, data|
            print_command(data)
          end

          if yes?("-----> Continue with deployment? [no]")
            print_command("Pulling latest from master...")
            ssh.exec!(web_git_pull_command) do |_channel, _stream, data|
              print_command(data)
            end

            print_command("Updating file permissions...")
            ssh.exec!(web_update_permissions_command) do |_channel, _stream, data|
              print_command(data)
            end
          end
        end

        print_heading("Done.")
      end
    end

  private

    def web_git_pull_command
      commands = []
      commands << "cd /home/dogids/apps/dogids.com"
      commands << "git pull origin master"
      commands.join("&& ")
    end

    def web_git_status_command
      commands = []
      commands << "cd /home/dogids/apps/dogids.com"
      commands << "git status -s"
      commands.join("&& ")
    end

    def web_update_permissions_command
      commands = []
      app_path = "/home/dogids/apps/dogids.com"
      writable_directories = [
        "blog/wp-content",
        "feeds",
        "logs",
        "ls_file_cache",
        "resources",
        "reviews_cache",
        "temp",
        "templates",
        "uploaded"
      ]

      writable_directories.each do |directory|
        full_path = File.join(app_path, directory)
        commands << "sudo chown dogids:www-data -R #{full_path}"
        commands << "sudo chmod 775 -R #{full_path}"
      end

      commands.join("&& ")
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
dogids-cli-0.0.6 lib/dogids/deploy/web.rb
dogids-cli-0.0.5 lib/dogids/deploy/web.rb
dogids-cli-0.0.4 lib/dogids/deploy/web.rb