vagrant-gatling-rsync 0.2.0.beta.1 → 0.9.0
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +15 -1
- data/Gemfile +1 -1
- data/README.md +10 -2
- data/example/vagrant/Vagrantfile +20 -9
- data/lib/vagrant-gatling-rsync.rb +1 -0
- data/lib/vagrant-gatling-rsync/action/startup_rsync.rb +11 -3
- data/lib/vagrant-gatling-rsync/command/rsync_auto.rb +3 -1
- data/lib/vagrant-gatling-rsync/config.rb +1 -1
- data/lib/vagrant-gatling-rsync/errors.rb +2 -2
- data/lib/vagrant-gatling-rsync/listen/listenwindows.rb +1 -1
- data/lib/vagrant-gatling-rsync/plugin.rb +1 -0
- data/lib/vagrant-gatling-rsync/version.rb +1 -1
- data/locales/en.yml +4 -2
- metadata +16 -16
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 5efa02572fb29f90b58dab6e9e30316510de6e5f
         | 
| 4 | 
            +
              data.tar.gz: a666035292ee9f25dd6183b4a250551d52e43b61
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: bae64c5eab5aab245c2fc27d7771227944e1129565462c4df34698da5b50696d9905149cc88a2de16403130a9558552aebf0d4263e203c48d99ef93715694035
         | 
| 7 | 
            +
              data.tar.gz: dcb41db757d7a03ee9350758d167103d0152feda01356e88b46b98294c1a6f46c53fd21c83b26256584af3415af43755b5bfc6e57e870fd064a8c09362831947
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -1,3 +1,17 @@ | |
| 1 | 
            +
            ## 0.9.0 (June 28, 2015)
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            This release adds two big features: Windows support and automatic sync on startup.
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            It also adds the `config.gatling.rsync_on_startup` configuration option to turn automatic rsync on startup off if you
         | 
| 6 | 
            +
            do not want it.
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            It also updates the Gemfile to use Vagrant 1.7.2 for development. The gem should still work with Vagrant 1.5.1+.
         | 
| 9 | 
            +
             | 
| 10 | 
            +
            FEATURES:
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            - Add support for Windows. Thanks to @mfradcourt for wiring it up. [GH-21]
         | 
| 13 | 
            +
            - Add automatic sync startup on `vagrant up` or `vagrant reload` if rsync folders are present. [GH-14]
         | 
| 14 | 
            +
             | 
| 1 15 | 
             
            ## 0.1.0 (January 04, 2015)
         | 
| 2 16 |  | 
| 3 17 | 
             
            This release adds feature parity with Vagrant core rsync-auto by doing a sync when gatling-rsync is started.
         | 
| @@ -10,7 +24,7 @@ FEATURES: | |
| 10 24 |  | 
| 11 25 | 
             
            This release adds notification of time and duration of rsyncs.
         | 
| 12 26 |  | 
| 13 | 
            -
            It also adds the config.gatling.time_format configuration option to allow customization of the time format string when
         | 
| 27 | 
            +
            It also adds the `config.gatling.time_format` configuration option to allow customization of the time format string when
         | 
| 14 28 | 
             
            time information is printed to the console.
         | 
| 15 29 |  | 
| 16 30 | 
             
            It also updates the Gemfile to use Vagrant 1.6.4 so that I can test on Linux using the Docker provider. This should not
         | 
    
        data/Gemfile
    CHANGED
    
    
    
        data/README.md
    CHANGED
    
    | @@ -5,8 +5,8 @@ potential cost of more rsync actions. | |
| 5 5 |  | 
| 6 6 | 
             
            ## Getting started
         | 
| 7 7 |  | 
| 8 | 
            -
            To get started, you need to have Vagrant 1.5.1 installed on your Linux or
         | 
| 9 | 
            -
             | 
| 8 | 
            +
            To get started, you need to have Vagrant 1.5.1 installed on your Linux, Mac, or
         | 
| 9 | 
            +
            Windows host machine. To install the plugin, use the following command.
         | 
| 10 10 |  | 
| 11 11 | 
             
            ```bash
         | 
| 12 12 | 
             
            vagrant plugin install vagrant-gatling-rsync
         | 
| @@ -39,6 +39,9 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| | |
| 39 39 | 
             
                config.gatling.latency = 2.5
         | 
| 40 40 | 
             
                config.gatling.time_format = "%H:%M:%S"
         | 
| 41 41 | 
             
              end
         | 
| 42 | 
            +
             | 
| 43 | 
            +
              # Automatically sync when machines with rsync folders come up.
         | 
| 44 | 
            +
              config.gatling.rsync_on_startup = true
         | 
| 42 45 | 
             
            end
         | 
| 43 46 | 
             
            ```
         | 
| 44 47 |  | 
| @@ -49,6 +52,11 @@ command to sync files. | |
| 49 52 | 
             
            vagrant gatling-rsync-auto
         | 
| 50 53 | 
             
            ```
         | 
| 51 54 |  | 
| 55 | 
            +
            As of version 0.9.0, vagrant-gatling-rsync will automatically start the sync
         | 
| 56 | 
            +
            engine on `vagrant up` or `vagrant reload` when the machines that you bring up
         | 
| 57 | 
            +
            have one or more rsync folders defined.  You can disable this behavior by
         | 
| 58 | 
            +
            setting `config.gatling.rsync_on_startup` to false.
         | 
| 59 | 
            +
             | 
| 52 60 | 
             
            ## Why "gatling"?
         | 
| 53 61 |  | 
| 54 62 | 
             
            The gatling gun was the first gun capable of firing continuously.
         | 
    
        data/example/vagrant/Vagrantfile
    CHANGED
    
    | @@ -5,7 +5,7 @@ | |
| 5 5 | 
             
            VAGRANTFILE_API_VERSION = "2"
         | 
| 6 6 |  | 
| 7 7 | 
             
            Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
         | 
| 8 | 
            -
              config.vm.box = " | 
| 8 | 
            +
              config.vm.box = "centos/7"
         | 
| 9 9 |  | 
| 10 10 | 
             
              config.vm.provider "docker" do |d, override|
         | 
| 11 11 | 
             
                d.image = "smerrill/vagrant-centos"
         | 
| @@ -19,12 +19,9 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| | |
| 19 19 | 
             
                override.ssh.port = 22
         | 
| 20 20 | 
             
              end
         | 
| 21 21 |  | 
| 22 | 
            -
               | 
| 23 | 
            -
             | 
| 24 | 
            -
               | 
| 25 | 
            -
              # argument is a set of non-required options.
         | 
| 26 | 
            -
              config.vm.synced_folder "../files", "/opt/vagrant/rsynced_folder", type: "rsync",
         | 
| 27 | 
            -
                rsync__exclude: [".git/", ".idea/"]
         | 
| 22 | 
            +
              config.vm.provider "lxc" do |d, override|
         | 
| 23 | 
            +
                override.vm.box = "smerrill/centos-7"
         | 
| 24 | 
            +
              end
         | 
| 28 25 |  | 
| 29 26 | 
             
              # When using gatling rsync in your projects, you should wrap these configs in
         | 
| 30 27 | 
             
              # an 'if Vagrant.has_plugin?("vagrant-gatling-rsync")' test.
         | 
| @@ -33,7 +30,21 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| | |
| 33 30 | 
             
              config.gatling.latency = 0.4
         | 
| 34 31 | 
             
              config.gatling.time_format = "%H:%M:%S"
         | 
| 35 32 |  | 
| 36 | 
            -
              # Gatling rsync  | 
| 37 | 
            -
              # your Vagrant environment start  | 
| 33 | 
            +
              # Gatling rsync will run `vagrant gatling-rsync-auto` after the machines in
         | 
| 34 | 
            +
              # your Vagrant environment start unles you set this to false.
         | 
| 38 35 | 
             
              config.gatling.rsync_on_startup = true
         | 
| 36 | 
            +
             | 
| 37 | 
            +
              # Add a multi-box setup.
         | 
| 38 | 
            +
              config.vm.define "rsync", primary: true do |m|
         | 
| 39 | 
            +
                m.vm.synced_folder "../files", "/opt/vagrant/rsynced_folder", type: "rsync",
         | 
| 40 | 
            +
                  rsync__exclude: [".git/", ".idea/"]
         | 
| 41 | 
            +
              end
         | 
| 42 | 
            +
             | 
| 43 | 
            +
              config.vm.define "rsync2", primary: true do |m|
         | 
| 44 | 
            +
                m.vm.synced_folder "../files", "/opt/vagrant/rsynced_folder", type: "rsync",
         | 
| 45 | 
            +
                  rsync__exclude: [".git/", ".idea/"]
         | 
| 46 | 
            +
              end
         | 
| 47 | 
            +
             | 
| 48 | 
            +
              config.vm.define "norsync" do |m|
         | 
| 49 | 
            +
              end
         | 
| 39 50 | 
             
            end
         | 
| @@ -14,6 +14,7 @@ module VagrantPlugins | |
| 14 14 | 
             
                autoload :Errors, lib_path.join("errors")
         | 
| 15 15 | 
             
                autoload :ListenOSX, lib_path.join("listen/listenosx")
         | 
| 16 16 | 
             
                autoload :ListenLinux, lib_path.join("listen/listenlinux")
         | 
| 17 | 
            +
                autoload :ListenWindows, lib_path.join("listen/listenwindows")
         | 
| 17 18 |  | 
| 18 19 | 
             
                # This returns the path to the source of this plugin.
         | 
| 19 20 | 
             
                #
         | 
| @@ -3,12 +3,18 @@ require "vagrant" | |
| 3 3 | 
             
            module VagrantPlugins
         | 
| 4 4 | 
             
              module GatlingRsync
         | 
| 5 5 | 
             
                class StartupRsync
         | 
| 6 | 
            +
                  include Vagrant::Action::Builtin::MixinSyncedFolders
         | 
| 7 | 
            +
             | 
| 6 8 | 
             
                  def initialize(app, env)
         | 
| 7 9 | 
             
                    @app = app
         | 
| 8 10 | 
             
                    @gatling_startup_registered = false
         | 
| 11 | 
            +
                    @rsync_folder_count = 0
         | 
| 9 12 | 
             
                  end
         | 
| 10 13 |  | 
| 11 14 | 
             
                  def call(env)
         | 
| 15 | 
            +
                    folders = synced_folders(env[:machine])
         | 
| 16 | 
            +
                    @rsync_folder_count += folders[:rsync].size if folders.key?(:rsync)
         | 
| 17 | 
            +
             | 
| 12 18 | 
             
                    @app.call(env)
         | 
| 13 19 |  | 
| 14 20 | 
             
                    # Ensure only one at_exit block is registered.
         | 
| @@ -28,9 +34,11 @@ module VagrantPlugins | |
| 28 34 | 
             
                        exit exit_status
         | 
| 29 35 | 
             
                      end
         | 
| 30 36 |  | 
| 31 | 
            -
                      #  | 
| 32 | 
            -
                       | 
| 33 | 
            -
             | 
| 37 | 
            +
                      # Don't run if there are no rsynced folders.
         | 
| 38 | 
            +
                      unless @rsync_folder_count == 0 then
         | 
| 39 | 
            +
                        env[:ui].info I18n.t("vagrant_gatling_rsync.startup_sync")
         | 
| 40 | 
            +
                        env[:machine].env.cli("gatling-rsync-auto")
         | 
| 41 | 
            +
                      end
         | 
| 34 42 | 
             
                    end
         | 
| 35 43 |  | 
| 36 44 | 
             
                    @gatling_startup_registered = true
         | 
| @@ -94,9 +94,11 @@ module VagrantPlugins | |
| 94 94 | 
             
                      ListenOSX.new(paths, ignores, latency, @logger, self.method(:callback)).run
         | 
| 95 95 | 
             
                    when /linux/
         | 
| 96 96 | 
             
                      ListenLinux.new(paths, ignores, latency, @logger, self.method(:callback)).run
         | 
| 97 | 
            +
                    when /cygwin|mswin|mingw|bccwin|wince|emx/
         | 
| 98 | 
            +
                      ListenWindows.new(paths, ignores, latency, @logger, self.method(:callback)).run
         | 
| 97 99 | 
             
                    else
         | 
| 98 100 | 
             
                      # @TODO: Raise this earlier?
         | 
| 99 | 
            -
                      raise Errors:: | 
| 101 | 
            +
                      raise Errors::OSNotSupportedError
         | 
| 100 102 | 
             
                    end
         | 
| 101 103 |  | 
| 102 104 | 
             
                    0
         | 
| @@ -17,7 +17,7 @@ module VagrantPlugins | |
| 17 17 | 
             
                    @latency = 1.5 if @latency == UNSET_VALUE
         | 
| 18 18 | 
             
                    @time_format = "%I:%M:%S %p" if @time_format == UNSET_VALUE
         | 
| 19 19 | 
             
                    if @rsync_on_startup == UNSET_VALUE
         | 
| 20 | 
            -
                      @rsync_on_startup =  | 
| 20 | 
            +
                      @rsync_on_startup = true
         | 
| 21 21 | 
             
                    else
         | 
| 22 22 | 
             
                      @rsync_on_startup = !!@rsync_on_startup
         | 
| 23 23 | 
             
                    end
         | 
| @@ -7,8 +7,8 @@ module VagrantPlugins | |
| 7 7 | 
             
                    error_namespace("vagrant_gatling_rsync.errors")
         | 
| 8 8 | 
             
                  end
         | 
| 9 9 |  | 
| 10 | 
            -
                  class  | 
| 11 | 
            -
                    error_key(: | 
| 10 | 
            +
                  class OSNotSupportedError < VagrantGatlingRsyncError
         | 
| 11 | 
            +
                    error_key(:os_not_supported)
         | 
| 12 12 | 
             
                  end
         | 
| 13 13 |  | 
| 14 14 | 
             
                  class Vagrant15RequiredError < VagrantGatlingRsyncError
         | 
| @@ -18,7 +18,7 @@ module VagrantPlugins | |
| 18 18 | 
             
                    monitor = WDM::Monitor.new
         | 
| 19 19 | 
             
                    changes = Queue.new
         | 
| 20 20 | 
             
                    @paths.keys.each do |path|
         | 
| 21 | 
            -
                      monitor.watch_recursively(path) { |change| changes << change }
         | 
| 21 | 
            +
                      monitor.watch_recursively(path.dup) { |change| changes << change }
         | 
| 22 22 | 
             
                    end
         | 
| 23 23 | 
             
                    Thread.new { monitor.run! }
         | 
| 24 24 |  | 
    
        data/locales/en.yml
    CHANGED
    
    | @@ -2,9 +2,11 @@ en: | |
| 2 2 | 
             
              vagrant_gatling_rsync:
         | 
| 3 3 | 
             
                gatling_ran: |-
         | 
| 4 4 | 
             
                  %{date}: The rsync operation completed in %{milliseconds} milliseconds.
         | 
| 5 | 
            +
                startup_sync: |-
         | 
| 6 | 
            +
                  vagrant-gatling-rsync is starting the sync engine because you have at least one rsync folder. To disable this behavior, set `config.gatling.rsync_on_startup = false` in your Vagrantfile.
         | 
| 5 7 | 
             
                errors:
         | 
| 6 | 
            -
                   | 
| 7 | 
            -
                    The vagrant-gatling-rsync plugin  | 
| 8 | 
            +
                  os_not_supported: |-
         | 
| 9 | 
            +
                    The vagrant-gatling-rsync plugin does not support your OS.
         | 
| 8 10 | 
             
                  vagrant_15_required: |-
         | 
| 9 11 | 
             
                    The vagrant-gatling-rsync plugin requires Vagrant 1.5.1 or newer to function.
         | 
| 10 12 |  | 
    
        metadata
    CHANGED
    
    | @@ -1,69 +1,69 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: vagrant-gatling-rsync
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.9.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Steven Merrill
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2015- | 
| 11 | 
            +
            date: 2015-06-28 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: bundler
         | 
| 15 15 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 16 | 
             
                requirements:
         | 
| 17 | 
            -
                - - ~>
         | 
| 17 | 
            +
                - - "~>"
         | 
| 18 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 19 19 | 
             
                    version: '1.5'
         | 
| 20 20 | 
             
              type: :development
         | 
| 21 21 | 
             
              prerelease: false
         | 
| 22 22 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 23 | 
             
                requirements:
         | 
| 24 | 
            -
                - - ~>
         | 
| 24 | 
            +
                - - "~>"
         | 
| 25 25 | 
             
                  - !ruby/object:Gem::Version
         | 
| 26 26 | 
             
                    version: '1.5'
         | 
| 27 27 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 28 28 | 
             
              name: rake
         | 
| 29 29 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 30 | 
             
                requirements:
         | 
| 31 | 
            -
                - -  | 
| 31 | 
            +
                - - ">="
         | 
| 32 32 | 
             
                  - !ruby/object:Gem::Version
         | 
| 33 33 | 
             
                    version: '0'
         | 
| 34 34 | 
             
              type: :development
         | 
| 35 35 | 
             
              prerelease: false
         | 
| 36 36 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 37 | 
             
                requirements:
         | 
| 38 | 
            -
                - -  | 
| 38 | 
            +
                - - ">="
         | 
| 39 39 | 
             
                  - !ruby/object:Gem::Version
         | 
| 40 40 | 
             
                    version: '0'
         | 
| 41 41 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 42 42 | 
             
              name: pry
         | 
| 43 43 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 44 44 | 
             
                requirements:
         | 
| 45 | 
            -
                - -  | 
| 45 | 
            +
                - - ">="
         | 
| 46 46 | 
             
                  - !ruby/object:Gem::Version
         | 
| 47 47 | 
             
                    version: '0'
         | 
| 48 48 | 
             
              type: :development
         | 
| 49 49 | 
             
              prerelease: false
         | 
| 50 50 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 51 51 | 
             
                requirements:
         | 
| 52 | 
            -
                - -  | 
| 52 | 
            +
                - - ">="
         | 
| 53 53 | 
             
                  - !ruby/object:Gem::Version
         | 
| 54 54 | 
             
                    version: '0'
         | 
| 55 55 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 56 56 | 
             
              name: json
         | 
| 57 57 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 58 58 | 
             
                requirements:
         | 
| 59 | 
            -
                - - ~>
         | 
| 59 | 
            +
                - - "~>"
         | 
| 60 60 | 
             
                  - !ruby/object:Gem::Version
         | 
| 61 61 | 
             
                    version: 1.8.1
         | 
| 62 62 | 
             
              type: :development
         | 
| 63 63 | 
             
              prerelease: false
         | 
| 64 64 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 65 65 | 
             
                requirements:
         | 
| 66 | 
            -
                - - ~>
         | 
| 66 | 
            +
                - - "~>"
         | 
| 67 67 | 
             
                  - !ruby/object:Gem::Version
         | 
| 68 68 | 
             
                    version: 1.8.1
         | 
| 69 69 | 
             
            description: The gatling-rsync plugin runs on Mac and Linux and is far less CPU-intensive
         | 
| @@ -74,8 +74,8 @@ executables: [] | |
| 74 74 | 
             
            extensions: []
         | 
| 75 75 | 
             
            extra_rdoc_files: []
         | 
| 76 76 | 
             
            files:
         | 
| 77 | 
            -
            - .gitignore
         | 
| 78 | 
            -
            - .ruby-version
         | 
| 77 | 
            +
            - ".gitignore"
         | 
| 78 | 
            +
            - ".ruby-version"
         | 
| 79 79 | 
             
            - CHANGELOG.md
         | 
| 80 80 | 
             
            - Gemfile
         | 
| 81 81 | 
             
            - LICENSE
         | 
| @@ -104,17 +104,17 @@ require_paths: | |
| 104 104 | 
             
            - lib
         | 
| 105 105 | 
             
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 106 106 | 
             
              requirements:
         | 
| 107 | 
            -
              - -  | 
| 107 | 
            +
              - - ">="
         | 
| 108 108 | 
             
                - !ruby/object:Gem::Version
         | 
| 109 109 | 
             
                  version: '0'
         | 
| 110 110 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 111 111 | 
             
              requirements:
         | 
| 112 | 
            -
              - -  | 
| 112 | 
            +
              - - ">="
         | 
| 113 113 | 
             
                - !ruby/object:Gem::Version
         | 
| 114 | 
            -
                  version:  | 
| 114 | 
            +
                  version: '0'
         | 
| 115 115 | 
             
            requirements: []
         | 
| 116 116 | 
             
            rubyforge_project: 
         | 
| 117 | 
            -
            rubygems_version: 2. | 
| 117 | 
            +
            rubygems_version: 2.4.5
         | 
| 118 118 | 
             
            signing_key: 
         | 
| 119 119 | 
             
            specification_version: 4
         | 
| 120 120 | 
             
            summary: A lighter-weight Vagrant plugin for watching and rsyncing directories.
         |