bmc-tools 0.1
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 +7 -0
 - data/README.md +2 -0
 - data/Rakefile +18 -0
 - data/bin/dockerize +109 -0
 - data/bmc-tools.gemspec +28 -0
 - metadata +90 -0
 
    
        checksums.yaml
    ADDED
    
    | 
         @@ -0,0 +1,7 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            ---
         
     | 
| 
      
 2 
     | 
    
         
            +
            SHA1:
         
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 508f144fc6be415e5303f6be7eee4a8edd5a7582
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 028d6116c92f181dda903b6d373111eb69787454
         
     | 
| 
      
 5 
     | 
    
         
            +
            SHA512:
         
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 62b277ae93a897f74c35ff9298ef7fdb07a196505030091d0d1b2abf880f890d2891d9450cbe577eb7ed4075b1edfb3f534d10caa057720163cddd221213e29b
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 10bc2e6316e762131c2375cc96c4b5c476062c22dd4dae51104d1618aefe98b555221907edbff70dad6b800c59a3dd37890abd29d63a77c5d82de7d75aaa989d
         
     | 
    
        data/README.md
    ADDED
    
    
    
        data/Rakefile
    ADDED
    
    | 
         @@ -0,0 +1,18 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # encoding: utf-8
         
     | 
| 
      
 2 
     | 
    
         
            +
            require "bundler/gem_tasks"
         
     | 
| 
      
 3 
     | 
    
         
            +
            require "rubygems"
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            require "rspec/core/rake_task"
         
     | 
| 
      
 6 
     | 
    
         
            +
            RSpec::Core::RakeTask.new(:spec)
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            require "rubocop/rake_task"
         
     | 
| 
      
 9 
     | 
    
         
            +
            RuboCop::RakeTask.new(:rubocop) do |task|
         
     | 
| 
      
 10 
     | 
    
         
            +
              task.fail_on_error = false
         
     | 
| 
      
 11 
     | 
    
         
            +
            end
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            # Load my own tasks
         
     | 
| 
      
 14 
     | 
    
         
            +
            Dir.glob('lib/tasks/*.rake').each { |r| import r }
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
            # Run specs by default
         
     | 
| 
      
 17 
     | 
    
         
            +
            desc "Run all tests"
         
     | 
| 
      
 18 
     | 
    
         
            +
            task default: [:spec, :rubocop]
         
     | 
    
        data/bin/dockerize
    ADDED
    
    | 
         @@ -0,0 +1,109 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #!/usr/bin/env ruby
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            DOCKER_REPO = "bmconseil/dummy"
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            # Try to load external libs, helpers and constants
         
     | 
| 
      
 6 
     | 
    
         
            +
            begin
         
     | 
| 
      
 7 
     | 
    
         
            +
              require "rubygems"
         
     | 
| 
      
 8 
     | 
    
         
            +
              require "optparse"
         
     | 
| 
      
 9 
     | 
    
         
            +
              require 'tempfile'
         
     | 
| 
      
 10 
     | 
    
         
            +
            rescue LoadError => e
         
     | 
| 
      
 11 
     | 
    
         
            +
              raise "EXITING: some basic libs were not found (#{e.message})"
         
     | 
| 
      
 12 
     | 
    
         
            +
            end
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
            # Some helpers
         
     | 
| 
      
 16 
     | 
    
         
            +
            def git_check_tag tag
         
     | 
| 
      
 17 
     | 
    
         
            +
              system("git tag -l #{tag}")
         
     | 
| 
      
 18 
     | 
    
         
            +
            end
         
     | 
| 
      
 19 
     | 
    
         
            +
            def run_cmd command, title
         
     | 
| 
      
 20 
     | 
    
         
            +
              puts "* #{title}"
         
     | 
| 
      
 21 
     | 
    
         
            +
              puts command
         
     | 
| 
      
 22 
     | 
    
         
            +
              system command
         
     | 
| 
      
 23 
     | 
    
         
            +
              puts
         
     | 
| 
      
 24 
     | 
    
         
            +
            end
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
            # Handle configuration
         
     | 
| 
      
 28 
     | 
    
         
            +
            begin
         
     | 
| 
      
 29 
     | 
    
         
            +
              # Defaults
         
     | 
| 
      
 30 
     | 
    
         
            +
              opt_tag     = nil
         
     | 
| 
      
 31 
     | 
    
         
            +
              opt_latest  = false
         
     | 
| 
      
 32 
     | 
    
         
            +
              opt_push    = false
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
              # Parse options and check compliance
         
     | 
| 
      
 35 
     | 
    
         
            +
              parser = OptionParser.new do |opts|
         
     | 
| 
      
 36 
     | 
    
         
            +
                opts.banner = "Usage: #{File.basename $PROGRAM_NAME} [options] start|stop"
         
     | 
| 
      
 37 
     | 
    
         
            +
                opts.on("-t",   "--tag VERSION")                          { |value| opt_tag = value.to_s  }
         
     | 
| 
      
 38 
     | 
    
         
            +
                opts.on("-l",   "--latest", "Tag build with :latest")     { |value| opt_latest = true     }
         
     | 
| 
      
 39 
     | 
    
         
            +
                opts.on("-p",   "--push",   "Push the build(s)")          { |value| opt_push = true       }
         
     | 
| 
      
 40 
     | 
    
         
            +
                opts.on_tail("-h", "--help", "Show this message")  do
         
     | 
| 
      
 41 
     | 
    
         
            +
                  puts opts
         
     | 
| 
      
 42 
     | 
    
         
            +
                  exit
         
     | 
| 
      
 43 
     | 
    
         
            +
                end
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
              end
         
     | 
| 
      
 46 
     | 
    
         
            +
              parser.order!(ARGV)
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
            rescue OptionParser::InvalidOption => e
         
     | 
| 
      
 49 
     | 
    
         
            +
              abort "EXITING: InvalidOption: #{e.message}"
         
     | 
| 
      
 50 
     | 
    
         
            +
            rescue StandardError => e
         
     | 
| 
      
 51 
     | 
    
         
            +
              abort "EXITING: StandardError: #{e.message}"
         
     | 
| 
      
 52 
     | 
    
         
            +
            end
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
             
     | 
| 
      
 55 
     | 
    
         
            +
            # Check context
         
     | 
| 
      
 56 
     | 
    
         
            +
            unless opt_tag
         
     | 
| 
      
 57 
     | 
    
         
            +
              puts "EXITING: params: missing tag"
         
     | 
| 
      
 58 
     | 
    
         
            +
              exit 1
         
     | 
| 
      
 59 
     | 
    
         
            +
            end
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
      
 61 
     | 
    
         
            +
            # Check tag in git
         
     | 
| 
      
 62 
     | 
    
         
            +
            unless git_check_tag(opt_tag)
         
     | 
| 
      
 63 
     | 
    
         
            +
              puts "EXITING: tag [#{opt_tag}] not found in git"
         
     | 
| 
      
 64 
     | 
    
         
            +
              exit 1
         
     | 
| 
      
 65 
     | 
    
         
            +
            end
         
     | 
| 
      
 66 
     | 
    
         
            +
             
     | 
| 
      
 67 
     | 
    
         
            +
            # Prepare some context vars
         
     | 
| 
      
 68 
     | 
    
         
            +
            temp_archive    = "dockerize-archive-#{opt_tag}.tar"
         
     | 
| 
      
 69 
     | 
    
         
            +
            release_name    = "#{DOCKER_REPO}:#{opt_tag}"
         
     | 
| 
      
 70 
     | 
    
         
            +
            release_latest  = "#{DOCKER_REPO}:latest"
         
     | 
| 
      
 71 
     | 
    
         
            +
             
     | 
| 
      
 72 
     | 
    
         
            +
            # Prepare commands
         
     | 
| 
      
 73 
     | 
    
         
            +
            cmd_build       = "docker build -f Dockerfile --build-arg CODE_ARCHIVE=\"#{temp_archive}\" . -t \"#{release_name}\""
         
     | 
| 
      
 74 
     | 
    
         
            +
            cmd_tag         = "docker tag \"#{release_name}\" \"#{release_latest}\""
         
     | 
| 
      
 75 
     | 
    
         
            +
            opt_push        = "docker push \"#{release_name}\""
         
     | 
| 
      
 76 
     | 
    
         
            +
            opt_push_latest = "docker push \"#{release_latest}\""
         
     | 
| 
      
 77 
     | 
    
         
            +
             
     | 
| 
      
 78 
     | 
    
         
            +
            # Config summary
         
     | 
| 
      
 79 
     | 
    
         
            +
            puts "--- DOCKERIZE CONFIG"
         
     | 
| 
      
 80 
     | 
    
         
            +
            puts "Git tag            #{opt_tag}"
         
     | 
| 
      
 81 
     | 
    
         
            +
            puts "Use latest tag     #{opt_latest}"
         
     | 
| 
      
 82 
     | 
    
         
            +
            puts "Code archive       #{temp_archive}"
         
     | 
| 
      
 83 
     | 
    
         
            +
            puts
         
     | 
| 
      
 84 
     | 
    
         
            +
             
     | 
| 
      
 85 
     | 
    
         
            +
             
     | 
| 
      
 86 
     | 
    
         
            +
            # Checkout tag code in temp archive
         
     | 
| 
      
 87 
     | 
    
         
            +
            run_cmd(
         
     | 
| 
      
 88 
     | 
    
         
            +
              "Creating code archive",
         
     | 
| 
      
 89 
     | 
    
         
            +
              "git archive --format=tar -o \"#{temp_archive}\" --prefix=/ #{opt_tag}"
         
     | 
| 
      
 90 
     | 
    
         
            +
              )
         
     | 
| 
      
 91 
     | 
    
         
            +
            archive_size = File.size(temp_archive)
         
     | 
| 
      
 92 
     | 
    
         
            +
            puts "> archive size: #{archive_size}"
         
     | 
| 
      
 93 
     | 
    
         
            +
             
     | 
| 
      
 94 
     | 
    
         
            +
            # Build docker image from that archive
         
     | 
| 
      
 95 
     | 
    
         
            +
            run_cmd cmd_build, "Building docker image"
         
     | 
| 
      
 96 
     | 
    
         
            +
             
     | 
| 
      
 97 
     | 
    
         
            +
            # Tag latest if required
         
     | 
| 
      
 98 
     | 
    
         
            +
            if opt_latest
         
     | 
| 
      
 99 
     | 
    
         
            +
              run_cmd cmd_tag, "Updating tag [#{release_latest}] to point to [#{release_name}]"
         
     | 
| 
      
 100 
     | 
    
         
            +
              opt_push += " && #{opt_push_latest}" if opt_latest
         
     | 
| 
      
 101 
     | 
    
         
            +
            end
         
     | 
| 
      
 102 
     | 
    
         
            +
             
     | 
| 
      
 103 
     | 
    
         
            +
            # Push releases
         
     | 
| 
      
 104 
     | 
    
         
            +
            run_cmd opt_push, "Pushing releases" if opt_push
         
     | 
| 
      
 105 
     | 
    
         
            +
             
     | 
| 
      
 106 
     | 
    
         
            +
             
     | 
| 
      
 107 
     | 
    
         
            +
            # $?.exitstatus
         
     | 
| 
      
 108 
     | 
    
         
            +
            puts "* We're all set !"
         
     | 
| 
      
 109 
     | 
    
         
            +
            exit 0
         
     | 
    
        data/bmc-tools.gemspec
    ADDED
    
    | 
         @@ -0,0 +1,28 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # coding: utf-8
         
     | 
| 
      
 2 
     | 
    
         
            +
            Gem::Specification.new do |spec|
         
     | 
| 
      
 3 
     | 
    
         
            +
              # Project version
         
     | 
| 
      
 4 
     | 
    
         
            +
              spec.version                      = "0.1"
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
              # Project description
         
     | 
| 
      
 7 
     | 
    
         
            +
              spec.name                         = "bmc-tools"
         
     | 
| 
      
 8 
     | 
    
         
            +
              spec.authors                      = ["Bruno MEDICI"]
         
     | 
| 
      
 9 
     | 
    
         
            +
              spec.email                        = "opensource@bmconseil.com"
         
     | 
| 
      
 10 
     | 
    
         
            +
              spec.description                  = ""
         
     | 
| 
      
 11 
     | 
    
         
            +
              spec.summary                      = spec.description
         
     | 
| 
      
 12 
     | 
    
         
            +
              spec.homepage                     = "http://github.com/bmedici/bmc-tools"
         
     | 
| 
      
 13 
     | 
    
         
            +
              spec.licenses                     = ["MIT"]
         
     | 
| 
      
 14 
     | 
    
         
            +
              spec.date                         = Time.now.strftime("%Y-%m-%d")
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
              # List files and executables
         
     | 
| 
      
 17 
     | 
    
         
            +
              spec.files                        = `git ls-files -z`.split("\x0")
         
     | 
| 
      
 18 
     | 
    
         
            +
              spec.executables                  = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
         
     | 
| 
      
 19 
     | 
    
         
            +
              spec.require_paths                = ["lib"]
         
     | 
| 
      
 20 
     | 
    
         
            +
              spec.required_ruby_version        = ">= 2.2"
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
              # Development dependencies
         
     | 
| 
      
 23 
     | 
    
         
            +
              spec.add_development_dependency   "bundler", "~> 1.6"
         
     | 
| 
      
 24 
     | 
    
         
            +
              spec.add_development_dependency   "rake"
         
     | 
| 
      
 25 
     | 
    
         
            +
              spec.add_development_dependency   "rspec"
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
              # Runtime dependencies
         
     | 
| 
      
 28 
     | 
    
         
            +
            end
         
     | 
    
        metadata
    ADDED
    
    | 
         @@ -0,0 +1,90 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            --- !ruby/object:Gem::Specification
         
     | 
| 
      
 2 
     | 
    
         
            +
            name: bmc-tools
         
     | 
| 
      
 3 
     | 
    
         
            +
            version: !ruby/object:Gem::Version
         
     | 
| 
      
 4 
     | 
    
         
            +
              version: '0.1'
         
     | 
| 
      
 5 
     | 
    
         
            +
            platform: ruby
         
     | 
| 
      
 6 
     | 
    
         
            +
            authors:
         
     | 
| 
      
 7 
     | 
    
         
            +
            - Bruno MEDICI
         
     | 
| 
      
 8 
     | 
    
         
            +
            autorequire: 
         
     | 
| 
      
 9 
     | 
    
         
            +
            bindir: bin
         
     | 
| 
      
 10 
     | 
    
         
            +
            cert_chain: []
         
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2016-12-14 00:00:00.000000000 Z
         
     | 
| 
      
 12 
     | 
    
         
            +
            dependencies:
         
     | 
| 
      
 13 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 14 
     | 
    
         
            +
              name: bundler
         
     | 
| 
      
 15 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 16 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 17 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 18 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 19 
     | 
    
         
            +
                    version: '1.6'
         
     | 
| 
      
 20 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 21 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 22 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 23 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 24 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 25 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 26 
     | 
    
         
            +
                    version: '1.6'
         
     | 
| 
      
 27 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 28 
     | 
    
         
            +
              name: rake
         
     | 
| 
      
 29 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 30 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 31 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 32 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 33 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 34 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 35 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 36 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 37 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 38 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 39 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 40 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 41 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 42 
     | 
    
         
            +
              name: rspec
         
     | 
| 
      
 43 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 44 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 45 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 46 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 47 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 48 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 49 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 50 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 51 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 52 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 53 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 54 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 55 
     | 
    
         
            +
            description: ''
         
     | 
| 
      
 56 
     | 
    
         
            +
            email: opensource@bmconseil.com
         
     | 
| 
      
 57 
     | 
    
         
            +
            executables:
         
     | 
| 
      
 58 
     | 
    
         
            +
            - dockerize
         
     | 
| 
      
 59 
     | 
    
         
            +
            extensions: []
         
     | 
| 
      
 60 
     | 
    
         
            +
            extra_rdoc_files: []
         
     | 
| 
      
 61 
     | 
    
         
            +
            files:
         
     | 
| 
      
 62 
     | 
    
         
            +
            - README.md
         
     | 
| 
      
 63 
     | 
    
         
            +
            - Rakefile
         
     | 
| 
      
 64 
     | 
    
         
            +
            - bin/dockerize
         
     | 
| 
      
 65 
     | 
    
         
            +
            - bmc-tools.gemspec
         
     | 
| 
      
 66 
     | 
    
         
            +
            homepage: http://github.com/bmedici/bmc-tools
         
     | 
| 
      
 67 
     | 
    
         
            +
            licenses:
         
     | 
| 
      
 68 
     | 
    
         
            +
            - MIT
         
     | 
| 
      
 69 
     | 
    
         
            +
            metadata: {}
         
     | 
| 
      
 70 
     | 
    
         
            +
            post_install_message: 
         
     | 
| 
      
 71 
     | 
    
         
            +
            rdoc_options: []
         
     | 
| 
      
 72 
     | 
    
         
            +
            require_paths:
         
     | 
| 
      
 73 
     | 
    
         
            +
            - lib
         
     | 
| 
      
 74 
     | 
    
         
            +
            required_ruby_version: !ruby/object:Gem::Requirement
         
     | 
| 
      
 75 
     | 
    
         
            +
              requirements:
         
     | 
| 
      
 76 
     | 
    
         
            +
              - - ">="
         
     | 
| 
      
 77 
     | 
    
         
            +
                - !ruby/object:Gem::Version
         
     | 
| 
      
 78 
     | 
    
         
            +
                  version: '2.2'
         
     | 
| 
      
 79 
     | 
    
         
            +
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
      
 80 
     | 
    
         
            +
              requirements:
         
     | 
| 
      
 81 
     | 
    
         
            +
              - - ">="
         
     | 
| 
      
 82 
     | 
    
         
            +
                - !ruby/object:Gem::Version
         
     | 
| 
      
 83 
     | 
    
         
            +
                  version: '0'
         
     | 
| 
      
 84 
     | 
    
         
            +
            requirements: []
         
     | 
| 
      
 85 
     | 
    
         
            +
            rubyforge_project: 
         
     | 
| 
      
 86 
     | 
    
         
            +
            rubygems_version: 2.5.1
         
     | 
| 
      
 87 
     | 
    
         
            +
            signing_key: 
         
     | 
| 
      
 88 
     | 
    
         
            +
            specification_version: 4
         
     | 
| 
      
 89 
     | 
    
         
            +
            summary: ''
         
     | 
| 
      
 90 
     | 
    
         
            +
            test_files: []
         
     |