u3d 1.0.2 → 1.0.3
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/.github_changelog_generator +1 -1
- data/.gitignore +3 -0
- data/CHANGELOG.md +25 -0
- data/Gemfile.lock +1 -1
- data/Rakefile +112 -0
- data/lib/u3d.rb +1 -1
- data/lib/u3d/installer.rb +3 -2
- data/lib/u3d/log_analyzer.rb +2 -1
- data/lib/u3d/unity_runner.rb +2 -5
- data/lib/u3d/utils.rb +4 -2
- data/lib/u3d/version.rb +1 -1
- data/lib/u3d_core/core_ext/string.rb +35 -0
- data/lib/u3d_core/credentials.rb +10 -6
- metadata +3 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: c156945d41aa0c5753f61054c8618d6d706a0fb5
         | 
| 4 | 
            +
              data.tar.gz: fa35a0de169dc91df2fa4cc3ada92d1304107942
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 1c9b94cf16b94a61101755148c5da1413e41ed0c2091cf19af09bba9567131533e04f7d06df22f38c7e3ce35942b833f8a16e586cddcb91db8f58329d23e2432
         | 
| 7 | 
            +
              data.tar.gz: b5cdd481bc2d15091aad3caa612ba3fc9682923c246bb328be2ca363370e53a26615e04b77721cf00238bb77a3ee15b426b1b161654103e3bf2ae47272a379c6
         | 
    
        data/.github_changelog_generator
    CHANGED
    
    
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -1,5 +1,30 @@ | |
| 1 1 | 
             
            # Change Log
         | 
| 2 2 |  | 
| 3 | 
            +
            ## [v1.0.3](https://github.com/DragonBox/u3d/tree/v1.0.3) (2017-09-11)
         | 
| 4 | 
            +
            [Full Changelog](https://github.com/DragonBox/u3d/compare/v1.0.2...v1.0.3)
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            **Implemented enhancements:**
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            - u3d/internal: create a argescape cross platform method [\#132](https://github.com/DragonBox/u3d/issues/132)
         | 
| 9 | 
            +
            - u3d/prettifyer should fail with contextual information to ease improvement [\#128](https://github.com/DragonBox/u3d/issues/128)
         | 
| 10 | 
            +
            - u3d: accept password-less sudo [\#126](https://github.com/DragonBox/u3d/issues/126)
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            **Fixed bugs:**
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            - u3d run: -logFile /dev/stdout causes crashes on Linux [\#43](https://github.com/DragonBox/u3d/issues/43)
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            **Closed issues:**
         | 
| 17 | 
            +
             | 
| 18 | 
            +
            - Create a full circleci mac/linux example [\#15](https://github.com/DragonBox/u3d/issues/15)
         | 
| 19 | 
            +
             | 
| 20 | 
            +
            **Merged pull requests:**
         | 
| 21 | 
            +
             | 
| 22 | 
            +
            - Automate bump & changelog tasks [\#135](https://github.com/DragonBox/u3d/pull/135) ([lacostej](https://github.com/lacostej))
         | 
| 23 | 
            +
            - u3d/prettifyer: fail with contextual information \(Fixes \#128\) [\#134](https://github.com/DragonBox/u3d/pull/134) ([lacostej](https://github.com/lacostej))
         | 
| 24 | 
            +
            - u3d/internal: introduce a argescape string function \(Fixes \#132\) [\#133](https://github.com/DragonBox/u3d/pull/133) ([lacostej](https://github.com/lacostej))
         | 
| 25 | 
            +
            - u3d/credentials support empty passwords for passwordless sudo \(Fixes \#128\) [\#130](https://github.com/DragonBox/u3d/pull/130) ([lacostej](https://github.com/lacostej))
         | 
| 26 | 
            +
            - Download file now prints progress also in non interactive mode \(only in verbose\) [\#129](https://github.com/DragonBox/u3d/pull/129) ([lacostej](https://github.com/lacostej))
         | 
| 27 | 
            +
             | 
| 3 28 | 
             
            ## [v1.0.2](https://github.com/DragonBox/u3d/tree/v1.0.2) (2017-09-05)
         | 
| 4 29 | 
             
            [Full Changelog](https://github.com/DragonBox/u3d/compare/v1.0.1...v1.0.2)
         | 
| 5 30 |  | 
    
        data/Gemfile.lock
    CHANGED
    
    
    
        data/Rakefile
    CHANGED
    
    | @@ -23,6 +23,9 @@ | |
| 23 23 | 
             
            require "bundler/gem_tasks"
         | 
| 24 24 | 
             
            require "rspec/core/rake_task"
         | 
| 25 25 | 
             
            require 'rubocop/rake_task'
         | 
| 26 | 
            +
            require 'u3d'
         | 
| 27 | 
            +
            UI = U3dCore::UI
         | 
| 28 | 
            +
             | 
| 26 29 | 
             
            # doesn't yet support dot file
         | 
| 27 30 | 
             
            # https://github.com/skywinder/github-changelog-generator/issues/473
         | 
| 28 31 | 
             
            # require 'github_changelog_generator/task'
         | 
| @@ -30,6 +33,115 @@ require 'rubocop/rake_task' | |
| 30 33 | 
             
            RSpec::Core::RakeTask.new(:spec)
         | 
| 31 34 | 
             
            RuboCop::RakeTask.new
         | 
| 32 35 |  | 
| 36 | 
            +
            class GithubChangelogGenerator
         | 
| 37 | 
            +
              PATH = '.github_changelog_generator'.freeze
         | 
| 38 | 
            +
              class << self
         | 
| 39 | 
            +
                def future_release
         | 
| 40 | 
            +
                  s = File.read(PATH)
         | 
| 41 | 
            +
                  s.split("\n").each do |line|
         | 
| 42 | 
            +
                    m = line.match(/future-release=v(.*)/)
         | 
| 43 | 
            +
                    return m[1] if m
         | 
| 44 | 
            +
                  end
         | 
| 45 | 
            +
                  raise "Couldn't find future-release in #{PATH}"
         | 
| 46 | 
            +
                end
         | 
| 47 | 
            +
             | 
| 48 | 
            +
                def future_release=(nextv)
         | 
| 49 | 
            +
                  s = File.read(PATH)
         | 
| 50 | 
            +
                  lines = s.split("\n").map do |line|
         | 
| 51 | 
            +
                    m = line.match(/future-release=v(.*)/)
         | 
| 52 | 
            +
                    if m
         | 
| 53 | 
            +
                      "future-release=v#{nextv}"
         | 
| 54 | 
            +
                    else
         | 
| 55 | 
            +
                      line
         | 
| 56 | 
            +
                    end
         | 
| 57 | 
            +
                  end
         | 
| 58 | 
            +
                  File.write(PATH, lines.join("\n") + "\n")
         | 
| 59 | 
            +
                end
         | 
| 60 | 
            +
              end
         | 
| 61 | 
            +
            end
         | 
| 62 | 
            +
             | 
| 63 | 
            +
            class U3dCode
         | 
| 64 | 
            +
              PATH = 'lib/u3d/version.rb'.freeze
         | 
| 65 | 
            +
              class << self
         | 
| 66 | 
            +
                def version=(version)
         | 
| 67 | 
            +
                  s = File.read(PATH)
         | 
| 68 | 
            +
                  lines = s.split("\n").map do |line|
         | 
| 69 | 
            +
                    m = line.match(/(.*VERSION = ').*('.freeze.*)/)
         | 
| 70 | 
            +
                    if m
         | 
| 71 | 
            +
                      "#{m[1]}#{version}#{m[2]}"
         | 
| 72 | 
            +
                    else
         | 
| 73 | 
            +
                      line
         | 
| 74 | 
            +
                    end
         | 
| 75 | 
            +
                  end
         | 
| 76 | 
            +
                  File.write(PATH, lines.join("\n") + "\n")
         | 
| 77 | 
            +
                end
         | 
| 78 | 
            +
              end
         | 
| 79 | 
            +
            end
         | 
| 80 | 
            +
             | 
| 81 | 
            +
            def run_command(command, error_message = nil)
         | 
| 82 | 
            +
              output = `#{command}`
         | 
| 83 | 
            +
              unless $CHILD_STATUS.success?
         | 
| 84 | 
            +
                error_message = "Failed to run command '#{command}'" if error_message.nil?
         | 
| 85 | 
            +
                UI.user_error!(error_message)
         | 
| 86 | 
            +
              end
         | 
| 87 | 
            +
              output
         | 
| 88 | 
            +
            end
         | 
| 89 | 
            +
             | 
| 90 | 
            +
            task :ensure_git_clean do
         | 
| 91 | 
            +
              branch = run_command('git rev-parse --abbrev-ref HEAD', "Couldn't get current git branch").strip
         | 
| 92 | 
            +
              UI.user_error!("You are not on 'master' but on '#{branch}'") unless branch == "master"
         | 
| 93 | 
            +
              output = run_command('git status --porcelain', "Couldn't get git status")
         | 
| 94 | 
            +
              UI.user_error!("git status not clean:\n#{output}") unless output == ""
         | 
| 95 | 
            +
            end
         | 
| 96 | 
            +
             | 
| 97 | 
            +
            # ensure ready to prepare a PR
         | 
| 98 | 
            +
            task :prepare_git_pr, [:pr_branch] do |_t, args|
         | 
| 99 | 
            +
              pr_branch = args['pr_branch']
         | 
| 100 | 
            +
              raise "Missing pr_branch argument" unless pr_branch
         | 
| 101 | 
            +
              UI.user_error! "Prepare git PR stopped by user" unless UI.confirm("Creating PR branch #{pr_branch}")
         | 
| 102 | 
            +
              run_command("git checkout -b #{pr_branch}")
         | 
| 103 | 
            +
            end
         | 
| 104 | 
            +
             | 
| 105 | 
            +
            task pre_release: 'ensure_git_clean' do
         | 
| 106 | 
            +
              require 'u3d/version'
         | 
| 107 | 
            +
              nextversion = U3d::VERSION
         | 
| 108 | 
            +
             | 
| 109 | 
            +
              # check not already released
         | 
| 110 | 
            +
              output = run_command("git tag -l v#{nextversion}").strip
         | 
| 111 | 
            +
              UI.user_error! "Version '#{nextversion}' already released. Run 'rake bump'" unless output == ''
         | 
| 112 | 
            +
             | 
| 113 | 
            +
              gh_future_release = GithubChangelogGenerator.future_release
         | 
| 114 | 
            +
              UI.user_error! "GithubChangelogGenerator version #{gh_future_release} != #{nextversion}" unless gh_future_release == nextversion
         | 
| 115 | 
            +
             | 
| 116 | 
            +
              pr_branch = "release_#{nextversion}"
         | 
| 117 | 
            +
              Rake::Task["prepare_git_pr"].invoke(pr_branch)
         | 
| 118 | 
            +
             | 
| 119 | 
            +
              Rake::Task["changelog"].invoke
         | 
| 120 | 
            +
             | 
| 121 | 
            +
              sh('git diff')
         | 
| 122 | 
            +
              UI.user_error! "Pre release stopped by user." unless UI.confirm("CHANGELOG PR for version #{nextversion}. Confirm?")
         | 
| 123 | 
            +
             | 
| 124 | 
            +
              msg = "Preparing release for #{nextversion}"
         | 
| 125 | 
            +
              sh 'git add CHANGELOG.md'
         | 
| 126 | 
            +
              sh "git commit -m '#{msg}'"
         | 
| 127 | 
            +
              sh "git push lacostej" # FIXME: hardcoded
         | 
| 128 | 
            +
              # FIXME check hub present
         | 
| 129 | 
            +
              sh "hub pull-request -m '#{msg}' -l nochangelog"
         | 
| 130 | 
            +
              sh 'git checkout master'
         | 
| 131 | 
            +
              sh "git branch -D #{pr_branch}"
         | 
| 132 | 
            +
            end
         | 
| 133 | 
            +
             | 
| 134 | 
            +
            task bump: 'ensure_git_clean' do
         | 
| 135 | 
            +
              nextversion = UI.input "Next version will be:"
         | 
| 136 | 
            +
              UI.user_error! "Bump version stopped by user" unless UI.confirm("Next version will be #{nextversion}. Confirm?")
         | 
| 137 | 
            +
              U3dCode.version = nextversion
         | 
| 138 | 
            +
              GithubChangelogGenerator.future_release = nextversion
         | 
| 139 | 
            +
              sh 'rspec'
         | 
| 140 | 
            +
              sh 'git add .github_changelog_generator lib/u3d/version.rb Gemfile.lock'
         | 
| 141 | 
            +
              sh "git commit -m 'Bump version to #{nextversion}'"
         | 
| 142 | 
            +
              sh 'git push'
         | 
| 143 | 
            +
            end
         | 
| 144 | 
            +
             | 
| 33 145 | 
             
            task :changelog do
         | 
| 34 146 | 
             
              puts "Updating changelog #{ENV['CHANGELOG_GITHUB_TOKEN']}"
         | 
| 35 147 | 
             
              sh "github_changelog_generator" if ENV['CHANGELOG_GITHUB_TOKEN']
         | 
    
        data/lib/u3d.rb
    CHANGED
    
    
    
        data/lib/u3d/installer.rb
    CHANGED
    
    | @@ -21,6 +21,7 @@ | |
| 21 21 | 
             
            ## --- END LICENSE BLOCK ---
         | 
| 22 22 |  | 
| 23 23 | 
             
            require 'u3d/utils'
         | 
| 24 | 
            +
            require 'u3d_core/core_ext/string'
         | 
| 24 25 | 
             
            require 'u3d/installation'
         | 
| 25 26 | 
             
            require 'fileutils'
         | 
| 26 27 | 
             
            require 'file-tail'
         | 
| @@ -229,8 +230,8 @@ module U3d | |
| 229 230 |  | 
| 230 231 | 
             
                  source_path.tr!('/', '\\')
         | 
| 231 232 | 
             
                  new_path.tr!('/', '\\')
         | 
| 232 | 
            -
                  source_path =  | 
| 233 | 
            -
                  new_path =  | 
| 233 | 
            +
                  source_path = source_path.argescape
         | 
| 234 | 
            +
                  new_path = new_path.argescape
         | 
| 234 235 |  | 
| 235 236 | 
             
                  command = "move #{source_path} #{new_path}"
         | 
| 236 237 |  | 
    
        data/lib/u3d/log_analyzer.rb
    CHANGED
    
    | @@ -197,7 +197,8 @@ module U3d | |
| 197 197 | 
             
                  if @active_rule
         | 
| 198 198 | 
             
                    # Active rule should be finished
         | 
| 199 199 | 
             
                    # If it is still active during phase change, it means that something went wrong
         | 
| 200 | 
            -
                     | 
| 200 | 
            +
                    context = @lines_memory.map { |l| "\n> #{l}" }.join('')
         | 
| 201 | 
            +
                    UI.error("[#{@active_phase}] Could not finish active rule '#{@active_rule}'. Aborting it. Context:#{context}")
         | 
| 201 202 | 
             
                    @active_rule = nil
         | 
| 202 203 | 
             
                  end
         | 
| 203 204 | 
             
                  UI.verbose("--- Ending #{@active_phase} phase ---")
         | 
    
        data/lib/u3d/unity_runner.rb
    CHANGED
    
    | @@ -21,6 +21,7 @@ | |
| 21 21 | 
             
            ## --- END LICENSE BLOCK ---
         | 
| 22 22 |  | 
| 23 23 | 
             
            require 'u3d/utils'
         | 
| 24 | 
            +
            require 'u3d_core/core_ext/string'
         | 
| 24 25 | 
             
            require 'fileutils'
         | 
| 25 26 | 
             
            require 'file-tail'
         | 
| 26 27 |  | 
| @@ -49,11 +50,7 @@ module U3d | |
| 49 50 |  | 
| 50 51 | 
             
                  begin
         | 
| 51 52 | 
             
                    args.unshift(installation.exe_path)
         | 
| 52 | 
            -
                     | 
| 53 | 
            -
                      args.map! { |a| a =~ / / ? "\"#{a}\"" : a }
         | 
| 54 | 
            -
                    else
         | 
| 55 | 
            -
                      args.map!(&:shellescape)
         | 
| 56 | 
            -
                    end
         | 
| 53 | 
            +
                    args.map!(&:argescape)
         | 
| 57 54 |  | 
| 58 55 | 
             
                    U3dCore::CommandExecutor.execute_command(command: args, output_callback: output_callback)
         | 
| 59 56 | 
             
                  ensure
         | 
    
        data/lib/u3d/utils.rb
    CHANGED
    
    | @@ -64,6 +64,7 @@ module U3d | |
| 64 64 | 
             
                      uri = URI(url)
         | 
| 65 65 | 
             
                      current = 0
         | 
| 66 66 | 
             
                      last_print_update = 0
         | 
| 67 | 
            +
                      print_progress = UI.interactive? || U3dCore::Globals.verbose?
         | 
| 67 68 | 
             
                      Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == 'https') do |http|
         | 
| 68 69 | 
             
                        request = Net::HTTP::Get.new uri
         | 
| 69 70 | 
             
                        http.request request do |response|
         | 
| @@ -79,7 +80,7 @@ module U3d | |
| 79 80 | 
             
                            # wait for Net::HTTP buffer on slow networks
         | 
| 80 81 | 
             
                            # FIXME revisits, this slows down download on fast network
         | 
| 81 82 | 
             
                            # sleep 0.08 # adjust to reduce CPU
         | 
| 82 | 
            -
                            next unless  | 
| 83 | 
            +
                            next unless print_progress
         | 
| 83 84 | 
             
                            next unless Time.now.to_f - last_print_update > 0.5
         | 
| 84 85 | 
             
                            last_print_update = Time.now.to_f
         | 
| 85 86 | 
             
                            if size
         | 
| @@ -87,10 +88,11 @@ module U3d | |
| 87 88 | 
             
                            else
         | 
| 88 89 | 
             
                              Utils.print_progress_nosize(current, started_at)
         | 
| 89 90 | 
             
                            end
         | 
| 91 | 
            +
                            print "\n" unless UI.interactive?
         | 
| 90 92 | 
             
                          end
         | 
| 91 93 | 
             
                        end
         | 
| 92 94 | 
             
                      end
         | 
| 93 | 
            -
                      print "\n" if  | 
| 95 | 
            +
                      print "\n" if print_progress
         | 
| 94 96 | 
             
                    end
         | 
| 95 97 | 
             
                  end
         | 
| 96 98 |  | 
    
        data/lib/u3d/version.rb
    CHANGED
    
    | @@ -21,7 +21,7 @@ | |
| 21 21 | 
             
            ## --- END LICENSE BLOCK ---
         | 
| 22 22 |  | 
| 23 23 | 
             
            module U3d
         | 
| 24 | 
            -
              VERSION = '1.0. | 
| 24 | 
            +
              VERSION = '1.0.3'.freeze
         | 
| 25 25 | 
             
              DESCRIPTION = 'Provides numerous tools for installing, managing and running the Unity3D game engine from command line.'.freeze
         | 
| 26 26 | 
             
              UNITY_VERSIONS_NOTE = "Unity3d uses the following version formatting: 0.0.0x0. The \'x\' can takes different values:\n"\
         | 
| 27 27 | 
             
              "\t. 'f' are the main release candidates for Unity3d\n"\
         | 
| @@ -0,0 +1,35 @@ | |
| 1 | 
            +
            ## --- BEGIN LICENSE BLOCK ---
         | 
| 2 | 
            +
            # Copyright (c) 2016-present WeWantToKnow AS
         | 
| 3 | 
            +
            #
         | 
| 4 | 
            +
            # Permission is hereby granted, free of charge, to any person obtaining a copy
         | 
| 5 | 
            +
            # of this software and associated documentation files (the "Software"), to deal
         | 
| 6 | 
            +
            # in the Software without restriction, including without limitation the rights
         | 
| 7 | 
            +
            # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
         | 
| 8 | 
            +
            # copies of the Software, and to permit persons to whom the Software is
         | 
| 9 | 
            +
            # furnished to do so, subject to the following conditions:
         | 
| 10 | 
            +
            #
         | 
| 11 | 
            +
            # The above copyright notice and this permission notice shall be included in all
         | 
| 12 | 
            +
            # copies or substantial portions of the Software.
         | 
| 13 | 
            +
            #
         | 
| 14 | 
            +
            # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
         | 
| 15 | 
            +
            # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
         | 
| 16 | 
            +
            # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
         | 
| 17 | 
            +
            # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
         | 
| 18 | 
            +
            # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
         | 
| 19 | 
            +
            # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
         | 
| 20 | 
            +
            # SOFTWARE.
         | 
| 21 | 
            +
            ## --- END LICENSE BLOCK ---
         | 
| 22 | 
            +
             | 
| 23 | 
            +
            require 'u3d_core/helper'
         | 
| 24 | 
            +
             | 
| 25 | 
            +
            class String
         | 
| 26 | 
            +
              # a crossplatform version of shellescape
         | 
| 27 | 
            +
              def argescape
         | 
| 28 | 
            +
                if U3dCore::Helper.windows?
         | 
| 29 | 
            +
                  self =~ / / ? "\"#{self}\"" : self
         | 
| 30 | 
            +
                else
         | 
| 31 | 
            +
                  require 'shellwords'
         | 
| 32 | 
            +
                  Shellwords.escape(self)
         | 
| 33 | 
            +
                end
         | 
| 34 | 
            +
              end
         | 
| 35 | 
            +
            end
         | 
    
        data/lib/u3d_core/credentials.rb
    CHANGED
    
    | @@ -51,12 +51,12 @@ module U3dCore | |
| 51 51 | 
             
                  if Helper.mac? && @use_keychain
         | 
| 52 52 | 
             
                    unless @password
         | 
| 53 53 | 
             
                      UI.message 'Fetching password from keychain'
         | 
| 54 | 
            -
                      password_holder = Security::InternetPassword.find(server:  | 
| 54 | 
            +
                      password_holder = Security::InternetPassword.find(server: server_name)
         | 
| 55 55 | 
             
                      @password = password_holder.password unless password_holder.nil?
         | 
| 56 56 | 
             
                    end
         | 
| 57 57 | 
             
                  end
         | 
| 58 58 |  | 
| 59 | 
            -
                  if @password. | 
| 59 | 
            +
                  if @password.nil?
         | 
| 60 60 | 
             
                    UI.verbose 'Could not retrieve password'
         | 
| 61 61 | 
             
                    if U3dCore::Globals.do_not_login?
         | 
| 62 62 | 
             
                      UI.verbose 'Login disabled'
         | 
| @@ -73,8 +73,8 @@ module U3dCore | |
| 73 73 |  | 
| 74 74 | 
             
                  raise CredentialsError, 'No username specified' unless user
         | 
| 75 75 |  | 
| 76 | 
            -
                  while @password. | 
| 77 | 
            -
                    UI.verbose 'Password does not exist | 
| 76 | 
            +
                  while @password.nil?
         | 
| 77 | 
            +
                    UI.verbose 'Password does not exist'
         | 
| 78 78 | 
             
                    raise CredentialsError, 'Password missing and context is not interactive. Please make sure it is correct' unless UI.interactive?
         | 
| 79 79 | 
             
                    @password = UI.password "Password for #{user}:"
         | 
| 80 80 | 
             
                  end
         | 
| @@ -91,7 +91,7 @@ module U3dCore | |
| 91 91 | 
             
                  ENV['U3D_PASSWORD'] = @password
         | 
| 92 92 | 
             
                  if Helper.mac? && @use_keychain
         | 
| 93 93 | 
             
                    UI.message 'Storing credentials to the keychain'
         | 
| 94 | 
            -
                    return Security::InternetPassword.add( | 
| 94 | 
            +
                    return Security::InternetPassword.add(server_name, user, password)
         | 
| 95 95 | 
             
                  end
         | 
| 96 96 |  | 
| 97 97 | 
             
                  return false
         | 
| @@ -103,12 +103,16 @@ module U3dCore | |
| 103 103 | 
             
                  if force || UI.interactive?
         | 
| 104 104 | 
             
                    if Helper.mac? && @use_keychain && (force || UI.confirm('Remove credentials from the keychain?'))
         | 
| 105 105 | 
             
                      UI.message 'Deleting credentials from the keychain'
         | 
| 106 | 
            -
                      Security::InternetPassword.delete(server:  | 
| 106 | 
            +
                      Security::InternetPassword.delete(server: server_name)
         | 
| 107 107 | 
             
                    end
         | 
| 108 108 | 
             
                  elsif Helper.mac?
         | 
| 109 109 | 
             
                    UI.verbose 'Keychain may store invalid credentials for u3d'
         | 
| 110 110 | 
             
                  end
         | 
| 111 111 | 
             
                end
         | 
| 112 | 
            +
             | 
| 113 | 
            +
                def server_name
         | 
| 114 | 
            +
                  MAC_U3D_SERVER
         | 
| 115 | 
            +
                end
         | 
| 112 116 | 
             
              end
         | 
| 113 117 |  | 
| 114 118 | 
             
              class CredentialsError < StandardError
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: u3d
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1.0. | 
| 4 | 
            +
              version: 1.0.3
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Jerome Lacoste
         | 
| @@ -9,7 +9,7 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: exe
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2017-09- | 
| 12 | 
            +
            date: 2017-09-11 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: commander
         | 
| @@ -380,6 +380,7 @@ files: | |
| 380 380 | 
             
            - lib/u3d_core.rb
         | 
| 381 381 | 
             
            - lib/u3d_core/command_executor.rb
         | 
| 382 382 | 
             
            - lib/u3d_core/command_runner.rb
         | 
| 383 | 
            +
            - lib/u3d_core/core_ext/string.rb
         | 
| 383 384 | 
             
            - lib/u3d_core/credentials.rb
         | 
| 384 385 | 
             
            - lib/u3d_core/globals.rb
         | 
| 385 386 | 
             
            - lib/u3d_core/helper.rb
         |