gitpusshuten 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile.lock +1 -1
- data/bin/heavenly +0 -0
- data/gitpusshuten.gemspec +1 -1
- data/lib/gitpusshuten/command.rb +14 -2
- data/lib/gitpusshuten/commands/push.rb +19 -0
- data/lib/gitpusshuten/hooks.rb +1 -1
- data/lib/gitpusshuten/modules/redis/command.rb +79 -0
- data/lib/gitpusshuten/modules/rvm/command.rb +1 -1
- data/lib/gitpusshuten.rb +3 -2
- data/spec/hooks_spec.rb +1 -1
- metadata +4 -3
    
        data/Gemfile.lock
    CHANGED
    
    
    
        data/bin/heavenly
    CHANGED
    
    | 
            File without changes
         | 
    
        data/gitpusshuten.gemspec
    CHANGED
    
    
    
        data/lib/gitpusshuten/command.rb
    CHANGED
    
    | @@ -56,7 +56,7 @@ module GitPusshuTen | |
| 56 56 | 
             
                ##
         | 
| 57 57 | 
             
                # Wrapper for the command instance
         | 
| 58 58 | 
             
                def command
         | 
| 59 | 
            -
                  @command ||= "GitPusshuTen::Commands::#{cli.command | 
| 59 | 
            +
                  @command ||= "GitPusshuTen::Commands::#{classify_with_plural(cli.command)}".constantize.new(cli, configuration, hooks, environment)
         | 
| 60 60 | 
             
                end
         | 
| 61 61 |  | 
| 62 62 | 
             
                ##
         | 
| @@ -134,7 +134,7 @@ module GitPusshuTen | |
| 134 134 | 
             
                ##
         | 
| 135 135 | 
             
                # Returns the constant of a command
         | 
| 136 136 | 
             
                def get_constant_for(command)
         | 
| 137 | 
            -
                  "GitPusshuTen::Commands::#{command | 
| 137 | 
            +
                  "GitPusshuTen::Commands::#{classify_with_plural(command)}".constantize
         | 
| 138 138 | 
             
                end
         | 
| 139 139 |  | 
| 140 140 | 
             
                ##
         | 
| @@ -143,5 +143,17 @@ module GitPusshuTen | |
| 143 143 | 
             
                  value.to_s.color(:yellow)
         | 
| 144 144 | 
             
                end
         | 
| 145 145 |  | 
| 146 | 
            +
                ##
         | 
| 147 | 
            +
                # Classifies the command, but re-pluralizes it in case
         | 
| 148 | 
            +
                # it ended with the 's' character to ensure the correct
         | 
| 149 | 
            +
                # command is being invoked
         | 
| 150 | 
            +
                def classify_with_plural(word)
         | 
| 151 | 
            +
                  if word =~ /s$/
         | 
| 152 | 
            +
                    word.classify + 's'
         | 
| 153 | 
            +
                  else
         | 
| 154 | 
            +
                    word.classify
         | 
| 155 | 
            +
                  end
         | 
| 156 | 
            +
                end
         | 
| 157 | 
            +
             | 
| 146 158 | 
             
              end
         | 
| 147 159 | 
             
            end
         | 
| @@ -6,6 +6,8 @@ module GitPusshuTen | |
| 6 6 | 
             
                  example     "heavenly push branch develop to staging                                    # Pushes the specified branch to the staging environment."
         | 
| 7 7 | 
             
                  example     "heavenly push tag 1.0.3 to staging                                         # Pushes the specified tag to the staging environment."
         | 
| 8 8 | 
             
                  example     "heavenly push ref 2dbec02aa0b8604b8512e2fcbb8aac582c7f6a73 to production   # Pushes the specified ref to the production environment."
         | 
| 9 | 
            +
                  example     "heavenly push production                                                   # Pushes the master branch to the production environment. (Conventional)"
         | 
| 10 | 
            +
                  example     "heavenly push staging                                                      # Pushes the develop branch to the staging environment. (Conventional)"
         | 
| 9 11 |  | 
| 10 12 | 
             
                  attr_accessor :type
         | 
| 11 13 |  | 
| @@ -49,6 +51,23 @@ module GitPusshuTen | |
| 49 51 | 
             
                    git.add_remote(e.name, "ssh://#{c.user}@#{c.ip}:#{c.port}/#{e.app_dir}")
         | 
| 50 52 | 
             
                  end
         | 
| 51 53 |  | 
| 54 | 
            +
                  ##
         | 
| 55 | 
            +
                  # Conventional command actions
         | 
| 56 | 
            +
             | 
| 57 | 
            +
                  ##
         | 
| 58 | 
            +
                  # Pushes the master branch to the production environment.
         | 
| 59 | 
            +
                  def perform_production!
         | 
| 60 | 
            +
                    message "Pushing branch master to the production environment."
         | 
| 61 | 
            +
                    git.push(:branch, "master").to("production")
         | 
| 62 | 
            +
                  end
         | 
| 63 | 
            +
                  
         | 
| 64 | 
            +
                  ##
         | 
| 65 | 
            +
                  # Pushes the master branch to the production environment.
         | 
| 66 | 
            +
                  def perform_stage!
         | 
| 67 | 
            +
                    message "Pushing branch develop to the stage environment."
         | 
| 68 | 
            +
                    git.push(:branch, "develop").to("staging")
         | 
| 69 | 
            +
                  end
         | 
| 70 | 
            +
             | 
| 52 71 | 
             
                end
         | 
| 53 72 | 
             
              end
         | 
| 54 73 | 
             
            end
         | 
    
        data/lib/gitpusshuten/hooks.rb
    CHANGED
    
    | @@ -36,7 +36,7 @@ module GitPusshuTen | |
| 36 36 | 
             
                  if File.exist?(hooks_file)
         | 
| 37 37 | 
             
                    instance_eval(File.read(hooks_file))
         | 
| 38 38 | 
             
                  else
         | 
| 39 | 
            -
                    GitPusshuTen::Log.warning "Could not locate the hooks.rb file | 
| 39 | 
            +
                    GitPusshuTen::Log.warning "Could not locate the hooks.rb file."
         | 
| 40 40 | 
             
                  end
         | 
| 41 41 | 
             
                  self
         | 
| 42 42 | 
             
                end
         | 
| @@ -0,0 +1,79 @@ | |
| 1 | 
            +
            # encoding: utf-8
         | 
| 2 | 
            +
            module GitPusshuTen
         | 
| 3 | 
            +
              module Commands
         | 
| 4 | 
            +
                class Redis < GitPusshuTen::Commands::Base
         | 
| 5 | 
            +
                  description "[Module] Redis commands."
         | 
| 6 | 
            +
                  usage       "redis <command> for <enviroment>"
         | 
| 7 | 
            +
                  example     "heavenly redis install                 # Installs Redis (system wide) and downloads config template."
         | 
| 8 | 
            +
                  example     "heavenly redis upload-configuration    # Uploads the Redis configuration template to the server, will install Redis if not already present."
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                  def initialize(*objects)
         | 
| 11 | 
            +
                    super
         | 
| 12 | 
            +
                    
         | 
| 13 | 
            +
                    @command = cli.arguments.shift
         | 
| 14 | 
            +
                    
         | 
| 15 | 
            +
                    help if command.nil? or e.name.nil?
         | 
| 16 | 
            +
                    
         | 
| 17 | 
            +
                    @command = @command.underscore
         | 
| 18 | 
            +
                    
         | 
| 19 | 
            +
                    ##
         | 
| 20 | 
            +
                    # Default Configuration
         | 
| 21 | 
            +
                    @installation_dir           = "/etc/redis"
         | 
| 22 | 
            +
                    @configuration_dir          = @installation_dir
         | 
| 23 | 
            +
                    @configuration_file         = File.join(@configuration_dir, 'redis.conf')
         | 
| 24 | 
            +
                    @local_configuration_dir    = File.join(local.gitpusshuten_dir, 'redis')
         | 
| 25 | 
            +
                    @local_configuration_file   = File.join(@local_configuration_dir, "redis.conf")  
         | 
| 26 | 
            +
                  end
         | 
| 27 | 
            +
             | 
| 28 | 
            +
                  def perform_install!
         | 
| 29 | 
            +
                    if e.installed?('redis-server')
         | 
| 30 | 
            +
                      error "Redis is already installed."
         | 
| 31 | 
            +
                      exit
         | 
| 32 | 
            +
                    end
         | 
| 33 | 
            +
                    message "Going to install Redis Key-Value store systemwide"
         | 
| 34 | 
            +
                    Spinner.return :message => "Installing #{y('Redis')}.." do
         | 
| 35 | 
            +
                      e.install!("redis-server")
         | 
| 36 | 
            +
                      g('Done!')
         | 
| 37 | 
            +
                    end
         | 
| 38 | 
            +
                    
         | 
| 39 | 
            +
                    create_file = true
         | 
| 40 | 
            +
                    if File.exist?(@local_configuration_file)
         | 
| 41 | 
            +
                      warning "#{y( @local_configuration_file)} already exists, do you want to overwrite it?"
         | 
| 42 | 
            +
                      create_file = yes?
         | 
| 43 | 
            +
                    end  
         | 
| 44 | 
            +
                    if create_file
         | 
| 45 | 
            +
                      download_redis_configuration_from_server!
         | 
| 46 | 
            +
                      message "The redis configuration has been downloaded to#{y( @local_configuration_file)}."
         | 
| 47 | 
            +
                    end
         | 
| 48 | 
            +
                  end
         | 
| 49 | 
            +
                  
         | 
| 50 | 
            +
                  def perform_upload_configuration!
         | 
| 51 | 
            +
                    unless e.directory?(@installation_dir)
         | 
| 52 | 
            +
                      error "Could not find the Redis installation directory in #{y(@installation_dir)}"
         | 
| 53 | 
            +
                      perform_install!
         | 
| 54 | 
            +
                      exit
         | 
| 55 | 
            +
                    end
         | 
| 56 | 
            +
                    
         | 
| 57 | 
            +
                    unless File.exist?(@local_configuration_file)
         | 
| 58 | 
            +
                      error "Could not find the local Redis configuration file in #{y(@local_configuration_file)}"
         | 
| 59 | 
            +
                      download_redis_configuration_from_server!
         | 
| 60 | 
            +
                      message "Redis configuration has been fetched from the server, edit it and upload it again."
         | 
| 61 | 
            +
                      exit
         | 
| 62 | 
            +
                    end
         | 
| 63 | 
            +
                    Spinner.return :message => "Uploading Redis configuration file #{y(@local_configuration_file)}.." do
         | 
| 64 | 
            +
                      e.scp_as_root(:upload, @local_configuration_file, @configuration_dir)
         | 
| 65 | 
            +
                      g('Done!')
         | 
| 66 | 
            +
                    end
         | 
| 67 | 
            +
                  end
         | 
| 68 | 
            +
                  
         | 
| 69 | 
            +
                  def download_redis_configuration_from_server!
         | 
| 70 | 
            +
                    FileUtils.mkdir_p(@local_configuration_dir)
         | 
| 71 | 
            +
                    Spinner.return :message => "Downloading redis configuration from the server.." do
         | 
| 72 | 
            +
                      e.scp_as_root(:download, @configuration_file, "#{@local_configuration_file}")
         | 
| 73 | 
            +
                      g("Finished downloading!")
         | 
| 74 | 
            +
                    end
         | 
| 75 | 
            +
                  end
         | 
| 76 | 
            +
             | 
| 77 | 
            +
                end
         | 
| 78 | 
            +
              end
         | 
| 79 | 
            +
            end
         | 
| @@ -12,7 +12,7 @@ module GitPusshuTen | |
| 12 12 | 
             
                  example     "heavenly rvm remove-ruby for production         # Uninstalls and removes the Ruby's complete source from RVM."
         | 
| 13 13 | 
             
                  example     "heavenly rvm set-default-ruby for production    # Sets the system wide default Ruby."
         | 
| 14 14 | 
             
                  example     "                                                  This is required if you want to change the Ruby version"
         | 
| 15 | 
            -
                  example     "                                                  for your Ruby applications running Passenger."
         | 
| 15 | 
            +
                  example     "                                                  for your Ruby applications running Phusion Passenger."
         | 
| 16 16 |  | 
| 17 17 | 
             
                  def initialize(*objects)
         | 
| 18 18 | 
             
                    super
         | 
    
        data/lib/gitpusshuten.rb
    CHANGED
    
    | @@ -1,3 +1,4 @@ | |
| 1 | 
            +
            require 'FileUtils'
         | 
| 1 2 | 
             
            require 'open-uri'
         | 
| 2 3 | 
             
            require 'yaml'
         | 
| 3 4 |  | 
| @@ -8,7 +9,7 @@ require 'net/ssh' | |
| 8 9 | 
             
            require 'net/scp'
         | 
| 9 10 | 
             
            require 'highline/import'
         | 
| 10 11 | 
             
            require 'rainbow'
         | 
| 11 | 
            -
            require 'json' | 
| 12 | 
            +
            require 'json'
         | 
| 12 13 |  | 
| 13 14 | 
             
            Dir[File.expand_path(File.join(File.dirname(__FILE__), 'gitpusshuten/**/*'))].each do |file|
         | 
| 14 15 | 
             
              if not File.directory?(file) and not file =~ /\/modules\/.+\/hooks\.rb/
         | 
| @@ -17,5 +18,5 @@ Dir[File.expand_path(File.join(File.dirname(__FILE__), 'gitpusshuten/**/*'))].ea | |
| 17 18 | 
             
            end
         | 
| 18 19 |  | 
| 19 20 | 
             
            module GitPusshuTen
         | 
| 20 | 
            -
              VERSION = '0.0. | 
| 21 | 
            +
              VERSION = '0.0.2'
         | 
| 21 22 | 
             
            end
         | 
    
        data/spec/hooks_spec.rb
    CHANGED
    
    | @@ -27,7 +27,7 @@ describe GitPusshuTen::Hooks do | |
| 27 27 |  | 
| 28 28 | 
             
                context "when the hooks file does not exist" do
         | 
| 29 29 | 
             
                  it "should issue a warning" do
         | 
| 30 | 
            -
                    GitPusshuTen::Log.expects(:warning).with("Could not locate the hooks.rb file | 
| 30 | 
            +
                    GitPusshuTen::Log.expects(:warning).with("Could not locate the hooks.rb file.")
         | 
| 31 31 | 
             
                    hooks_staging.should == hooks_staging.parse!(File.expand_path(File.dirname(__FILE__) + '/fixtures/hooks_not_exist.rb'))
         | 
| 32 32 | 
             
                  end
         | 
| 33 33 |  | 
    
        metadata
    CHANGED
    
    | @@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version | |
| 5 5 | 
             
              segments: 
         | 
| 6 6 | 
             
              - 0
         | 
| 7 7 | 
             
              - 0
         | 
| 8 | 
            -
              -  | 
| 9 | 
            -
              version: 0.0. | 
| 8 | 
            +
              - 2
         | 
| 9 | 
            +
              version: 0.0.2
         | 
| 10 10 | 
             
            platform: ruby
         | 
| 11 11 | 
             
            authors: 
         | 
| 12 12 | 
             
            - Michael van Rooijen
         | 
| @@ -14,7 +14,7 @@ autorequire: | |
| 14 14 | 
             
            bindir: bin
         | 
| 15 15 | 
             
            cert_chain: []
         | 
| 16 16 |  | 
| 17 | 
            -
            date: 2010-11- | 
| 17 | 
            +
            date: 2010-11-21 00:00:00 +01:00
         | 
| 18 18 | 
             
            default_executable: 
         | 
| 19 19 | 
             
            dependencies: 
         | 
| 20 20 | 
             
            - !ruby/object:Gem::Dependency 
         | 
| @@ -165,6 +165,7 @@ files: | |
| 165 165 | 
             
            - lib/gitpusshuten/modules/nginx/command.rb
         | 
| 166 166 | 
             
            - lib/gitpusshuten/modules/passenger/command.rb
         | 
| 167 167 | 
             
            - lib/gitpusshuten/modules/passenger/hooks.rb
         | 
| 168 | 
            +
            - lib/gitpusshuten/modules/redis/command.rb
         | 
| 168 169 | 
             
            - lib/gitpusshuten/modules/rvm/command.rb
         | 
| 169 170 | 
             
            - lib/templates/config.rb
         | 
| 170 171 | 
             
            - lib/templates/hooks.rb
         |