opswalrus 1.0.70 → 1.0.73
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/Gemfile.lock +1 -1
- data/lib/opswalrus/bootstrap.sh +8 -15
- data/lib/opswalrus/invocation.rb +9 -0
- data/lib/opswalrus/ops_file_script.rb +0 -76
- data/lib/opswalrus/version.rb +1 -1
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: ad2d52c1a9f3f3f041ca0768f62f91fa85c84470de6442e90139aff6cae3944c
         | 
| 4 | 
            +
              data.tar.gz: 9d05add771cd5f6f828bfd051710cef71525a1a562cfb47073993b60b14e5302
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 15c43c38639432b2c684f9df85545e53bedaaa6c9051d929bbed266bfdce071c0dd2e68d40c643f07996f967714135217eb24029557dcbd7cbdab814c3366663
         | 
| 7 | 
            +
              data.tar.gz: 4eef5d3a3f8c6982308e43ffa1cea08de1e5b141200492c741c4b2988f8d7437efb04b44e2be64d6bd866804da9a7c552bbe0f868945e10f9d96acb2e359d478
         | 
    
        data/Gemfile.lock
    CHANGED
    
    
    
        data/lib/opswalrus/bootstrap.sh
    CHANGED
    
    | @@ -54,9 +54,8 @@ if echo $OS | grep -q 'ubuntu'; then | |
| 54 54 | 
             
              sudo DEBIAN_FRONTEND=noninteractive apt-get install -yq build-essential procps curl file git
         | 
| 55 55 |  | 
| 56 56 | 
             
              # restart services that need it
         | 
| 57 | 
            -
              sudo needrestart -q - | 
| 58 | 
            -
              sudo needrestart -q -r a
         | 
| 59 | 
            -
              sudo needrestart -q -r a
         | 
| 57 | 
            +
              (sudo needrestart -b | grep -q 'NEEDRESTART-KSTA: 1') || (echo 'Reboot needed. Exiting.'; exit 1;)
         | 
| 58 | 
            +
              # sudo needrestart -q -r a
         | 
| 60 59 | 
             
            elif echo $OS | grep -q 'fedora'; then
         | 
| 61 60 | 
             
              sudo dnf groupinstall -y 'Development Tools'
         | 
| 62 61 | 
             
              sudo dnf -yq install procps-ng curl file git
         | 
| @@ -104,10 +103,8 @@ if echo $OS | grep -q 'ubuntu'; then | |
| 104 103 | 
             
              # update package list
         | 
| 105 104 | 
             
              sudo apt update -qy
         | 
| 106 105 |  | 
| 107 | 
            -
               | 
| 108 | 
            -
             | 
| 109 | 
            -
                exit 1
         | 
| 110 | 
            -
              fi
         | 
| 106 | 
            +
              # reboot if needed
         | 
| 107 | 
            +
              (sudo needrestart -b | grep -q 'NEEDRESTART-KSTA: 1') || (echo 'Reboot needed. Exiting.'; exit 1;)
         | 
| 111 108 |  | 
| 112 109 | 
             
              # install ruby dependencies
         | 
| 113 110 | 
             
              # see https://github.com/rbenv/ruby-build/wiki#suggested-build-environment
         | 
| @@ -117,10 +114,8 @@ if echo $OS | grep -q 'ubuntu'; then | |
| 117 114 | 
             
              fi
         | 
| 118 115 | 
             
              sudo DEBIAN_FRONTEND=noninteractive apt-get install -yq autoconf patch build-essential rustc libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libgmp-dev libncurses5-dev libffi-dev libgdbm-dev libdb-dev uuid-dev
         | 
| 119 116 |  | 
| 120 | 
            -
              #  | 
| 121 | 
            -
              sudo needrestart -q - | 
| 122 | 
            -
              sudo needrestart -q -r a
         | 
| 123 | 
            -
              sudo needrestart -q -r a
         | 
| 117 | 
            +
              # reboot if needed
         | 
| 118 | 
            +
              (sudo needrestart -b | grep -q 'NEEDRESTART-KSTA: 1') || (echo 'Reboot needed. Exiting.'; exit 1;)
         | 
| 124 119 | 
             
            elif echo $OS | grep -q 'fedora'; then
         | 
| 125 120 | 
             
              # from https://github.com/rbenv/ruby-build/wiki#suggested-build-environment
         | 
| 126 121 | 
             
              sudo yum install -y gcc patch bzip2 openssl-devel libyaml-devel libffi-devel readline-devel zlib-devel gdbm-devel ncurses-devel
         | 
| @@ -145,10 +140,8 @@ if echo $OS | grep -q 'ubuntu'; then | |
| 145 140 | 
             
              # update package list
         | 
| 146 141 | 
             
              sudo apt update -qy
         | 
| 147 142 |  | 
| 148 | 
            -
               | 
| 149 | 
            -
             | 
| 150 | 
            -
                exit 1
         | 
| 151 | 
            -
              fi
         | 
| 143 | 
            +
              # reboot if needed
         | 
| 144 | 
            +
              (sudo needrestart -b | grep -q 'NEEDRESTART-KSTA: 1') || (echo 'Reboot needed. Exiting.'; exit 1;)
         | 
| 152 145 |  | 
| 153 146 | 
             
              sudo DEBIAN_FRONTEND=noninteractive apt install -yq age
         | 
| 154 147 |  | 
    
        data/lib/opswalrus/invocation.rb
    CHANGED
    
    | @@ -23,6 +23,15 @@ module OpsWalrus | |
| 23 23 | 
             
                def _non_bang_method(name)
         | 
| 24 24 | 
             
                  name.to_s.sub(/!$/, '')
         | 
| 25 25 | 
             
                end
         | 
| 26 | 
            +
             | 
| 27 | 
            +
                # define methods that exist on kernel and forward them to the method_missing call because
         | 
| 28 | 
            +
                # we want method_missing to handle the calls that may result from navigating through a package's
         | 
| 29 | 
            +
                # directory structure (e.g. we include clone here to handle core.git.clone which conflicts with Kernel#clone)
         | 
| 30 | 
            +
                [:clone].each do |symbol_name|
         | 
| 31 | 
            +
                  define_method(symbol_name) do |*args, **kwargs, &block|
         | 
| 32 | 
            +
                    method_missing(symbol_name, *args, **kwargs, &block)
         | 
| 33 | 
            +
                  end
         | 
| 34 | 
            +
                end
         | 
| 26 35 | 
             
              end
         | 
| 27 36 |  | 
| 28 37 | 
             
              class RemoteImportInvocationContext < ImportInvocationContext
         | 
| @@ -5,82 +5,6 @@ require_relative 'ops_file_script_dsl' | |
| 5 5 |  | 
| 6 6 | 
             
            module OpsWalrus
         | 
| 7 7 |  | 
| 8 | 
            -
              # class ArrayOrHashNavigationProxy
         | 
| 9 | 
            -
              #   extend Forwardable
         | 
| 10 | 
            -
             | 
| 11 | 
            -
              #   def initialize(array_or_hash)
         | 
| 12 | 
            -
              #     @obj = array_or_hash
         | 
| 13 | 
            -
              #   end
         | 
| 14 | 
            -
             | 
| 15 | 
            -
              #   def_delegators :@obj, :[], :to_s, :inspect, :hash, :===, :eql?, :kind_of?, :is_a?, :instance_of?, :respond_to?, :<=>
         | 
| 16 | 
            -
             | 
| 17 | 
            -
              #   # def [](index, *args, **kwargs, &block)
         | 
| 18 | 
            -
              #   #   @obj.method(:[]).call(index, *args, **kwargs, &block)
         | 
| 19 | 
            -
              #   # end
         | 
| 20 | 
            -
              #   def respond_to_missing?(method, *)
         | 
| 21 | 
            -
              #     @obj.is_a?(Hash) && @obj.respond_to?(method)
         | 
| 22 | 
            -
              #   end
         | 
| 23 | 
            -
              #   def method_missing(name, *args, **kwargs, &block)
         | 
| 24 | 
            -
              #     case @obj
         | 
| 25 | 
            -
              #     when Array
         | 
| 26 | 
            -
              #       @obj.method(name).call(*args, **kwargs, &block)
         | 
| 27 | 
            -
              #     when Hash
         | 
| 28 | 
            -
              #       if @obj.respond_to?(name)
         | 
| 29 | 
            -
              #         @obj.method(name).call(*args, **kwargs, &block)
         | 
| 30 | 
            -
              #       else
         | 
| 31 | 
            -
              #         value = self[name.to_s]
         | 
| 32 | 
            -
              #         case value
         | 
| 33 | 
            -
              #         when Array, Hash
         | 
| 34 | 
            -
              #           ArrayOrHashNavigationProxy.new(value)
         | 
| 35 | 
            -
              #         else
         | 
| 36 | 
            -
              #           value
         | 
| 37 | 
            -
              #         end
         | 
| 38 | 
            -
              #       end
         | 
| 39 | 
            -
              #     end
         | 
| 40 | 
            -
              #   end
         | 
| 41 | 
            -
              # end
         | 
| 42 | 
            -
             | 
| 43 | 
            -
              # class InvocationParams
         | 
| 44 | 
            -
              #   # @params : Hash
         | 
| 45 | 
            -
             | 
| 46 | 
            -
              #   # params : Hash | ArrayOrHashNavigationProxy
         | 
| 47 | 
            -
              #   def initialize(hashlike_params)
         | 
| 48 | 
            -
              #     # this doesn't seem to make any difference
         | 
| 49 | 
            -
              #     @params = hashlike_params.to_h
         | 
| 50 | 
            -
              #     # @params = hashlike_params
         | 
| 51 | 
            -
              #   end
         | 
| 52 | 
            -
             | 
| 53 | 
            -
              #   def [](key)
         | 
| 54 | 
            -
              #     @params[key]
         | 
| 55 | 
            -
              #   end
         | 
| 56 | 
            -
             | 
| 57 | 
            -
              #   def dig(*keys, default: nil)
         | 
| 58 | 
            -
              #     # keys = keys.map {|key| key.is_a?(Integer) ? key : key.to_s }
         | 
| 59 | 
            -
              #     @params.dig(*keys) || default
         | 
| 60 | 
            -
              #   end
         | 
| 61 | 
            -
             | 
| 62 | 
            -
              #   def method_missing(name, *args, **kwargs, &block)
         | 
| 63 | 
            -
              #     if @params.respond_to?(name)
         | 
| 64 | 
            -
              #       @params.method(name).call(*args, **kwargs, &block)
         | 
| 65 | 
            -
              #     else
         | 
| 66 | 
            -
              #       value = self[name]
         | 
| 67 | 
            -
              #       case value
         | 
| 68 | 
            -
              #       when Array, Hash
         | 
| 69 | 
            -
              #         ArrayOrHashNavigationProxy.new(value)
         | 
| 70 | 
            -
              #       else
         | 
| 71 | 
            -
              #         value
         | 
| 72 | 
            -
              #       end
         | 
| 73 | 
            -
              #     end
         | 
| 74 | 
            -
              #   end
         | 
| 75 | 
            -
              # end
         | 
| 76 | 
            -
             | 
| 77 | 
            -
              # class EnvParams < InvocationParams
         | 
| 78 | 
            -
              #   # params : Hash | ArrayOrHashNavigationProxy
         | 
| 79 | 
            -
              #   def initialize(hashlike_params = ENV)
         | 
| 80 | 
            -
              #     super(hashlike_params)
         | 
| 81 | 
            -
              #   end
         | 
| 82 | 
            -
              # end
         | 
| 83 | 
            -
             | 
| 84 8 | 
             
              class OpsFileScript
         | 
| 85 9 |  | 
| 86 10 | 
             
                def self.define_for(ops_file, ruby_script)
         | 
    
        data/lib/opswalrus/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: opswalrus
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1.0. | 
| 4 | 
            +
              version: 1.0.73
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - David Ellis
         | 
| 8 8 | 
             
            autorequire:
         | 
| 9 9 | 
             
            bindir: exe
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2023-10- | 
| 11 | 
            +
            date: 2023-10-28 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: activesupport
         |