From d27dd291656ab6cf4aa7f2c7325f68a3fc94a301 Mon Sep 17 00:00:00 2001 From: Laszlo Pusok Date: Thu, 20 Jan 2022 14:08:13 +0100 Subject: [PATCH 1/2] Updated to new modules. v2 utilities are only used where v2 only utilites are used (autocodesign), with some exceptions (command). Full v2 migration is not in scope right now. --- build.go | 9 ++++----- codesign.go | 18 +++++++++--------- main.go | 25 +++++++++++++------------ 3 files changed, 26 insertions(+), 26 deletions(-) diff --git a/build.go b/build.go index 7dece31..a5ad761 100644 --- a/build.go +++ b/build.go @@ -36,15 +36,14 @@ func runCommandWithRetry(cmd *xcodebuild.CommandBuilder, useXcpretty bool, swift return output, buildInterval, err } -func prepareCommand(xcodeCmd *xcodebuild.CommandBuilder, useXcpretty bool, output *bytes.Buffer) (command.Command, *xcpretty.CommandModel) { +func prepareCommand(xcodeCmd *xcodebuild.CommandBuilder, useXcpretty bool, output *bytes.Buffer) (*command.Model, *xcpretty.CommandModel) { if useXcpretty { return nil, xcpretty.New(*xcodeCmd) } - buildRootCmd := xcodeCmd.Command(&command.Opts{ - Stdout: io.MultiWriter(os.Stdout, output), - Stderr: io.MultiWriter(os.Stderr, output), - }) + buildRootCmd := xcodeCmd.Command() + buildRootCmd.SetStdout(io.MultiWriter(os.Stdout, output)) + buildRootCmd.SetStderr(io.MultiWriter(os.Stderr, output)) return buildRootCmd, nil } diff --git a/codesign.go b/codesign.go index 3eb799d..6b65a42 100644 --- a/codesign.go +++ b/codesign.go @@ -3,17 +3,17 @@ package main import ( "fmt" - "github.com/bitrise-io/go-utils/command" - "github.com/bitrise-io/go-utils/log" "github.com/bitrise-io/go-utils/retry" - "github.com/bitrise-io/go-xcode/autocodesign" - "github.com/bitrise-io/go-xcode/autocodesign/certdownloader" - "github.com/bitrise-io/go-xcode/autocodesign/codesignasset" - "github.com/bitrise-io/go-xcode/autocodesign/devportalclient" - "github.com/bitrise-io/go-xcode/autocodesign/localcodesignasset" - "github.com/bitrise-io/go-xcode/autocodesign/projectmanager" - "github.com/bitrise-io/go-xcode/codesign" + "github.com/bitrise-io/go-utils/v2/command" + "github.com/bitrise-io/go-utils/v2/log" "github.com/bitrise-io/go-xcode/devportalservice" + "github.com/bitrise-io/go-xcode/v2/autocodesign" + "github.com/bitrise-io/go-xcode/v2/autocodesign/certdownloader" + "github.com/bitrise-io/go-xcode/v2/autocodesign/codesignasset" + "github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient" + "github.com/bitrise-io/go-xcode/v2/autocodesign/localcodesignasset" + "github.com/bitrise-io/go-xcode/v2/autocodesign/projectmanager" + "github.com/bitrise-io/go-xcode/v2/codesign" ) func createCodesignManager(config Config, xcodeMajorVersion int64, logger log.Logger, cmdFactory command.Factory) (codesign.Manager, error) { diff --git a/main.go b/main.go index 0117de5..c911a41 100644 --- a/main.go +++ b/main.go @@ -7,18 +7,20 @@ import ( "strings" "github.com/bitrise-io/go-steputils/output" - "github.com/bitrise-io/go-steputils/stepconf" "github.com/bitrise-io/go-steputils/tools" - "github.com/bitrise-io/go-utils/command" - "github.com/bitrise-io/go-utils/env" + "github.com/bitrise-io/go-steputils/v2/stepconf" "github.com/bitrise-io/go-utils/errorutil" - "github.com/bitrise-io/go-utils/fileutil" "github.com/bitrise-io/go-utils/log" "github.com/bitrise-io/go-utils/pathutil" "github.com/bitrise-io/go-utils/stringutil" - "github.com/bitrise-io/go-xcode/codesign" + "github.com/bitrise-io/go-utils/v2/command" + "github.com/bitrise-io/go-utils/v2/env" + v2fileutil "github.com/bitrise-io/go-utils/v2/fileutil" + v2log "github.com/bitrise-io/go-utils/v2/log" + v2pathutil "github.com/bitrise-io/go-utils/v2/pathutil" "github.com/bitrise-io/go-xcode/utility" - "github.com/bitrise-io/go-xcode/xcconfig" + "github.com/bitrise-io/go-xcode/v2/codesign" + "github.com/bitrise-io/go-xcode/v2/xcconfig" "github.com/bitrise-io/go-xcode/xcodebuild" cache "github.com/bitrise-io/go-xcode/xcodecache" "github.com/bitrise-io/go-xcode/xcodeproject/xcworkspace" @@ -73,7 +75,7 @@ func main() { if err := parser.Parse(&cfg); err != nil { failf("Issue with input: %s", err) } - logger := log.NewLogger() + logger := v2log.NewLogger() logger.EnableDebugLog(cfg.VerboseLog) log.SetEnableDebugLog(cfg.VerboseLog) @@ -108,7 +110,6 @@ func main() { if cfg.LogFormatter == "xcpretty" { log.Infof("Output tool check:") - var xcpretty = xcpretty.NewXcpretty() // check if already installed if installed, err := xcpretty.IsInstalled(); err != nil { log.Warnf(" Failed to check if xcpretty is installed, error: %s", err) @@ -144,7 +145,7 @@ func main() { // Detect Xcode major version factory := command.NewFactory(env.NewRepository()) - xcodebuildVersion, err := utility.GetXcodeVersion(factory) + xcodebuildVersion, err := utility.GetXcodeVersion() if err != nil { failf("Failed to determin xcode version, error: %s", err) } @@ -212,13 +213,13 @@ func main() { } } - xcconfigWriter := xcconfig.NewWriter(pathutil.NewPathProvider(), fileutil.NewFileManager()) + xcconfigWriter := xcconfig.NewWriter(v2pathutil.NewPathProvider(), v2fileutil.NewFileManager()) xcconfigPath, err := xcconfigWriter.Write(cfg.XCConfigContent) if err != nil { failf(err.Error()) } - xcodeBuildCmd := xcodebuild.NewCommandBuilder(absProjectPath, xcworkspace.IsWorkspace(absProjectPath), "", factory) + xcodeBuildCmd := xcodebuild.NewCommandBuilder(absProjectPath, xcworkspace.IsWorkspace(absProjectPath), "") xcodeBuildCmd.SetScheme(cfg.Scheme) xcodeBuildCmd.SetConfiguration(cfg.Configuration) xcodeBuildCmd.SetCustomBuildAction("build-for-testing") @@ -250,7 +251,7 @@ func main() { // Export log.Infof("Export:") - buildSettingsCmd := xcodebuild.NewShowBuildSettingsCommand(absProjectPath, factory) + buildSettingsCmd := xcodebuild.NewShowBuildSettingsCommand(absProjectPath) buildSettingsCmd.SetScheme(cfg.Scheme) buildSettingsCmd.SetConfiguration(cfg.Configuration) buildSettingsCmd.SetCustomOptions(append([]string{"build-for-testing"}, customOptions...)) From 3469a69556489fe989cba5f2bc1dc148da91e700 Mon Sep 17 00:00:00 2001 From: Laszlo Pusok Date: Thu, 20 Jan 2022 14:20:41 +0100 Subject: [PATCH 2/2] Updated vendor --- go.mod | 14 +- go.sum | 39 +-- .../command/rubycommand/rubycommand.go | 275 ++++++++++++++++++ .../bitrise-io/go-steputils/tools/tools.go | 10 +- .../go-steputils/{ => v2}/ruby/command.go | 4 +- .../go-steputils/{ => v2}/ruby/environment.go | 4 +- .../go-steputils/{ => v2}/stepconf/errors.go | 0 .../go-steputils/{ => v2}/stepconf/secret.go | 0 .../{ => v2}/stepconf/stepconf.go | 4 +- .../{ => v2}/stepconf/stepinput.go | 8 +- .../go-steputils/{ => v2}/stepconf/strings.go | 0 .../bitrise-io/go-utils/command/command.go | 270 ++++++++++++----- .../bitrise-io/go-utils/command/file.go | 5 +- .../bitrise-io/go-utils/fileutil/fileutil.go | 46 --- .../bitrise-io/go-utils/log/defaultlogger.go | 57 ++++ .../bitrise-io/go-utils/log/dummylogger.go | 30 ++ .../bitrise-io/go-utils/log/json_logger.go | 33 +++ .../github.com/bitrise-io/go-utils/log/log.go | 236 +-------------- .../bitrise-io/go-utils/log/logger.go | 12 + .../bitrise-io/go-utils/log/print.go | 115 ++++++++ .../bitrise-io/go-utils/log/raw_logger.go | 33 +++ .../bitrise-io/go-utils/log/severity.go | 26 +- .../bitrise-io/go-utils/pathutil/pathutil.go | 38 --- .../github.com/bitrise-io/go-utils/v2/LICENSE | 22 ++ .../bitrise-io/go-utils/v2/command/command.go | 120 ++++++++ .../bitrise-io/go-utils/{ => v2}/env/env.go | 12 +- .../go-utils/v2/fileutil/fileutil.go | 52 ++++ .../bitrise-io/go-utils/v2/log/log.go | 139 +++++++++ .../bitrise-io/go-utils/v2/log/severity.go | 35 +++ .../go-utils/v2/pathutil/pathutil.go | 39 +++ .../bitrise-io/go-utils/ziputil/ziputil.go | 16 +- .../go-xcode/certificateutil/util.go | 10 +- .../bitrise-io/go-xcode/utility/utility.go | 4 +- .../{ => v2}/autocodesign/autocodesign.go | 14 +- .../certdownloader/certdownloader.go | 2 +- .../{ => v2}/autocodesign/certificates.go | 2 +- .../autocodesign/codesignasset/writer.go | 6 +- .../go-xcode/{ => v2}/autocodesign/devices.go | 2 +- .../appstoreconnect/appstoreconnect.go | 0 .../appstoreconnect/bundleids.go | 0 .../appstoreconnect/capabilities.go | 0 .../appstoreconnect/certificates.go | 0 .../appstoreconnect/devices.go | 0 .../devportalclient/appstoreconnect/error.go | 0 .../devportalclient/appstoreconnect/jwt.go | 0 .../appstoreconnect/profiles.go | 0 .../appstoreconnect/provisioning.go | 0 .../devportalclient/appstoreconnect/time.go | 0 .../appstoreconnectclient/certificates.go | 4 +- .../appstoreconnectclient/client.go | 4 +- .../appstoreconnectclient/devices.go | 2 +- .../appstoreconnectclient/profiles.go | 4 +- .../devportalclient/devportalclient.go | 10 +- .../devportalclient/spaceship/certificates.go | 4 +- .../devportalclient/spaceship/devices.go | 2 +- .../devportalclient/spaceship/profiles.go | 4 +- .../devportalclient/spaceship/spaceship.go | 8 +- .../spaceship/spaceship/Gemfile | 0 .../spaceship/spaceship/Gemfile.lock | 0 .../spaceship/spaceship/app.rb | 0 .../spaceship/spaceship/certificates.rb | 0 .../spaceship/spaceship/devices.rb | 0 .../spaceship/spaceship/log.rb | 0 .../spaceship/spaceship/main.rb | 0 .../spaceship/spaceship/portal/app_client.rb | 0 .../spaceship/spaceship/portal/auth_client.rb | 0 .../spaceship/portal/certificate_client.rb | 0 .../spaceship/spaceship/portal/common.rb | 0 .../spaceship/spaceship/profiles.rb | 0 .../{ => v2}/autocodesign/entitlement.go | 2 +- .../go-xcode/{ => v2}/autocodesign/errors.go | 2 +- .../autocodesign/keychain/keychain.go | 4 +- .../localcodesignasset/localcodesignasset.go | 4 +- .../localcodesignasset/profile.go | 4 +- .../localcodesignasset/profileconverter.go | 4 +- .../localcodesignasset/profilelookup.go | 2 +- .../localcodesignasset/profileprovider.go | 0 .../autocodesign/localcodesignasset/utils.go | 4 +- .../{ => v2}/autocodesign/mock_AssetWriter.go | 0 .../autocodesign/mock_CertificateProvider.go | 0 .../autocodesign/mock_DevPortalClient.go | 2 +- .../mock_LocalCodeSignAssetManager.go | 2 +- .../{ => v2}/autocodesign/mock_Profile.go | 2 +- .../go-xcode/{ => v2}/autocodesign/models.go | 2 +- .../{ => v2}/autocodesign/profiles.go | 2 +- .../projectmanager/projecthelper.go | 2 +- .../projectmanager/projectmanager.go | 2 +- .../go-xcode/{ => v2}/autocodesign/utils.go | 0 .../go-xcode/{ => v2}/codesign/archive.go | 4 +- .../go-xcode/{ => v2}/codesign/codesign.go | 12 +- .../go-xcode/{ => v2}/codesign/inputparse.go | 10 +- .../bitrise-io/go-xcode/v2/xcarchive/ios.go | 46 +++ .../go-xcode/{ => v2}/xcconfig/xcconfig.go | 4 +- .../go-xcode/xcarchive/entitlements.go | 4 +- .../bitrise-io/go-xcode/xcarchive/ios.go | 81 ++---- .../bitrise-io/go-xcode/xcodebuild/build.go | 43 +-- .../bitrise-io/go-xcode/xcodebuild/export.go | 47 +-- .../go-xcode/xcodebuild/legacy_export.go | 40 +-- .../xcodebuild/show_build_settings.go | 58 ++-- .../bitrise-io/go-xcode/xcodebuild/test.go | 41 +-- .../go-xcode/xcodebuild/xcodebuild.go | 2 +- .../go-xcode/xcodecache/swiftpm_cache.go | 32 +- .../xcodeproject/xcodeproj/xcodeproj.go | 13 +- .../xcodeproject/xcworkspace/xcworkspace.go | 5 +- .../bitrise-io/go-xcode/xcpretty/xcpretty.go | 88 +++--- vendor/github.com/golang-jwt/jwt/v4/claims.go | 10 +- vendor/github.com/golang-jwt/jwt/v4/errors.go | 5 + vendor/github.com/golang-jwt/jwt/v4/parser.go | 32 +- .../golang-jwt/jwt/v4/parser_option.go | 29 ++ .../golang-jwt/jwt/v4/signing_method.go | 11 + vendor/github.com/golang-jwt/jwt/v4/token.go | 39 ++- vendor/github.com/golang-jwt/jwt/v4/types.go | 4 +- vendor/modules.txt | 52 ++-- 113 files changed, 1710 insertions(+), 818 deletions(-) create mode 100644 vendor/github.com/bitrise-io/go-steputils/command/rubycommand/rubycommand.go rename vendor/github.com/bitrise-io/go-steputils/{ => v2}/ruby/command.go (97%) rename vendor/github.com/bitrise-io/go-steputils/{ => v2}/ruby/environment.go (98%) rename vendor/github.com/bitrise-io/go-steputils/{ => v2}/stepconf/errors.go (100%) rename vendor/github.com/bitrise-io/go-steputils/{ => v2}/stepconf/secret.go (100%) rename vendor/github.com/bitrise-io/go-steputils/{ => v2}/stepconf/stepconf.go (99%) rename vendor/github.com/bitrise-io/go-steputils/{ => v2}/stepconf/stepinput.go (65%) rename vendor/github.com/bitrise-io/go-steputils/{ => v2}/stepconf/strings.go (100%) create mode 100644 vendor/github.com/bitrise-io/go-utils/log/defaultlogger.go create mode 100644 vendor/github.com/bitrise-io/go-utils/log/dummylogger.go create mode 100644 vendor/github.com/bitrise-io/go-utils/log/json_logger.go create mode 100644 vendor/github.com/bitrise-io/go-utils/log/logger.go create mode 100644 vendor/github.com/bitrise-io/go-utils/log/print.go create mode 100644 vendor/github.com/bitrise-io/go-utils/log/raw_logger.go create mode 100644 vendor/github.com/bitrise-io/go-utils/v2/LICENSE create mode 100644 vendor/github.com/bitrise-io/go-utils/v2/command/command.go rename vendor/github.com/bitrise-io/go-utils/{ => v2}/env/env.go (73%) create mode 100644 vendor/github.com/bitrise-io/go-utils/v2/fileutil/fileutil.go create mode 100644 vendor/github.com/bitrise-io/go-utils/v2/log/log.go create mode 100644 vendor/github.com/bitrise-io/go-utils/v2/log/severity.go create mode 100644 vendor/github.com/bitrise-io/go-utils/v2/pathutil/pathutil.go rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/autocodesign.go (94%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/certdownloader/certdownloader.go (97%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/certificates.go (99%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/codesignasset/writer.go (94%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/devices.go (98%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/devportalclient/appstoreconnect/appstoreconnect.go (100%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/devportalclient/appstoreconnect/bundleids.go (100%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/devportalclient/appstoreconnect/capabilities.go (100%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/devportalclient/appstoreconnect/certificates.go (100%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/devportalclient/appstoreconnect/devices.go (100%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/devportalclient/appstoreconnect/error.go (100%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/devportalclient/appstoreconnect/jwt.go (100%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/devportalclient/appstoreconnect/profiles.go (100%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/devportalclient/appstoreconnect/provisioning.go (100%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/devportalclient/appstoreconnect/time.go (100%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/devportalclient/appstoreconnectclient/certificates.go (95%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/devportalclient/appstoreconnectclient/client.go (81%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/devportalclient/appstoreconnectclient/devices.go (96%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/devportalclient/appstoreconnectclient/profiles.go (98%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/devportalclient/devportalclient.go (90%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/devportalclient/spaceship/certificates.go (95%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/devportalclient/spaceship/devices.go (97%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/devportalclient/spaceship/profiles.go (98%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/devportalclient/spaceship/spaceship.go (96%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/devportalclient/spaceship/spaceship/Gemfile (100%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/devportalclient/spaceship/spaceship/Gemfile.lock (100%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/devportalclient/spaceship/spaceship/app.rb (100%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/devportalclient/spaceship/spaceship/certificates.rb (100%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/devportalclient/spaceship/spaceship/devices.rb (100%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/devportalclient/spaceship/spaceship/log.rb (100%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/devportalclient/spaceship/spaceship/main.rb (100%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/devportalclient/spaceship/spaceship/portal/app_client.rb (100%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/devportalclient/spaceship/spaceship/portal/auth_client.rb (100%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/devportalclient/spaceship/spaceship/portal/certificate_client.rb (100%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/devportalclient/spaceship/spaceship/portal/common.rb (100%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/devportalclient/spaceship/spaceship/profiles.rb (100%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/entitlement.go (98%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/errors.go (96%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/keychain/keychain.go (98%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/localcodesignasset/localcodesignasset.go (96%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/localcodesignasset/profile.go (88%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/localcodesignasset/profileconverter.go (92%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/localcodesignasset/profilelookup.go (98%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/localcodesignasset/profileprovider.go (100%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/localcodesignasset/utils.go (81%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/mock_AssetWriter.go (100%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/mock_CertificateProvider.go (100%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/mock_DevPortalClient.go (98%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/mock_LocalCodeSignAssetManager.go (94%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/mock_Profile.go (96%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/models.go (95%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/profiles.go (99%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/projectmanager/projecthelper.go (99%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/projectmanager/projectmanager.go (99%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/autocodesign/utils.go (100%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/codesign/archive.go (87%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/codesign/codesign.go (96%) rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/codesign/inputparse.go (91%) create mode 100644 vendor/github.com/bitrise-io/go-xcode/v2/xcarchive/ios.go rename vendor/github.com/bitrise-io/go-xcode/{ => v2}/xcconfig/xcconfig.go (90%) create mode 100644 vendor/github.com/golang-jwt/jwt/v4/parser_option.go diff --git a/go.mod b/go.mod index e63e0df..5dbd918 100644 --- a/go.mod +++ b/go.mod @@ -3,19 +3,25 @@ module github.com/bitrise-steplib/steps-xcode-build-for-test go 1.17 require ( - github.com/bitrise-io/go-steputils v0.0.0-20211205220451-e046db274afb - github.com/bitrise-io/go-utils v0.0.0-20211126092127-3a566ee3f420 - github.com/bitrise-io/go-xcode v0.0.0-20220105112357-9757160a67eb + github.com/bitrise-io/go-steputils v1.0.1 + github.com/bitrise-io/go-utils v1.0.1 + github.com/bitrise-io/go-xcode v1.0.1 github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 golang.org/x/text v0.3.7 // indirect ) +require ( + github.com/bitrise-io/go-steputils/v2 v2.0.0-alpha.1 + github.com/bitrise-io/go-utils/v2 v2.0.0-alpha.1 + github.com/bitrise-io/go-xcode/v2 v2.0.0-alpha.5 +) + require ( github.com/bitrise-io/go-plist v0.0.0-20210301100253-4b1a112ccd10 // indirect github.com/bitrise-io/pkcs12 v0.0.0-20211108084543-e52728e011c8 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa // indirect - github.com/golang-jwt/jwt/v4 v4.1.0 // indirect + github.com/golang-jwt/jwt/v4 v4.2.0 // indirect github.com/google/go-querystring v1.1.0 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect github.com/hashicorp/go-retryablehttp v0.7.0 // indirect diff --git a/go.sum b/go.sum index 01cc7b4..56b40ee 100644 --- a/go.sum +++ b/go.sum @@ -1,15 +1,17 @@ github.com/bitrise-io/go-plist v0.0.0-20210301100253-4b1a112ccd10 h1:/2OyBFI7GjYKexBPcfTPvKFz8Ks7qYzkkz2SQ8aiJgc= github.com/bitrise-io/go-plist v0.0.0-20210301100253-4b1a112ccd10/go.mod h1:pARutiL3kEuRLV3JvswidvfCj+9Y3qMZtji2BDqLFsA= -github.com/bitrise-io/go-steputils v0.0.0-20210929162140-866a65a1e14a/go.mod h1:6Y7Dl40gwgW9YG1RAWcjFBk1u9uotuix8g2IkVTXK34= -github.com/bitrise-io/go-steputils v0.0.0-20211205220451-e046db274afb h1:ZV1aWUW/fAY4kE08bwRGz0iSjfMEyHmkYn9IB/LtSMw= -github.com/bitrise-io/go-steputils v0.0.0-20211205220451-e046db274afb/go.mod h1:lx6GmEBJEga+HqquE2Wld5atUS8ZrvnvBeGrUNRXA9I= -github.com/bitrise-io/go-utils v0.0.0-20210924090918-3e7a04d0da9d/go.mod h1:Vi4MHnaZVL3PVoPPA/Yp6g2pzntkDH8LGiRSY7qw6KQ= -github.com/bitrise-io/go-utils v0.0.0-20211008161027-fa11986847a0/go.mod h1:Vi4MHnaZVL3PVoPPA/Yp6g2pzntkDH8LGiRSY7qw6KQ= -github.com/bitrise-io/go-utils v0.0.0-20211126092127-3a566ee3f420 h1:cbKXuIhwfZzPgvuSCvEtmWxBWSk70Vivj78cOMVWgUg= -github.com/bitrise-io/go-utils v0.0.0-20211126092127-3a566ee3f420/go.mod h1:Vi4MHnaZVL3PVoPPA/Yp6g2pzntkDH8LGiRSY7qw6KQ= -github.com/bitrise-io/go-xcode v0.0.0-20220105112357-9757160a67eb h1:PkWOFSavItNQ0WEtv4XARhzHZnzVAaP9FwJp84lpgR4= -github.com/bitrise-io/go-xcode v0.0.0-20220105112357-9757160a67eb/go.mod h1:Ptio5Y5KeEmLM78dB/atcOl6nXPNDpY0IZF8DwFlBpk= -github.com/bitrise-io/pkcs12 v0.0.0-20210430063833-0da06eb56630/go.mod h1:UiXKNs0essbC14a2TvGlnUKo9isP9m4guPrp8KJHJpU= +github.com/bitrise-io/go-steputils v1.0.1 h1:lwPl2W1njfANrBoTCkuqOOYbTha263ZFqoWQH0fwhaY= +github.com/bitrise-io/go-steputils v1.0.1/go.mod h1:YIUaQnIAyK4pCvQG0hYHVkSzKNT9uL2FWmkFNW4mfNI= +github.com/bitrise-io/go-steputils/v2 v2.0.0-alpha.1 h1:rRttUs9HUZkkK7u+rRsdLh436um2qGvFE5dJeiCoB+o= +github.com/bitrise-io/go-steputils/v2 v2.0.0-alpha.1/go.mod h1:OC0mHpjD/bqmsHlhG+FWgTouBbcJvmyx896PDP3dRBs= +github.com/bitrise-io/go-utils v1.0.1 h1:e7mepVBkVN1DXRPESNXb0djEw6bxB6B93p/Q74zzcvk= +github.com/bitrise-io/go-utils v1.0.1/go.mod h1:ZY1DI+fEpZuFpO9szgDeICM4QbqoWVt0RSY3tRI1heY= +github.com/bitrise-io/go-utils/v2 v2.0.0-alpha.1 h1:4PBBhTUl6NthNJCTCexe/22e/crE6FTmYfcMAM/UirY= +github.com/bitrise-io/go-utils/v2 v2.0.0-alpha.1/go.mod h1:sy+Ir1X8P3tAAx/qU/r+hqDjHDcrMjIzDEvId1wqNc4= +github.com/bitrise-io/go-xcode v1.0.1 h1:pQBRBoP5vVx+K7FOGoKEGpO8G/zwolNESFFDWHEamAM= +github.com/bitrise-io/go-xcode v1.0.1/go.mod h1:Y0Wu2dXm0MilJ/4D3+gPHaNMlUcP+1DjIPoLPykq7wY= +github.com/bitrise-io/go-xcode/v2 v2.0.0-alpha.5 h1:WZ3V+h/zF3zEtVa7UCb6nE2L9Sjji9znXp+vuIN9OiM= +github.com/bitrise-io/go-xcode/v2 v2.0.0-alpha.5/go.mod h1:6YbvyYwZgSTt96CQSQ6QlrkcRiv3ssX8zLijh2TPnbU= github.com/bitrise-io/pkcs12 v0.0.0-20211108084543-e52728e011c8 h1:kmvU8AxrNTxXsVPKepBHD8W+eCVmeaKyTkRuUJB2K38= github.com/bitrise-io/pkcs12 v0.0.0-20211108084543-e52728e011c8/go.mod h1:UiXKNs0essbC14a2TvGlnUKo9isP9m4guPrp8KJHJpU= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -17,8 +19,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa h1:RDBNVkRviHZtvDvId8XSGPu3rmpmSe+wKRcEWNgsfWU= github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa/go.mod h1:KnogPXtdwXqoenmZCw6S+25EAm2MkxbG0deNDu4cbSA= -github.com/golang-jwt/jwt/v4 v4.1.0 h1:XUgk2Ex5veyVFVeLm0xhusUTQybEbexJXrvPNOKkSY0= -github.com/golang-jwt/jwt/v4 v4.1.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= +github.com/golang-jwt/jwt/v4 v4.2.0 h1:besgBTC8w8HjP6NzQdxwKH9Z5oQMZ24ThTrHp3cZ8eU= +github.com/golang-jwt/jwt/v4 v4.2.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= @@ -36,7 +38,6 @@ github.com/hashicorp/go-version v1.3.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09 github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs= github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= @@ -54,27 +55,27 @@ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXf github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/crypto v0.0.0-20211202192323-5770296d904e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211205182925-97ca703d548d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v1 v1.0.0-20140924161607-9f9df34309c0/go.mod h1:WDnlLJ4WF5VGsH/HVa3CI79GS0ol3YnhVnKP89i0kNg= -gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -howett.net/plist v0.0.0-20201203080718-1454fab16a06/go.mod h1:vMygbs4qMhSZSc4lCUl2OEE+rDiIIJAIdR4m7MiMcm0= howett.net/plist v1.0.0 h1:7CrbWYbPPO/PyNy38b2EB/+gYbjCe2DXBxgtOOZbSQM= howett.net/plist v1.0.0/go.mod h1:lqaXoTrLY4hg8tnEzNru53gicrbv7rrk+2xJA/7hw9g= diff --git a/vendor/github.com/bitrise-io/go-steputils/command/rubycommand/rubycommand.go b/vendor/github.com/bitrise-io/go-steputils/command/rubycommand/rubycommand.go new file mode 100644 index 0000000..4ce6cde --- /dev/null +++ b/vendor/github.com/bitrise-io/go-steputils/command/rubycommand/rubycommand.go @@ -0,0 +1,275 @@ +package rubycommand + +import ( + "bufio" + "bytes" + "errors" + "fmt" + "regexp" + "strings" + + "github.com/bitrise-io/go-utils/command" + "github.com/bitrise-io/go-utils/pathutil" +) + +const ( + systemRubyPth = "/usr/bin/ruby" + brewRubyPth = "/usr/local/bin/ruby" + brewRubyPthAlt = "/usr/local/opt/ruby/bin/ruby" +) + +// InstallType ... +type InstallType int8 + +const ( + // Unkown ... + Unkown InstallType = iota + // SystemRuby ... + SystemRuby + // BrewRuby ... + BrewRuby + // RVMRuby ... + RVMRuby + // RbenvRuby ... + RbenvRuby +) + +func cmdExist(slice ...string) bool { + if len(slice) == 0 { + return false + } + + cmd, err := command.NewWithParams(slice...) + if err != nil { + return false + } + + return (cmd.Run() == nil) +} + +// RubyInstallType returns which version manager was used for the ruby install +func RubyInstallType() InstallType { + whichRuby, err := command.New("which", "ruby").RunAndReturnTrimmedCombinedOutput() + if err != nil { + return Unkown + } + + installType := Unkown + if whichRuby == systemRubyPth { + installType = SystemRuby + } else if whichRuby == brewRubyPth { + installType = BrewRuby + } else if whichRuby == brewRubyPthAlt { + installType = BrewRuby + } else if cmdExist("rvm", "-v") { + installType = RVMRuby + } else if cmdExist("rbenv", "-v") { + installType = RbenvRuby + } + + return installType +} + +func sudoNeeded(installType InstallType, slice ...string) bool { + if installType != SystemRuby { + return false + } + + if len(slice) < 2 { + return false + } + + name := slice[0] + if name == "bundle" { + command := slice[1] + /* + bundle command can contain version: + `bundle _2.0.1_ install` + */ + const bundleVersionMarker = "_" + if strings.HasPrefix(slice[1], bundleVersionMarker) && strings.HasSuffix(slice[1], bundleVersionMarker) { + if len(slice) < 3 { + return false + } + command = slice[2] + } + + return (command == "install" || command == "update") + } else if name == "gem" { + command := slice[1] + return (command == "install" || command == "uninstall") + } + + return false +} + +// NewWithParams ... +func NewWithParams(params ...string) (*command.Model, error) { + rubyInstallType := RubyInstallType() + if rubyInstallType == Unkown { + return nil, errors.New("unknown ruby installation type") + } + + if sudoNeeded(rubyInstallType, params...) { + params = append([]string{"sudo"}, params...) + } + + return command.NewWithParams(params...) +} + +// NewFromSlice ... +func NewFromSlice(slice []string) (*command.Model, error) { + return NewWithParams(slice...) +} + +// New ... +func New(name string, args ...string) (*command.Model, error) { + slice := append([]string{name}, args...) + return NewWithParams(slice...) +} + +// GemUpdate ... +func GemUpdate(gem string) ([]*command.Model, error) { + cmds := []*command.Model{} + + cmd, err := New("gem", "update", gem, "--no-document") + if err != nil { + return []*command.Model{}, err + } + + cmds = append(cmds, cmd) + + rubyInstallType := RubyInstallType() + if rubyInstallType == RbenvRuby { + cmd, err := New("rbenv", "rehash") + if err != nil { + return []*command.Model{}, err + } + + cmds = append(cmds, cmd) + } + + return cmds, nil +} + +func gemInstallCommand(gem, version string, enablePrerelease bool) []string { + slice := []string{"gem", "install", gem, "--no-document"} + if enablePrerelease { + slice = append(slice, "--prerelease") + } + if version != "" { + slice = append(slice, "-v", version) + } + + return slice +} + +// GemInstall ... +func GemInstall(gem, version string, enablePrerelease bool) ([]*command.Model, error) { + cmd, err := NewFromSlice(gemInstallCommand(gem, version, enablePrerelease)) + if err != nil { + return []*command.Model{}, err + } + + cmds := []*command.Model{cmd} + + rubyInstallType := RubyInstallType() + if rubyInstallType == RbenvRuby { + cmd, err := New("rbenv", "rehash") + if err != nil { + return []*command.Model{}, err + } + + cmds = append(cmds, cmd) + } + + return cmds, nil +} + +func findGemInList(gemList, gem, version string) (bool, error) { + // minitest (5.10.1, 5.9.1, 5.9.0, 5.8.3, 4.7.5) + pattern := fmt.Sprintf(`^%s \(.*%s.*\)`, gem, version) + re := regexp.MustCompile(pattern) + + reader := bytes.NewReader([]byte(gemList)) + scanner := bufio.NewScanner(reader) + for scanner.Scan() { + line := scanner.Text() + match := re.FindString(line) + if match != "" { + return true, nil + } + } + if err := scanner.Err(); err != nil { + return false, err + } + return false, nil +} + +// IsGemInstalled ... +func IsGemInstalled(gem, version string) (bool, error) { + cmd, err := New("gem", "list") + if err != nil { + return false, err + } + + out, err := cmd.RunAndReturnTrimmedCombinedOutput() + if err != nil { + return false, fmt.Errorf("%s: error: %s", out, err) + } + + return findGemInList(out, gem, version) +} + +func isSpecifiedRbenvRubyInstalled(message string) (bool, string, error) { + // + // Not installed + reg, err := regexp.Compile("rbenv: version \x60.*' is not installed") // \x60 == ` (The go linter suggested to use the hex code instead) + if err != nil { + return false, "", fmt.Errorf("failed to parse regex ( %s ) on the error message, error: %s", "rbenv: version \x60.*' is not installed", err) // \x60 == ` (The go linter suggested to use the hex code instead) + } + + var version string + if reg.MatchString(message) { + message := reg.FindString(message) + version = strings.Split(strings.Split(message, "`")[1], "'")[0] + return false, version, nil + } + + // + // Installed + reg, err = regexp.Compile(".* \\(set by") + if err != nil { + return false, "", fmt.Errorf("failed to parse regex ( %s ) on the error message, error: %s", ".* \\(set by", err) + } + + if reg.MatchString(message) { + s := reg.FindString(message) + version = strings.Split(s, " (set by")[0] + return true, version, nil + } + return false, version, nil +} + +// IsSpecifiedRbenvRubyInstalled checks if the selected ruby version is installed via rbenv. +// Ruby version is set by +// 1. The RBENV_VERSION environment variable +// 2. The first .ruby-version file found by searching the directory of the script you are executing and each of its +// parent directories until reaching the root of your filesystem. +// 3.The first .ruby-version file found by searching the current working directory and each of its parent directories +// until reaching the root of your filesystem. +// 4. The global ~/.rbenv/version file. You can modify this file using the rbenv global command. +// src: https://github.com/rbenv/rbenv#choosing-the-ruby-version +func IsSpecifiedRbenvRubyInstalled(workdir string) (bool, string, error) { + absWorkdir, err := pathutil.AbsPath(workdir) + if err != nil { + return false, "", fmt.Errorf("failed to get absolute path for ( %s ), error: %s", workdir, err) + } + + cmd := command.New("rbenv", "version").SetDir(absWorkdir) + out, err := cmd.RunAndReturnTrimmedCombinedOutput() + if err != nil { + return false, "", fmt.Errorf("failed to check installed ruby version, %s error: %s", out, err) + } + return isSpecifiedRbenvRubyInstalled(out) +} diff --git a/vendor/github.com/bitrise-io/go-steputils/tools/tools.go b/vendor/github.com/bitrise-io/go-steputils/tools/tools.go index f665afa..3372b16 100644 --- a/vendor/github.com/bitrise-io/go-steputils/tools/tools.go +++ b/vendor/github.com/bitrise-io/go-steputils/tools/tools.go @@ -1,16 +1,14 @@ package tools import ( - "github.com/bitrise-io/go-utils/command" - "github.com/bitrise-io/go-utils/env" "strings" -) -// TODO remove -var temporaryFactory = command.NewFactory(env.NewRepository()) + "github.com/bitrise-io/go-utils/command" +) // ExportEnvironmentWithEnvman ... func ExportEnvironmentWithEnvman(key, value string) error { - cmd := temporaryFactory.Create("envman", []string{"add", "--key", key}, &command.Opts{Stdin: strings.NewReader(value)}) + cmd := command.New("envman", "add", "--key", key) + cmd.SetStdin(strings.NewReader(value)) return cmd.Run() } diff --git a/vendor/github.com/bitrise-io/go-steputils/ruby/command.go b/vendor/github.com/bitrise-io/go-steputils/v2/ruby/command.go similarity index 97% rename from vendor/github.com/bitrise-io/go-steputils/ruby/command.go rename to vendor/github.com/bitrise-io/go-steputils/v2/ruby/command.go index b7c7e15..6d7edd0 100644 --- a/vendor/github.com/bitrise-io/go-steputils/ruby/command.go +++ b/vendor/github.com/bitrise-io/go-steputils/v2/ruby/command.go @@ -4,8 +4,8 @@ import ( "errors" "strings" - "github.com/bitrise-io/go-utils/command" - "github.com/bitrise-io/go-utils/env" + "github.com/bitrise-io/go-utils/v2/command" + "github.com/bitrise-io/go-utils/v2/env" ) // CommandFactory ... diff --git a/vendor/github.com/bitrise-io/go-steputils/ruby/environment.go b/vendor/github.com/bitrise-io/go-steputils/v2/ruby/environment.go similarity index 98% rename from vendor/github.com/bitrise-io/go-steputils/ruby/environment.go rename to vendor/github.com/bitrise-io/go-steputils/v2/ruby/environment.go index b376372..cc41172 100644 --- a/vendor/github.com/bitrise-io/go-steputils/ruby/environment.go +++ b/vendor/github.com/bitrise-io/go-steputils/v2/ruby/environment.go @@ -7,9 +7,9 @@ import ( "regexp" "strings" - "github.com/bitrise-io/go-utils/command" - "github.com/bitrise-io/go-utils/env" "github.com/bitrise-io/go-utils/pathutil" + "github.com/bitrise-io/go-utils/v2/command" + "github.com/bitrise-io/go-utils/v2/env" ) const ( diff --git a/vendor/github.com/bitrise-io/go-steputils/stepconf/errors.go b/vendor/github.com/bitrise-io/go-steputils/v2/stepconf/errors.go similarity index 100% rename from vendor/github.com/bitrise-io/go-steputils/stepconf/errors.go rename to vendor/github.com/bitrise-io/go-steputils/v2/stepconf/errors.go diff --git a/vendor/github.com/bitrise-io/go-steputils/stepconf/secret.go b/vendor/github.com/bitrise-io/go-steputils/v2/stepconf/secret.go similarity index 100% rename from vendor/github.com/bitrise-io/go-steputils/stepconf/secret.go rename to vendor/github.com/bitrise-io/go-steputils/v2/stepconf/secret.go diff --git a/vendor/github.com/bitrise-io/go-steputils/stepconf/stepconf.go b/vendor/github.com/bitrise-io/go-steputils/v2/stepconf/stepconf.go similarity index 99% rename from vendor/github.com/bitrise-io/go-steputils/stepconf/stepconf.go rename to vendor/github.com/bitrise-io/go-steputils/v2/stepconf/stepconf.go index 932bf80..1f0acf6 100644 --- a/vendor/github.com/bitrise-io/go-steputils/stepconf/stepconf.go +++ b/vendor/github.com/bitrise-io/go-steputils/v2/stepconf/stepconf.go @@ -9,8 +9,8 @@ import ( "strconv" "strings" - "github.com/bitrise-io/go-utils/env" "github.com/bitrise-io/go-utils/parseutil" + "github.com/bitrise-io/go-utils/v2/env" ) const ( @@ -133,7 +133,7 @@ func validateConstraint(value, constraint string) error { return err } // TODO: use FindStringSubmatch to distinguish no match and match for empty string. - case regexp.MustCompile(`^opt\[.*\]$`).FindString(constraint): + case regexp.MustCompile(`^opt\[.*]$`).FindString(constraint): if !contains(value, constraint) { // TODO: print only the value options, not the whole string. return fmt.Errorf("value is not in value options (%s)", constraint) diff --git a/vendor/github.com/bitrise-io/go-steputils/stepconf/stepinput.go b/vendor/github.com/bitrise-io/go-steputils/v2/stepconf/stepinput.go similarity index 65% rename from vendor/github.com/bitrise-io/go-steputils/stepconf/stepinput.go rename to vendor/github.com/bitrise-io/go-steputils/v2/stepconf/stepinput.go index d4b57c1..abd4727 100644 --- a/vendor/github.com/bitrise-io/go-steputils/stepconf/stepinput.go +++ b/vendor/github.com/bitrise-io/go-steputils/v2/stepconf/stepinput.go @@ -1,24 +1,24 @@ package stepconf -import "github.com/bitrise-io/go-utils/env" +import "github.com/bitrise-io/go-utils/v2/env" // InputParser ... type InputParser interface { Parse(input interface{}) error } -type defaultInputParser struct { +type inputParser struct { envRepository env.Repository } // NewInputParser ... func NewInputParser(envRepository env.Repository) InputParser { - return defaultInputParser{ + return inputParser{ envRepository: envRepository, } } // Parse ... -func (p defaultInputParser) Parse(input interface{}) error { +func (p inputParser) Parse(input interface{}) error { return parse(input, p.envRepository) } diff --git a/vendor/github.com/bitrise-io/go-steputils/stepconf/strings.go b/vendor/github.com/bitrise-io/go-steputils/v2/stepconf/strings.go similarity index 100% rename from vendor/github.com/bitrise-io/go-steputils/stepconf/strings.go rename to vendor/github.com/bitrise-io/go-steputils/v2/stepconf/strings.go diff --git a/vendor/github.com/bitrise-io/go-utils/command/command.go b/vendor/github.com/bitrise-io/go-utils/command/command.go index 0ef8af3..c068490 100644 --- a/vendor/github.com/bitrise-io/go-utils/command/command.go +++ b/vendor/github.com/bitrise-io/go-utils/command/command.go @@ -1,113 +1,129 @@ package command import ( + "errors" "io" + "os" "os/exec" "strconv" "strings" - - "github.com/bitrise-io/go-utils/env" ) -// Opts ... -type Opts struct { - Stdout io.Writer - Stderr io.Writer - Stdin io.Reader - Env []string - Dir string +// ---------- + +// Model ... +type Model struct { + cmd *exec.Cmd +} + +// New ... +func New(name string, args ...string) *Model { + return &Model{ + cmd: exec.Command(name, args...), + } } -// Factory ... -type Factory interface { - Create(name string, args []string, opts *Opts) Command +// NewWithStandardOuts - same as NewCommand, but sets the command's +// stdout and stderr to the standard (OS) out (os.Stdout) and err (os.Stderr) +func NewWithStandardOuts(name string, args ...string) *Model { + return New(name, args...).SetStdout(os.Stdout).SetStderr(os.Stderr) } -type defaultFactory struct { - envRepository env.Repository +// NewWithParams ... +func NewWithParams(params ...string) (*Model, error) { + if len(params) == 0 { + return nil, errors.New("no command provided") + } else if len(params) == 1 { + return New(params[0]), nil + } + + return New(params[0], params[1:]...), nil } -// NewFactory ... -func NewFactory(envRepository env.Repository) Factory { - return defaultFactory{envRepository: envRepository} +// NewFromSlice ... +func NewFromSlice(slice []string) (*Model, error) { + return NewWithParams(slice...) } -// Create ... -func (f defaultFactory) Create(name string, args []string, opts *Opts) Command { - cmd := exec.Command(name, args...) - if opts != nil { - cmd.Stdout = opts.Stdout - cmd.Stderr = opts.Stderr - cmd.Stdin = opts.Stdin - - // If Env is nil, the new process uses the current process's - // environment. - // If we pass env vars we want to append them to the - // current process's environment. - cmd.Env = append(f.envRepository.List(), opts.Env...) - cmd.Dir = opts.Dir +// NewWithCmd ... +func NewWithCmd(cmd *exec.Cmd) *Model { + return &Model{ + cmd: cmd, } - return defaultCommand{cmd} } -// Command ... -type Command interface { - PrintableCommandArgs() string - Run() error - RunAndReturnExitCode() (int, error) - RunAndReturnTrimmedOutput() (string, error) - RunAndReturnTrimmedCombinedOutput() (string, error) - Start() error - Wait() error +// GetCmd ... +func (m *Model) GetCmd() *exec.Cmd { + return m.cmd } -type defaultCommand struct { - cmd *exec.Cmd +// SetDir ... +func (m *Model) SetDir(dir string) *Model { + m.cmd.Dir = dir + return m } -// PrintableCommandArgs ... -func (c defaultCommand) PrintableCommandArgs() string { - return printableCommandArgs(false, c.cmd.Args) +// SetEnvs ... +func (m *Model) SetEnvs(envs ...string) *Model { + m.cmd.Env = envs + return m +} + +// AppendEnvs - appends the envs to the current os.Environ() +// Calling this multiple times will NOT appens the envs one by one, +// only the last "envs" set will be appended to os.Environ()! +func (m *Model) AppendEnvs(envs ...string) *Model { + return m.SetEnvs(append(os.Environ(), envs...)...) +} + +// SetStdin ... +func (m *Model) SetStdin(in io.Reader) *Model { + m.cmd.Stdin = in + return m +} + +// SetStdout ... +func (m *Model) SetStdout(out io.Writer) *Model { + m.cmd.Stdout = out + return m +} + +// SetStderr ... +func (m *Model) SetStderr(err io.Writer) *Model { + m.cmd.Stderr = err + return m } // Run ... -func (c defaultCommand) Run() error { - return c.cmd.Run() +func (m Model) Run() error { + return m.cmd.Run() } // RunAndReturnExitCode ... -func (c defaultCommand) RunAndReturnExitCode() (int, error) { - err := c.cmd.Run() - exitCode := c.cmd.ProcessState.ExitCode() - return exitCode, err +func (m Model) RunAndReturnExitCode() (int, error) { + return RunCmdAndReturnExitCode(m.cmd) } // RunAndReturnTrimmedOutput ... -func (c defaultCommand) RunAndReturnTrimmedOutput() (string, error) { - outBytes, err := c.cmd.Output() - outStr := string(outBytes) - return strings.TrimSpace(outStr), err +func (m Model) RunAndReturnTrimmedOutput() (string, error) { + return RunCmdAndReturnTrimmedOutput(m.cmd) } // RunAndReturnTrimmedCombinedOutput ... -func (c defaultCommand) RunAndReturnTrimmedCombinedOutput() (string, error) { - outBytes, err := c.cmd.CombinedOutput() - outStr := string(outBytes) - return strings.TrimSpace(outStr), err +func (m Model) RunAndReturnTrimmedCombinedOutput() (string, error) { + return RunCmdAndReturnTrimmedCombinedOutput(m.cmd) } -// Start ... -func (c defaultCommand) Start() error { - return c.cmd.Start() +// PrintableCommandArgs ... +func (m Model) PrintableCommandArgs() string { + return PrintableCommandArgs(false, m.cmd.Args) } -// Wait ... -func (c defaultCommand) Wait() error { - return c.cmd.Wait() -} +// ---------- -func printableCommandArgs(isQuoteFirst bool, fullCommandArgs []string) string { - var cmdArgsDecorated []string +// PrintableCommandArgs ... +func PrintableCommandArgs(isQuoteFirst bool, fullCommandArgs []string) string { + cmdArgsDecorated := []string{} for idx, anArg := range fullCommandArgs { quotedArg := strconv.Quote(anArg) if idx == 0 && !isQuoteFirst { @@ -118,3 +134,119 @@ func printableCommandArgs(isQuoteFirst bool, fullCommandArgs []string) string { return strings.Join(cmdArgsDecorated, " ") } + +// RunCmdAndReturnExitCode ... +func RunCmdAndReturnExitCode(cmd *exec.Cmd) (exitCode int, err error) { + err = cmd.Run() + exitCode = cmd.ProcessState.ExitCode() + return +} + +// RunCmdAndReturnTrimmedOutput ... +func RunCmdAndReturnTrimmedOutput(cmd *exec.Cmd) (string, error) { + outBytes, err := cmd.Output() + outStr := string(outBytes) + return strings.TrimSpace(outStr), err +} + +// RunCmdAndReturnTrimmedCombinedOutput ... +func RunCmdAndReturnTrimmedCombinedOutput(cmd *exec.Cmd) (string, error) { + outBytes, err := cmd.CombinedOutput() + outStr := string(outBytes) + return strings.TrimSpace(outStr), err +} + +// RunCommandWithReaderAndWriters ... +func RunCommandWithReaderAndWriters(inReader io.Reader, outWriter, errWriter io.Writer, name string, args ...string) error { + cmd := exec.Command(name, args...) + cmd.Stdin = inReader + cmd.Stdout = outWriter + cmd.Stderr = errWriter + return cmd.Run() +} + +// RunCommandWithWriters ... +func RunCommandWithWriters(outWriter, errWriter io.Writer, name string, args ...string) error { + cmd := exec.Command(name, args...) + cmd.Stdout = outWriter + cmd.Stderr = errWriter + return cmd.Run() +} + +// RunCommandInDirWithEnvsAndReturnExitCode ... +func RunCommandInDirWithEnvsAndReturnExitCode(envs []string, dir, name string, args ...string) (int, error) { + cmd := exec.Command(name, args...) + cmd.Stdin = os.Stdin + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stderr + if dir != "" { + cmd.Dir = dir + } + if len(envs) > 0 { + cmd.Env = envs + } + + return RunCmdAndReturnExitCode(cmd) +} + +// RunCommandInDirAndReturnExitCode ... +func RunCommandInDirAndReturnExitCode(dir, name string, args ...string) (int, error) { + return RunCommandInDirWithEnvsAndReturnExitCode([]string{}, dir, name, args...) +} + +// RunCommandWithEnvsAndReturnExitCode ... +func RunCommandWithEnvsAndReturnExitCode(envs []string, name string, args ...string) (int, error) { + return RunCommandInDirWithEnvsAndReturnExitCode(envs, "", name, args...) +} + +// RunCommandInDir ... +func RunCommandInDir(dir, name string, args ...string) error { + cmd := exec.Command(name, args...) + cmd.Stdin = os.Stdin + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stderr + if dir != "" { + cmd.Dir = dir + } + return cmd.Run() +} + +// RunCommand ... +func RunCommand(name string, args ...string) error { + return RunCommandInDir("", name, args...) +} + +// RunCommandAndReturnStdout .. +func RunCommandAndReturnStdout(name string, args ...string) (string, error) { + cmd := exec.Command(name, args...) + return RunCmdAndReturnTrimmedOutput(cmd) +} + +// RunCommandInDirAndReturnCombinedStdoutAndStderr ... +func RunCommandInDirAndReturnCombinedStdoutAndStderr(dir, name string, args ...string) (string, error) { + cmd := exec.Command(name, args...) + if dir != "" { + cmd.Dir = dir + } + return RunCmdAndReturnTrimmedCombinedOutput(cmd) +} + +// RunCommandAndReturnCombinedStdoutAndStderr .. +func RunCommandAndReturnCombinedStdoutAndStderr(name string, args ...string) (string, error) { + return RunCommandInDirAndReturnCombinedStdoutAndStderr("", name, args...) +} + +// RunBashCommand ... +func RunBashCommand(cmdStr string) error { + return RunCommand("bash", "-c", cmdStr) +} + +// RunBashCommandLines ... +func RunBashCommandLines(cmdLines []string) error { + for _, aLine := range cmdLines { + if err := RunCommand("bash", "-c", aLine); err != nil { + return err + } + } + return nil +} diff --git a/vendor/github.com/bitrise-io/go-utils/command/file.go b/vendor/github.com/bitrise-io/go-utils/command/file.go index be29aa1..6b22172 100644 --- a/vendor/github.com/bitrise-io/go-utils/command/file.go +++ b/vendor/github.com/bitrise-io/go-utils/command/file.go @@ -2,7 +2,6 @@ package command import ( "errors" - "github.com/bitrise-io/go-utils/env" "os" "strings" @@ -21,7 +20,7 @@ func CopyFile(src, dst string) error { return errors.New("Source is a directory: " + src) } args := []string{src, dst} - return NewFactory(env.NewRepository()).Create("rsync", args, &Opts{Stderr: os.Stderr, Stdout: os.Stdout}).Run() + return RunCommand("rsync", args...) } // CopyDir ... @@ -30,7 +29,7 @@ func CopyDir(src, dst string, isOnlyContent bool) error { src = src + "/" } args := []string{"-ar", src, dst} - return NewFactory(env.NewRepository()).Create("rsync", args, &Opts{Stderr: os.Stderr, Stdout: os.Stdout}).Run() + return RunCommand("rsync", args...) } // RemoveDir ... diff --git a/vendor/github.com/bitrise-io/go-utils/fileutil/fileutil.go b/vendor/github.com/bitrise-io/go-utils/fileutil/fileutil.go index 3633e28..80c913b 100644 --- a/vendor/github.com/bitrise-io/go-utils/fileutil/fileutil.go +++ b/vendor/github.com/bitrise-io/go-utils/fileutil/fileutil.go @@ -7,56 +7,10 @@ import ( "io/ioutil" "log" "os" - "path/filepath" "github.com/bitrise-io/go-utils/pathutil" ) -// FileManager ... -type FileManager interface { - Remove(path string) error - RemoveAll(path string) error - Write(path string, value string, mode os.FileMode) error -} - -type fileManager struct{} - -// NewFileManager ... -func NewFileManager() FileManager { - return fileManager{} -} - -// Remove ... -func (fileManager) Remove(path string) error { - return os.Remove(path) -} - -// RemoveAll ... -func (fileManager) RemoveAll(path string) error { - return os.RemoveAll(path) -} - -// Write ... -func (fileManager) Write(path string, value string, mode os.FileMode) error { - if err := ensureSavePath(path); err != nil { - return err - } - - if err := WriteStringToFile(path, value); err != nil { - return err - } - - if err := os.Chmod(path, mode); err != nil { - return err - } - return nil -} - -func ensureSavePath(savePath string) error { - dirPath := filepath.Dir(savePath) - return os.MkdirAll(dirPath, 0700) -} - // WriteStringToFile ... func WriteStringToFile(pth string, fileCont string) error { return WriteBytesToFile(pth, []byte(fileCont)) diff --git a/vendor/github.com/bitrise-io/go-utils/log/defaultlogger.go b/vendor/github.com/bitrise-io/go-utils/log/defaultlogger.go new file mode 100644 index 0000000..0d2a307 --- /dev/null +++ b/vendor/github.com/bitrise-io/go-utils/log/defaultlogger.go @@ -0,0 +1,57 @@ +package log + +// DefaultLogger ... +type DefaultLogger struct { + ts bool +} + +// NewDefaultLogger ... +func NewDefaultLogger(withTimestamp bool) DefaultLogger { + return DefaultLogger{withTimestamp} +} + +// Donef ... +func (dl DefaultLogger) Donef(format string, v ...interface{}) { + fSelect(dl.ts, TDonef, Donef)(format, v...) +} + +// Successf ... +func (dl DefaultLogger) Successf(format string, v ...interface{}) { + fSelect(dl.ts, TSuccessf, Successf)(format, v...) +} + +// Infof ... +func (dl DefaultLogger) Infof(format string, v ...interface{}) { + fSelect(dl.ts, TInfof, Infof)(format, v...) +} + +// Printf ... +func (dl DefaultLogger) Printf(format string, v ...interface{}) { + fSelect(dl.ts, TPrintf, Printf)(format, v...) +} + +// Warnf ... +func (dl DefaultLogger) Warnf(format string, v ...interface{}) { + fSelect(dl.ts, TWarnf, Warnf)(format, v...) +} + +// Errorf ... +func (dl DefaultLogger) Errorf(format string, v ...interface{}) { + fSelect(dl.ts, TErrorf, Errorf)(format, v...) +} + +// Debugf ... +func (dl DefaultLogger) Debugf(format string, v ...interface{}) { + if enableDebugLog { + fSelect(dl.ts, TDebugf, Debugf)(format, v...) + } +} + +type logfunc func(string, ...interface{}) + +func fSelect(t bool, tf logfunc, f logfunc) logfunc { + if t { + return tf + } + return f +} diff --git a/vendor/github.com/bitrise-io/go-utils/log/dummylogger.go b/vendor/github.com/bitrise-io/go-utils/log/dummylogger.go new file mode 100644 index 0000000..54b0bb9 --- /dev/null +++ b/vendor/github.com/bitrise-io/go-utils/log/dummylogger.go @@ -0,0 +1,30 @@ +package log + +// DummyLogger ... +type DummyLogger struct{} + +// NewDummyLogger ... +func NewDummyLogger() DummyLogger { + return DummyLogger{} +} + +// Donef ... +func (dl DummyLogger) Donef(format string, v ...interface{}) {} + +// Successf ... +func (dl DummyLogger) Successf(format string, v ...interface{}) {} + +// Infof ... +func (dl DummyLogger) Infof(format string, v ...interface{}) {} + +// Printf ... +func (dl DummyLogger) Printf(format string, v ...interface{}) {} + +// Debugf ... +func (dl DummyLogger) Debugf(format string, v ...interface{}) {} + +// Warnf ... +func (dl DummyLogger) Warnf(format string, v ...interface{}) {} + +// Errorf ... +func (dl DummyLogger) Errorf(format string, v ...interface{}) {} diff --git a/vendor/github.com/bitrise-io/go-utils/log/json_logger.go b/vendor/github.com/bitrise-io/go-utils/log/json_logger.go new file mode 100644 index 0000000..31148b3 --- /dev/null +++ b/vendor/github.com/bitrise-io/go-utils/log/json_logger.go @@ -0,0 +1,33 @@ +package log + +import ( + "fmt" + "io" + "os" +) + +// JSONLoger ... +type JSONLoger struct { + writer io.Writer +} + +// NewJSONLoger ... +func NewJSONLoger(writer io.Writer) *JSONLoger { + return &JSONLoger{ + writer: writer, + } +} + +// NewDefaultJSONLoger ... +func NewDefaultJSONLoger() JSONLoger { + return JSONLoger{ + writer: os.Stdout, + } +} + +// Print ... +func (l JSONLoger) Print(f Formatable) { + if _, err := fmt.Fprint(l.writer, f.JSON()); err != nil { + fmt.Printf("failed to print message: %s, error: %s\n", f.JSON(), err) + } +} diff --git a/vendor/github.com/bitrise-io/go-utils/log/log.go b/vendor/github.com/bitrise-io/go-utils/log/log.go index 84bd490..1b69028 100644 --- a/vendor/github.com/bitrise-io/go-utils/log/log.go +++ b/vendor/github.com/bitrise-io/go-utils/log/log.go @@ -7,240 +7,28 @@ import ( "time" ) -// Logger ... -type Logger interface { - Infof(format string, v ...interface{}) - Warnf(format string, v ...interface{}) - Printf(format string, v ...interface{}) - Donef(format string, v ...interface{}) - Debugf(format string, v ...interface{}) - Errorf(format string, v ...interface{}) - TInfof(format string, v ...interface{}) - TWarnf(format string, v ...interface{}) - TPrintf(format string, v ...interface{}) - TDonef(format string, v ...interface{}) - TDebugf(format string, v ...interface{}) - TErrorf(format string, v ...interface{}) - Println() - EnableDebugLog(enable bool) -} - -const defaultTimeStampLayout = "15:04:05" - -type defaultLogger struct { - enableDebugLog bool - timestampLayout string - stdout io.Writer -} - -// NewLogger ... -func NewLogger() Logger { - return &defaultLogger{enableDebugLog: false, timestampLayout: defaultTimeStampLayout, stdout: os.Stdout} -} - -// EnableDebugLog ... -func (l *defaultLogger) EnableDebugLog(enable bool) { - l.enableDebugLog = enable -} - -// Infof ... -func (l *defaultLogger) Infof(format string, v ...interface{}) { - l.printf(infoSeverity, false, format, v...) -} - -// Warnf ... -func (l *defaultLogger) Warnf(format string, v ...interface{}) { - l.printf(warnSeverity, false, format, v...) -} - -// Printf ... -func (l *defaultLogger) Printf(format string, v ...interface{}) { - l.printf(normalSeverity, false, format, v...) -} - -// Donef ... -func (l *defaultLogger) Donef(format string, v ...interface{}) { - l.printf(doneSeverity, false, format, v...) -} - -// Debugf ... -func (l *defaultLogger) Debugf(format string, v ...interface{}) { - if l.enableDebugLog { - l.printf(debugSeverity, false, format, v...) - } -} - -// Errorf ... -func (l *defaultLogger) Errorf(format string, v ...interface{}) { - l.printf(errorSeverity, false, format, v...) -} - -// TInfof ... -func (l *defaultLogger) TInfof(format string, v ...interface{}) { - l.printf(infoSeverity, true, format, v...) -} - -// TWarnf ... -func (l *defaultLogger) TWarnf(format string, v ...interface{}) { - l.printf(warnSeverity, true, format, v...) -} - -// TPrintf ... -func (l *defaultLogger) TPrintf(format string, v ...interface{}) { - l.printf(normalSeverity, true, format, v...) -} - -// TDonef ... -func (l *defaultLogger) TDonef(format string, v ...interface{}) { - l.printf(doneSeverity, true, format, v...) -} - -// TDebugf ... -func (l *defaultLogger) TDebugf(format string, v ...interface{}) { - if l.enableDebugLog { - l.printf(debugSeverity, true, format, v...) - } -} - -// TErrorf ... -func (l *defaultLogger) TErrorf(format string, v ...interface{}) { - l.printf(errorSeverity, true, format, v...) -} - -// Println ... -func (l *defaultLogger) Println() { - fmt.Println() -} - -func (l *defaultLogger) timestampField() string { - currentTime := time.Now() - return fmt.Sprintf("[%s]", currentTime.Format(l.timestampLayout)) -} - -func (l *defaultLogger) prefixCurrentTime(message string) string { - return fmt.Sprintf("%s %s", l.timestampField(), message) -} +var outWriter io.Writer = os.Stdout -func (l *defaultLogger) createLogMsg(severity Severity, withTime bool, format string, v ...interface{}) string { - colorFunc := severityColorFuncMap[severity] - message := colorFunc(format, v...) - if withTime { - message = l.prefixCurrentTime(message) - } - - return message -} - -func (l *defaultLogger) printf(severity Severity, withTime bool, format string, v ...interface{}) { - message := l.createLogMsg(severity, withTime, format, v...) - if _, err := fmt.Fprintln(l.stdout, message); err != nil { - fmt.Printf("failed to print message: %s, error: %s\n", message, err) - } -} - -// RInfof ... -func RInfof(stepID string, tag string, data map[string]interface{}, format string, v ...interface{}) { - rprintf("info", stepID, tag, data, format, v...) -} - -// RWarnf ... -func RWarnf(stepID string, tag string, data map[string]interface{}, format string, v ...interface{}) { - rprintf("warn", stepID, tag, data, format, v...) -} - -// RErrorf ... -func RErrorf(stepID string, tag string, data map[string]interface{}, format string, v ...interface{}) { - rprintf("error", stepID, tag, data, format, v...) +// SetOutWriter ... +func SetOutWriter(writer io.Writer) { + outWriter = writer } -var deprecatedLogger = defaultLogger{stdout: os.Stdout, enableDebugLog: false, timestampLayout: defaultTimeStampLayout} +var enableDebugLog = false // SetEnableDebugLog ... -// Deprecated: use Logger instead. func SetEnableDebugLog(enable bool) { - deprecatedLogger.enableDebugLog = enable + enableDebugLog = enable } +var timestampLayout = "15:04:05" + // SetTimestampLayout ... -// Deprecated: use Logger instead. func SetTimestampLayout(layout string) { - deprecatedLogger.timestampLayout = layout -} - -// SetOutWriter ... -// Deprecated: use Logger for verification instead. -func SetOutWriter(writer io.Writer) { - deprecatedLogger.stdout = writer -} - -// Donef ... -// Deprecated: use Logger instead. -func Donef(format string, v ...interface{}) { - deprecatedLogger.Donef(format, v...) -} - -// Infof ... -// Deprecated: use Logger instead. -func Infof(format string, v ...interface{}) { - deprecatedLogger.Infof(format, v...) + timestampLayout = layout } -// Printf ... -// Deprecated: use Logger instead. -func Printf(format string, v ...interface{}) { - deprecatedLogger.Printf(format, v...) -} - -// Debugf ... -// Deprecated: use Logger instead. -func Debugf(format string, v ...interface{}) { - deprecatedLogger.Debugf(format, v...) -} - -// Warnf ... -// Deprecated: use Logger instead. -func Warnf(format string, v ...interface{}) { - deprecatedLogger.Warnf(format, v...) -} - -// Errorf ... -// Deprecated: use Logger instead. -func Errorf(format string, v ...interface{}) { - deprecatedLogger.Errorf(format, v...) -} - -// TDonef ... -// Deprecated: use Logger instead. -func TDonef(format string, v ...interface{}) { - deprecatedLogger.TDonef(format, v...) -} - -// TInfof ... -// Deprecated: use Logger instead. -func TInfof(format string, v ...interface{}) { - deprecatedLogger.TInfof(format, v...) -} - -// TPrintf ... -// Deprecated: use Logger instead. -func TPrintf(format string, v ...interface{}) { - deprecatedLogger.TPrintf(format, v...) -} - -// TDebugf ... -// Deprecated: use Logger instead. -func TDebugf(format string, v ...interface{}) { - deprecatedLogger.TDebugf(format, v...) -} - -// TWarnf ... -// Deprecated: use Logger instead. -func TWarnf(format string, v ...interface{}) { - deprecatedLogger.TWarnf(format, v...) -} - -// TErrorf ... -// Deprecated: use Logger instead. -func TErrorf(format string, v ...interface{}) { - deprecatedLogger.TErrorf(format, v...) +func timestampField() string { + currentTime := time.Now() + return fmt.Sprintf("[%s]", currentTime.Format(timestampLayout)) } diff --git a/vendor/github.com/bitrise-io/go-utils/log/logger.go b/vendor/github.com/bitrise-io/go-utils/log/logger.go new file mode 100644 index 0000000..4691122 --- /dev/null +++ b/vendor/github.com/bitrise-io/go-utils/log/logger.go @@ -0,0 +1,12 @@ +package log + +// Logger ... +type Logger interface { + Print(f Formatable) +} + +// Formatable ... +type Formatable interface { + String() string + JSON() string +} diff --git a/vendor/github.com/bitrise-io/go-utils/log/print.go b/vendor/github.com/bitrise-io/go-utils/log/print.go new file mode 100644 index 0000000..1c817c4 --- /dev/null +++ b/vendor/github.com/bitrise-io/go-utils/log/print.go @@ -0,0 +1,115 @@ +package log + +import ( + "fmt" +) + +func printf(severity Severity, withTime bool, format string, v ...interface{}) { + message := createLogMsg(severity, withTime, format, v...) + if _, err := fmt.Fprintln(outWriter, message); err != nil { + fmt.Printf("failed to print message: %s, error: %s\n", message, err) + } +} + +func createLogMsg(severity Severity, withTime bool, format string, v ...interface{}) string { + colorFunc := severityColorFuncMap[severity] + message := colorFunc(format, v...) + if withTime { + message = prefixCurrentTime(message) + } + + return message +} + +func prefixCurrentTime(message string) string { + return fmt.Sprintf("%s %s", timestampField(), message) +} + +// Successf ... +func Successf(format string, v ...interface{}) { + printf(successSeverity, false, format, v...) +} + +// Donef ... +func Donef(format string, v ...interface{}) { + Successf(format, v...) +} + +// Infof ... +func Infof(format string, v ...interface{}) { + printf(infoSeverity, false, format, v...) +} + +// Printf ... +func Printf(format string, v ...interface{}) { + printf(normalSeverity, false, format, v...) +} + +// Debugf ... +func Debugf(format string, v ...interface{}) { + if enableDebugLog { + printf(debugSeverity, false, format, v...) + } +} + +// Warnf ... +func Warnf(format string, v ...interface{}) { + printf(warnSeverity, false, format, v...) +} + +// Errorf ... +func Errorf(format string, v ...interface{}) { + printf(errorSeverity, false, format, v...) +} + +// TSuccessf ... +func TSuccessf(format string, v ...interface{}) { + printf(successSeverity, true, format, v...) +} + +// TDonef ... +func TDonef(format string, v ...interface{}) { + TSuccessf(format, v...) +} + +// TInfof ... +func TInfof(format string, v ...interface{}) { + printf(infoSeverity, true, format, v...) +} + +// TPrintf ... +func TPrintf(format string, v ...interface{}) { + printf(normalSeverity, true, format, v...) +} + +// TDebugf ... +func TDebugf(format string, v ...interface{}) { + if enableDebugLog { + printf(debugSeverity, true, format, v...) + } +} + +// TWarnf ... +func TWarnf(format string, v ...interface{}) { + printf(warnSeverity, true, format, v...) +} + +// TErrorf ... +func TErrorf(format string, v ...interface{}) { + printf(errorSeverity, true, format, v...) +} + +// RInfof ... +func RInfof(stepID string, tag string, data map[string]interface{}, format string, v ...interface{}) { + rprintf("info", stepID, tag, data, format, v...) +} + +// RWarnf ... +func RWarnf(stepID string, tag string, data map[string]interface{}, format string, v ...interface{}) { + rprintf("warn", stepID, tag, data, format, v...) +} + +// RErrorf ... +func RErrorf(stepID string, tag string, data map[string]interface{}, format string, v ...interface{}) { + rprintf("error", stepID, tag, data, format, v...) +} diff --git a/vendor/github.com/bitrise-io/go-utils/log/raw_logger.go b/vendor/github.com/bitrise-io/go-utils/log/raw_logger.go new file mode 100644 index 0000000..a673380 --- /dev/null +++ b/vendor/github.com/bitrise-io/go-utils/log/raw_logger.go @@ -0,0 +1,33 @@ +package log + +import ( + "fmt" + "io" + "os" +) + +// RawLogger ... +type RawLogger struct { + writer io.Writer +} + +// NewRawLogger ... +func NewRawLogger(writer io.Writer) *RawLogger { + return &RawLogger{ + writer: writer, + } +} + +// NewDefaultRawLogger ... +func NewDefaultRawLogger() RawLogger { + return RawLogger{ + writer: os.Stdout, + } +} + +// Print ... +func (l RawLogger) Print(f Formatable) { + if _, err := fmt.Fprintln(l.writer, f.String()); err != nil { + fmt.Printf("failed to print message: %s, error: %s\n", f.String(), err) + } +} diff --git a/vendor/github.com/bitrise-io/go-utils/log/severity.go b/vendor/github.com/bitrise-io/go-utils/log/severity.go index fc1fc96..4e7786d 100644 --- a/vendor/github.com/bitrise-io/go-utils/log/severity.go +++ b/vendor/github.com/bitrise-io/go-utils/log/severity.go @@ -10,26 +10,26 @@ const ( warnSeverity normalSeverity infoSeverity - doneSeverity + successSeverity debugSeverity ) type severityColorFunc colorstring.ColorfFunc var ( - doneSeverityColorFunc severityColorFunc = colorstring.Greenf - infoSeverityColorFunc severityColorFunc = colorstring.Bluef - normalSeverityColorFunc severityColorFunc = colorstring.NoColorf - debugSeverityColorFunc severityColorFunc = colorstring.Magentaf - warnSeverityColorFunc severityColorFunc = colorstring.Yellowf - errorSeverityColorFunc severityColorFunc = colorstring.Redf + successSeverityColorFunc severityColorFunc = colorstring.Greenf + infoSeverityColorFunc severityColorFunc = colorstring.Bluef + normalSeverityColorFunc severityColorFunc = colorstring.NoColorf + debugSeverityColorFunc severityColorFunc = colorstring.Magentaf + warnSeverityColorFunc severityColorFunc = colorstring.Yellowf + errorSeverityColorFunc severityColorFunc = colorstring.Redf ) var severityColorFuncMap = map[Severity]severityColorFunc{ - doneSeverity: doneSeverityColorFunc, - infoSeverity: infoSeverityColorFunc, - normalSeverity: normalSeverityColorFunc, - debugSeverity: debugSeverityColorFunc, - warnSeverity: warnSeverityColorFunc, - errorSeverity: errorSeverityColorFunc, + successSeverity: successSeverityColorFunc, + infoSeverity: infoSeverityColorFunc, + normalSeverity: normalSeverityColorFunc, + debugSeverity: debugSeverityColorFunc, + warnSeverity: warnSeverityColorFunc, + errorSeverity: errorSeverityColorFunc, } diff --git a/vendor/github.com/bitrise-io/go-utils/pathutil/pathutil.go b/vendor/github.com/bitrise-io/go-utils/pathutil/pathutil.go index aeb8e22..947c97c 100644 --- a/vendor/github.com/bitrise-io/go-utils/pathutil/pathutil.go +++ b/vendor/github.com/bitrise-io/go-utils/pathutil/pathutil.go @@ -10,25 +10,6 @@ import ( "strings" ) -// -// Path provider functions - -// PathProvider ... -type PathProvider interface { - CreateTempDir(prefix string) (string, error) -} - -type defaultPathProvider struct{} - -// NewPathProvider ... -func NewPathProvider() PathProvider { - return defaultPathProvider{} -} - -func (defaultPathProvider) CreateTempDir(prefix string) (string, error) { - return NormalizedOSTempDirPath(prefix) -} - // NormalizedOSTempDirPath ... // Creates a temp dir, and returns its path. // If tmpDirNamePrefix is provided it'll be used @@ -68,25 +49,6 @@ func EnsureDirExist(dir string) error { return nil } -// -// Path checker functions - -// PathChecker ... -type PathChecker interface { - IsPathExists(pth string) (bool, error) -} - -type defaultPathChecker struct{} - -// NewPathChecker ... -func NewPathChecker() PathChecker { - return defaultPathChecker{} -} - -func (c defaultPathChecker) IsPathExists(pth string) (bool, error) { - return IsPathExists(pth) -} - func genericIsPathExists(pth string) (os.FileInfo, bool, error) { if pth == "" { return nil, false, errors.New("No path provided") diff --git a/vendor/github.com/bitrise-io/go-utils/v2/LICENSE b/vendor/github.com/bitrise-io/go-utils/v2/LICENSE new file mode 100644 index 0000000..a6a5c39 --- /dev/null +++ b/vendor/github.com/bitrise-io/go-utils/v2/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2015 Bitrise + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/vendor/github.com/bitrise-io/go-utils/v2/command/command.go b/vendor/github.com/bitrise-io/go-utils/v2/command/command.go new file mode 100644 index 0000000..eedc628 --- /dev/null +++ b/vendor/github.com/bitrise-io/go-utils/v2/command/command.go @@ -0,0 +1,120 @@ +package command + +import ( + "io" + "os/exec" + "strconv" + "strings" + + "github.com/bitrise-io/go-utils/v2/env" +) + +// Opts ... +type Opts struct { + Stdout io.Writer + Stderr io.Writer + Stdin io.Reader + Env []string + Dir string +} + +// Factory ... +type Factory interface { + Create(name string, args []string, opts *Opts) Command +} + +type factory struct { + envRepository env.Repository +} + +// NewFactory ... +func NewFactory(envRepository env.Repository) Factory { + return factory{envRepository: envRepository} +} + +// Create ... +func (f factory) Create(name string, args []string, opts *Opts) Command { + cmd := exec.Command(name, args...) + if opts != nil { + cmd.Stdout = opts.Stdout + cmd.Stderr = opts.Stderr + cmd.Stdin = opts.Stdin + + // If Env is nil, the new process uses the current process's + // environment. + // If we pass env vars we want to append them to the + // current process's environment. + cmd.Env = append(f.envRepository.List(), opts.Env...) + cmd.Dir = opts.Dir + } + return command{cmd} +} + +// Command ... +type Command interface { + PrintableCommandArgs() string + Run() error + RunAndReturnExitCode() (int, error) + RunAndReturnTrimmedOutput() (string, error) + RunAndReturnTrimmedCombinedOutput() (string, error) + Start() error + Wait() error +} + +type command struct { + cmd *exec.Cmd +} + +// PrintableCommandArgs ... +func (c command) PrintableCommandArgs() string { + return printableCommandArgs(false, c.cmd.Args) +} + +// Run ... +func (c command) Run() error { + return c.cmd.Run() +} + +// RunAndReturnExitCode ... +func (c command) RunAndReturnExitCode() (int, error) { + err := c.cmd.Run() + exitCode := c.cmd.ProcessState.ExitCode() + return exitCode, err +} + +// RunAndReturnTrimmedOutput ... +func (c command) RunAndReturnTrimmedOutput() (string, error) { + outBytes, err := c.cmd.Output() + outStr := string(outBytes) + return strings.TrimSpace(outStr), err +} + +// RunAndReturnTrimmedCombinedOutput ... +func (c command) RunAndReturnTrimmedCombinedOutput() (string, error) { + outBytes, err := c.cmd.CombinedOutput() + outStr := string(outBytes) + return strings.TrimSpace(outStr), err +} + +// Start ... +func (c command) Start() error { + return c.cmd.Start() +} + +// Wait ... +func (c command) Wait() error { + return c.cmd.Wait() +} + +func printableCommandArgs(isQuoteFirst bool, fullCommandArgs []string) string { + var cmdArgsDecorated []string + for idx, anArg := range fullCommandArgs { + quotedArg := strconv.Quote(anArg) + if idx == 0 && !isQuoteFirst { + quotedArg = anArg + } + cmdArgsDecorated = append(cmdArgsDecorated, quotedArg) + } + + return strings.Join(cmdArgsDecorated, " ") +} diff --git a/vendor/github.com/bitrise-io/go-utils/env/env.go b/vendor/github.com/bitrise-io/go-utils/v2/env/env.go similarity index 73% rename from vendor/github.com/bitrise-io/go-utils/env/env.go rename to vendor/github.com/bitrise-io/go-utils/v2/env/env.go index 221f27d..85cf1ae 100644 --- a/vendor/github.com/bitrise-io/go-utils/env/env.go +++ b/vendor/github.com/bitrise-io/go-utils/v2/env/env.go @@ -32,27 +32,27 @@ type Repository interface { // NewRepository ... func NewRepository() Repository { - return defaultRepository{} + return repository{} } -type defaultRepository struct{} +type repository struct{} // Get ... -func (d defaultRepository) Get(key string) string { +func (d repository) Get(key string) string { return os.Getenv(key) } // Set ... -func (d defaultRepository) Set(key, value string) error { +func (d repository) Set(key, value string) error { return os.Setenv(key, value) } // Unset ... -func (d defaultRepository) Unset(key string) error { +func (d repository) Unset(key string) error { return os.Unsetenv(key) } // List ... -func (d defaultRepository) List() []string { +func (d repository) List() []string { return os.Environ() } diff --git a/vendor/github.com/bitrise-io/go-utils/v2/fileutil/fileutil.go b/vendor/github.com/bitrise-io/go-utils/v2/fileutil/fileutil.go new file mode 100644 index 0000000..c8835a4 --- /dev/null +++ b/vendor/github.com/bitrise-io/go-utils/v2/fileutil/fileutil.go @@ -0,0 +1,52 @@ +package fileutil + +import ( + fileutilV1 "github.com/bitrise-io/go-utils/fileutil" + "os" + "path/filepath" +) + +// FileManager ... +type FileManager interface { + Remove(path string) error + RemoveAll(path string) error + Write(path string, value string, mode os.FileMode) error +} + +type fileManager struct{} + +// NewFileManager ... +func NewFileManager() FileManager { + return fileManager{} +} + +// Remove ... +func (fileManager) Remove(path string) error { + return os.Remove(path) +} + +// RemoveAll ... +func (fileManager) RemoveAll(path string) error { + return os.RemoveAll(path) +} + +// Write ... +func (fileManager) Write(path string, value string, mode os.FileMode) error { + if err := ensureSavePath(path); err != nil { + return err + } + + if err := fileutilV1.WriteStringToFile(path, value); err != nil { + return err + } + + if err := os.Chmod(path, mode); err != nil { + return err + } + return nil +} + +func ensureSavePath(savePath string) error { + dirPath := filepath.Dir(savePath) + return os.MkdirAll(dirPath, 0700) +} diff --git a/vendor/github.com/bitrise-io/go-utils/v2/log/log.go b/vendor/github.com/bitrise-io/go-utils/v2/log/log.go new file mode 100644 index 0000000..0c77db9 --- /dev/null +++ b/vendor/github.com/bitrise-io/go-utils/v2/log/log.go @@ -0,0 +1,139 @@ +package log + +import ( + "fmt" + "io" + "os" + "time" +) + +// Logger ... +type Logger interface { + Infof(format string, v ...interface{}) + Warnf(format string, v ...interface{}) + Printf(format string, v ...interface{}) + Donef(format string, v ...interface{}) + Debugf(format string, v ...interface{}) + Errorf(format string, v ...interface{}) + TInfof(format string, v ...interface{}) + TWarnf(format string, v ...interface{}) + TPrintf(format string, v ...interface{}) + TDonef(format string, v ...interface{}) + TDebugf(format string, v ...interface{}) + TErrorf(format string, v ...interface{}) + Println() + EnableDebugLog(enable bool) +} + +const defaultTimeStampLayout = "15:04:05" + +type logger struct { + enableDebugLog bool + timestampLayout string + stdout io.Writer +} + +// NewLogger ... +func NewLogger() Logger { + return &logger{enableDebugLog: false, timestampLayout: defaultTimeStampLayout, stdout: os.Stdout} +} + +// EnableDebugLog ... +func (l *logger) EnableDebugLog(enable bool) { + l.enableDebugLog = enable +} + +// Infof ... +func (l *logger) Infof(format string, v ...interface{}) { + l.printf(infoSeverity, false, format, v...) +} + +// Warnf ... +func (l *logger) Warnf(format string, v ...interface{}) { + l.printf(warnSeverity, false, format, v...) +} + +// Printf ... +func (l *logger) Printf(format string, v ...interface{}) { + l.printf(normalSeverity, false, format, v...) +} + +// Donef ... +func (l *logger) Donef(format string, v ...interface{}) { + l.printf(doneSeverity, false, format, v...) +} + +// Debugf ... +func (l *logger) Debugf(format string, v ...interface{}) { + if l.enableDebugLog { + l.printf(debugSeverity, false, format, v...) + } +} + +// Errorf ... +func (l *logger) Errorf(format string, v ...interface{}) { + l.printf(errorSeverity, false, format, v...) +} + +// TInfof ... +func (l *logger) TInfof(format string, v ...interface{}) { + l.printf(infoSeverity, true, format, v...) +} + +// TWarnf ... +func (l *logger) TWarnf(format string, v ...interface{}) { + l.printf(warnSeverity, true, format, v...) +} + +// TPrintf ... +func (l *logger) TPrintf(format string, v ...interface{}) { + l.printf(normalSeverity, true, format, v...) +} + +// TDonef ... +func (l *logger) TDonef(format string, v ...interface{}) { + l.printf(doneSeverity, true, format, v...) +} + +// TDebugf ... +func (l *logger) TDebugf(format string, v ...interface{}) { + if l.enableDebugLog { + l.printf(debugSeverity, true, format, v...) + } +} + +// TErrorf ... +func (l *logger) TErrorf(format string, v ...interface{}) { + l.printf(errorSeverity, true, format, v...) +} + +// Println ... +func (l *logger) Println() { + fmt.Println() +} + +func (l *logger) timestampField() string { + currentTime := time.Now() + return fmt.Sprintf("[%s]", currentTime.Format(l.timestampLayout)) +} + +func (l *logger) prefixCurrentTime(message string) string { + return fmt.Sprintf("%s %s", l.timestampField(), message) +} + +func (l *logger) createLogMsg(severity Severity, withTime bool, format string, v ...interface{}) string { + colorFunc := severityColorFuncMap[severity] + message := colorFunc(format, v...) + if withTime { + message = l.prefixCurrentTime(message) + } + + return message +} + +func (l *logger) printf(severity Severity, withTime bool, format string, v ...interface{}) { + message := l.createLogMsg(severity, withTime, format, v...) + if _, err := fmt.Fprintln(l.stdout, message); err != nil { + fmt.Printf("failed to print message: %s, error: %s\n", message, err) + } +} diff --git a/vendor/github.com/bitrise-io/go-utils/v2/log/severity.go b/vendor/github.com/bitrise-io/go-utils/v2/log/severity.go new file mode 100644 index 0000000..fc1fc96 --- /dev/null +++ b/vendor/github.com/bitrise-io/go-utils/v2/log/severity.go @@ -0,0 +1,35 @@ +package log + +import "github.com/bitrise-io/go-utils/colorstring" + +// Severity ... +type Severity uint8 + +const ( + errorSeverity Severity = iota + warnSeverity + normalSeverity + infoSeverity + doneSeverity + debugSeverity +) + +type severityColorFunc colorstring.ColorfFunc + +var ( + doneSeverityColorFunc severityColorFunc = colorstring.Greenf + infoSeverityColorFunc severityColorFunc = colorstring.Bluef + normalSeverityColorFunc severityColorFunc = colorstring.NoColorf + debugSeverityColorFunc severityColorFunc = colorstring.Magentaf + warnSeverityColorFunc severityColorFunc = colorstring.Yellowf + errorSeverityColorFunc severityColorFunc = colorstring.Redf +) + +var severityColorFuncMap = map[Severity]severityColorFunc{ + doneSeverity: doneSeverityColorFunc, + infoSeverity: infoSeverityColorFunc, + normalSeverity: normalSeverityColorFunc, + debugSeverity: debugSeverityColorFunc, + warnSeverity: warnSeverityColorFunc, + errorSeverity: errorSeverityColorFunc, +} diff --git a/vendor/github.com/bitrise-io/go-utils/v2/pathutil/pathutil.go b/vendor/github.com/bitrise-io/go-utils/v2/pathutil/pathutil.go new file mode 100644 index 0000000..86241c4 --- /dev/null +++ b/vendor/github.com/bitrise-io/go-utils/v2/pathutil/pathutil.go @@ -0,0 +1,39 @@ +package pathutil + +import ( + pathutilV1 "github.com/bitrise-io/go-utils/pathutil" +) + +// PathProvider ... +type PathProvider interface { + CreateTempDir(prefix string) (string, error) +} + +type pathProvider struct{} + +// NewPathProvider ... +func NewPathProvider() PathProvider { + return pathProvider{} +} + +// CreateTempDir ... +func (pathProvider) CreateTempDir(prefix string) (string, error) { + return pathutilV1.NormalizedOSTempDirPath(prefix) +} + +// PathChecker ... +type PathChecker interface { + IsPathExists(pth string) (bool, error) +} + +type pathChecker struct{} + +// NewPathChecker ... +func NewPathChecker() PathChecker { + return pathChecker{} +} + +// IsPathExists ... +func (c pathChecker) IsPathExists(pth string) (bool, error) { + return pathutilV1.IsPathExists(pth) +} diff --git a/vendor/github.com/bitrise-io/go-utils/ziputil/ziputil.go b/vendor/github.com/bitrise-io/go-utils/ziputil/ziputil.go index 18f2f1d..e96ae01 100644 --- a/vendor/github.com/bitrise-io/go-utils/ziputil/ziputil.go +++ b/vendor/github.com/bitrise-io/go-utils/ziputil/ziputil.go @@ -2,7 +2,6 @@ package ziputil import ( "fmt" - "github.com/bitrise-io/go-utils/env" "log" "os" "path/filepath" @@ -63,14 +62,11 @@ func ZipDirs(sourceDirPths []string, destinationZipPth string) error { } func internalZipDir(destinationZipPth, zipTarget, workDir string) error { - opts := &command.Opts{Dir: workDir} - factory := command.NewFactory(env.NewRepository()) - // -r - Travel the directory structure recursively // -T - Test the integrity of the new zip file // -y - Store symbolic links as such in the zip archive, instead of compressing and storing the file referred to by the link - cmd := factory.Create("/usr/bin/zip", []string{"-rTy", destinationZipPth, zipTarget}, opts) - + cmd := command.New("/usr/bin/zip", "-rTy", destinationZipPth, zipTarget) + cmd.SetDir(workDir) if out, err := cmd.RunAndReturnTrimmedCombinedOutput(); err != nil { return fmt.Errorf("command: (%s) failed, output: %s, error: %s", cmd.PrintableCommandArgs(), out, err) } @@ -93,15 +89,12 @@ func ZipFiles(sourceFilePths []string, destinationZipPth string) error { } } - factory := command.NewFactory(env.NewRepository()) - // -T - Test the integrity of the new zip file // -y - Store symbolic links as such in the zip archive, instead of compressing and storing the file referred to by the link // -j - Do not recreate the directory structure inside the zip. Kind of equivalent of copying all the files in one folder and zipping it. parameters := []string{"-Tyj", destinationZipPth} parameters = append(parameters, sourceFilePths...) - - cmd := factory.Create("/usr/bin/zip", parameters, nil) + cmd := command.New("/usr/bin/zip", parameters...) if out, err := cmd.RunAndReturnTrimmedCombinedOutput(); err != nil { return fmt.Errorf("command: (%s) failed, output: %s, error: %s", cmd.PrintableCommandArgs(), out, err) } @@ -111,8 +104,7 @@ func ZipFiles(sourceFilePths []string, destinationZipPth string) error { // UnZip ... func UnZip(zip, intoDir string) error { - factory := command.NewFactory(env.NewRepository()) - cmd := factory.Create("/usr/bin/unzip", []string{zip, "-d", intoDir}, nil) + cmd := command.New("/usr/bin/unzip", zip, "-d", intoDir) if out, err := cmd.RunAndReturnTrimmedCombinedOutput(); err != nil { return fmt.Errorf("command: (%s) failed, output: %s, error: %s", cmd.PrintableCommandArgs(), out, err) } diff --git a/vendor/github.com/bitrise-io/go-xcode/certificateutil/util.go b/vendor/github.com/bitrise-io/go-xcode/certificateutil/util.go index df964d3..e53e734 100644 --- a/vendor/github.com/bitrise-io/go-xcode/certificateutil/util.go +++ b/vendor/github.com/bitrise-io/go-xcode/certificateutil/util.go @@ -9,15 +9,11 @@ import ( "strings" "github.com/bitrise-io/go-utils/command" - "github.com/bitrise-io/go-utils/env" "github.com/bitrise-io/go-utils/fileutil" "github.com/bitrise-io/pkcs12" "github.com/pkg/errors" ) -// TODO remove -var temporaryFactory = command.NewFactory(env.NewRepository()) - func commandError(printableCmd string, cmdOut string, cmdErr error) error { return errors.Wrapf(cmdErr, "%s failed, out: %s", printableCmd, cmdOut) } @@ -98,7 +94,7 @@ func installedCodesigningCertificateNamesFromOutput(out string) ([]string, error // InstalledCodesigningCertificateNames ... func InstalledCodesigningCertificateNames() ([]string, error) { - cmd := temporaryFactory.Create("security", []string{"find-identity", "-v", "-p", "codesigning"}, nil) + cmd := command.New("security", "find-identity", "-v", "-p", "codesigning") out, err := cmd.RunAndReturnTrimmedCombinedOutput() if err != nil { return nil, commandError(cmd.PrintableCommandArgs(), out, err) @@ -108,7 +104,7 @@ func InstalledCodesigningCertificateNames() ([]string, error) { // InstalledMacAppStoreCertificateNames ... func InstalledMacAppStoreCertificateNames() ([]string, error) { - cmd := temporaryFactory.Create("security", []string{"find-identity", "-v", "-p", "macappstore"}, nil) + cmd := command.New("security", "find-identity", "-v", "-p", "macappstore") out, err := cmd.RunAndReturnTrimmedCombinedOutput() if err != nil { return nil, commandError(cmd.PrintableCommandArgs(), out, err) @@ -158,7 +154,7 @@ func InstalledMacAppStoreCertificates() ([]*x509.Certificate, error) { func getInstalledCertificatesByNameSlice(certificateNames []string) ([]*x509.Certificate, error) { certificates := []*x509.Certificate{} for _, name := range certificateNames { - cmd := temporaryFactory.Create("security", []string{"find-certificate", "-c", name, "-p", "-a"}, nil) + cmd := command.New("security", "find-certificate", "-c", name, "-p", "-a") out, err := cmd.RunAndReturnTrimmedCombinedOutput() if err != nil { return nil, commandError(cmd.PrintableCommandArgs(), out, err) diff --git a/vendor/github.com/bitrise-io/go-xcode/utility/utility.go b/vendor/github.com/bitrise-io/go-xcode/utility/utility.go index f833cfb..5d605c5 100644 --- a/vendor/github.com/bitrise-io/go-xcode/utility/utility.go +++ b/vendor/github.com/bitrise-io/go-xcode/utility/utility.go @@ -41,8 +41,8 @@ func getXcodeVersionFromXcodebuildOutput(outStr string) (models.XcodebuildVersio } // GetXcodeVersion ... -func GetXcodeVersion(cmdFactory command.Factory) (models.XcodebuildVersionModel, error) { - cmd := cmdFactory.Create("xcodebuild", []string{"-version"}, nil) +func GetXcodeVersion() (models.XcodebuildVersionModel, error) { + cmd := command.New("xcodebuild", "-version") outStr, err := cmd.RunAndReturnTrimmedCombinedOutput() if err != nil { return models.XcodebuildVersionModel{}, fmt.Errorf("xcodebuild -version failed, err: %s, details: %s", err, outStr) diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/autocodesign.go b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/autocodesign.go similarity index 94% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/autocodesign.go rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/autocodesign.go index 012db43..452b26b 100644 --- a/vendor/github.com/bitrise-io/go-xcode/autocodesign/autocodesign.go +++ b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/autocodesign.go @@ -10,9 +10,9 @@ import ( "math/big" "github.com/bitrise-io/go-utils/log" - "github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnect" "github.com/bitrise-io/go-xcode/certificateutil" "github.com/bitrise-io/go-xcode/devportalservice" + "github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnect" "github.com/bitrise-io/go-xcode/xcodeproject/serialized" ) @@ -179,7 +179,6 @@ func (m codesignAssetManager) EnsureCodesignAssets(appLayout AppLayout, opts Cod devPortalDeviceIDs = append(devPortalDeviceIDs, devPortalDevice.ID) devPortalDeviceUDIDs = append(devPortalDeviceUDIDs, devPortalDevice.Attributes.UDID) } - } codesignAssetsByDistributionType := map[DistributionType]AppCodesignAssets{} @@ -191,6 +190,15 @@ func (m codesignAssetManager) EnsureCodesignAssets(appLayout AppLayout, opts Cod } printExistingCodesignAssets(localCodesignAssets, distrType) + if localCodesignAssets != nil { + // Did not check if selected certificate is installed yet + fmt.Println() + log.Infof("Installing certificate") + log.Printf("certificate: %s", localCodesignAssets.Certificate.CommonName) + if err := m.assetWriter.InstallCertificate(localCodesignAssets.Certificate); err != nil { + return nil, fmt.Errorf("failed to install certificate: %w", err) + } + } finalAssets := localCodesignAssets if missingAppLayout != nil { @@ -213,7 +221,7 @@ func (m codesignAssetManager) EnsureCodesignAssets(appLayout AppLayout, opts Cod // Install new certificates and profiles fmt.Println() - log.Infof("Install certificates and profiles") + log.Infof("Installing certificates and profiles") if err := m.assetWriter.Write(map[DistributionType]AppCodesignAssets{distrType: *newCodesignAssets}); err != nil { return nil, fmt.Errorf("failed to install codesigning files: %w", err) } diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/certdownloader/certdownloader.go b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/certdownloader/certdownloader.go similarity index 97% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/certdownloader/certdownloader.go rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/certdownloader/certdownloader.go index 09d1626..7c67cf8 100644 --- a/vendor/github.com/bitrise-io/go-xcode/autocodesign/certdownloader/certdownloader.go +++ b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/certdownloader/certdownloader.go @@ -10,8 +10,8 @@ import ( "github.com/bitrise-io/go-steputils/input" "github.com/bitrise-io/go-utils/filedownloader" "github.com/bitrise-io/go-utils/log" - "github.com/bitrise-io/go-xcode/autocodesign" "github.com/bitrise-io/go-xcode/certificateutil" + "github.com/bitrise-io/go-xcode/v2/autocodesign" ) // CertificateAndPassphrase contains a p12 file URL and passphrase diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/certificates.go b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/certificates.go similarity index 99% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/certificates.go rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/certificates.go index 6ea26f4..5d06a69 100644 --- a/vendor/github.com/bitrise-io/go-xcode/autocodesign/certificates.go +++ b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/certificates.go @@ -5,8 +5,8 @@ import ( "strings" "github.com/bitrise-io/go-utils/log" - "github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnect" "github.com/bitrise-io/go-xcode/certificateutil" + "github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnect" ) func selectCertificatesAndDistributionTypes(certificateSource DevPortalClient, certs []certificateutil.CertificateInfoModel, distribution DistributionType, signUITestTargets bool, verboseLog bool) (map[appstoreconnect.CertificateType][]Certificate, []DistributionType, error) { diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/codesignasset/writer.go b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/codesignasset/writer.go similarity index 94% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/codesignasset/writer.go rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/codesignasset/writer.go index c9ca434..7118a28 100644 --- a/vendor/github.com/bitrise-io/go-xcode/autocodesign/codesignasset/writer.go +++ b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/codesignasset/writer.go @@ -9,10 +9,10 @@ import ( "github.com/bitrise-io/go-utils/log" "github.com/bitrise-io/go-utils/pathutil" - "github.com/bitrise-io/go-xcode/autocodesign" - "github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnect" - "github.com/bitrise-io/go-xcode/autocodesign/keychain" "github.com/bitrise-io/go-xcode/certificateutil" + "github.com/bitrise-io/go-xcode/v2/autocodesign" + "github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnect" + "github.com/bitrise-io/go-xcode/v2/autocodesign/keychain" ) // Writer ... diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/devices.go b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devices.go similarity index 98% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/devices.go rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devices.go index 2aac566..6995a7b 100644 --- a/vendor/github.com/bitrise-io/go-xcode/autocodesign/devices.go +++ b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devices.go @@ -5,8 +5,8 @@ import ( "fmt" "github.com/bitrise-io/go-utils/log" - "github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnect" "github.com/bitrise-io/go-xcode/devportalservice" + "github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnect" ) // EnsureTestDevices fetches devices from Apple, and register missing devices. diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnect/appstoreconnect.go b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnect/appstoreconnect.go similarity index 100% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnect/appstoreconnect.go rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnect/appstoreconnect.go diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnect/bundleids.go b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnect/bundleids.go similarity index 100% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnect/bundleids.go rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnect/bundleids.go diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnect/capabilities.go b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnect/capabilities.go similarity index 100% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnect/capabilities.go rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnect/capabilities.go diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnect/certificates.go b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnect/certificates.go similarity index 100% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnect/certificates.go rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnect/certificates.go diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnect/devices.go b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnect/devices.go similarity index 100% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnect/devices.go rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnect/devices.go diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnect/error.go b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnect/error.go similarity index 100% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnect/error.go rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnect/error.go diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnect/jwt.go b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnect/jwt.go similarity index 100% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnect/jwt.go rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnect/jwt.go diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnect/profiles.go b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnect/profiles.go similarity index 100% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnect/profiles.go rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnect/profiles.go diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnect/provisioning.go b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnect/provisioning.go similarity index 100% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnect/provisioning.go rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnect/provisioning.go diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnect/time.go b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnect/time.go similarity index 100% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnect/time.go rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnect/time.go diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnectclient/certificates.go b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnectclient/certificates.go similarity index 95% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnectclient/certificates.go rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnectclient/certificates.go index 1fa85a0..752177b 100644 --- a/vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnectclient/certificates.go +++ b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnectclient/certificates.go @@ -5,9 +5,9 @@ import ( "fmt" "math/big" - "github.com/bitrise-io/go-xcode/autocodesign" - "github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnect" "github.com/bitrise-io/go-xcode/certificateutil" + "github.com/bitrise-io/go-xcode/v2/autocodesign" + "github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnect" ) // CertificateSource ... diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnectclient/client.go b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnectclient/client.go similarity index 81% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnectclient/client.go rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnectclient/client.go index 92008c6..f7c4fe6 100644 --- a/vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnectclient/client.go +++ b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnectclient/client.go @@ -4,8 +4,8 @@ package appstoreconnectclient import ( - "github.com/bitrise-io/go-xcode/autocodesign" - "github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnect" + "github.com/bitrise-io/go-xcode/v2/autocodesign" + "github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnect" ) // Client ... diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnectclient/devices.go b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnectclient/devices.go similarity index 96% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnectclient/devices.go rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnectclient/devices.go index 38e6d2b..233456c 100644 --- a/vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnectclient/devices.go +++ b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnectclient/devices.go @@ -5,8 +5,8 @@ import ( "fmt" "net/http" - "github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnect" "github.com/bitrise-io/go-xcode/devportalservice" + "github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnect" ) // DeviceClient ... diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnectclient/profiles.go b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnectclient/profiles.go similarity index 98% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnectclient/profiles.go rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnectclient/profiles.go index 9fccfd1..be177a0 100644 --- a/vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnectclient/profiles.go +++ b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnectclient/profiles.go @@ -7,8 +7,8 @@ import ( "strings" "github.com/bitrise-io/go-utils/log" - "github.com/bitrise-io/go-xcode/autocodesign" - "github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnect" + "github.com/bitrise-io/go-xcode/v2/autocodesign" + "github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnect" ) // APIProfile ... diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/devportalclient.go b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/devportalclient.go similarity index 90% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/devportalclient.go rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/devportalclient.go index 1940ff6..9f75a18 100644 --- a/vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/devportalclient.go +++ b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/devportalclient.go @@ -5,14 +5,14 @@ import ( "fmt" "net/http" - "github.com/bitrise-io/go-utils/log" "github.com/bitrise-io/go-utils/retry" + "github.com/bitrise-io/go-utils/v2/log" "github.com/bitrise-io/go-xcode/appleauth" - "github.com/bitrise-io/go-xcode/autocodesign" - "github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnect" - "github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnectclient" - "github.com/bitrise-io/go-xcode/autocodesign/devportalclient/spaceship" "github.com/bitrise-io/go-xcode/devportalservice" + "github.com/bitrise-io/go-xcode/v2/autocodesign" + "github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnect" + "github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnectclient" + "github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/spaceship" ) const ( diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/spaceship/certificates.go b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/spaceship/certificates.go similarity index 95% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/spaceship/certificates.go rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/spaceship/certificates.go index e4a1998..83bd219 100644 --- a/vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/spaceship/certificates.go +++ b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/spaceship/certificates.go @@ -6,9 +6,9 @@ import ( "fmt" "math/big" - "github.com/bitrise-io/go-xcode/autocodesign" - "github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnect" "github.com/bitrise-io/go-xcode/certificateutil" + "github.com/bitrise-io/go-xcode/v2/autocodesign" + "github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnect" ) // CertificateSource ... diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/spaceship/devices.go b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/spaceship/devices.go similarity index 97% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/spaceship/devices.go rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/spaceship/devices.go index 052b931..dde09fb 100644 --- a/vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/spaceship/devices.go +++ b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/spaceship/devices.go @@ -7,8 +7,8 @@ import ( "strings" "github.com/bitrise-io/go-utils/log" - "github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnect" "github.com/bitrise-io/go-xcode/devportalservice" + "github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnect" ) // DeviceClient ... diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/spaceship/profiles.go b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/spaceship/profiles.go similarity index 98% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/spaceship/profiles.go rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/spaceship/profiles.go index d5b9e30..e0f4e99 100644 --- a/vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/spaceship/profiles.go +++ b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/spaceship/profiles.go @@ -8,8 +8,8 @@ import ( "time" "github.com/bitrise-io/go-utils/log" - "github.com/bitrise-io/go-xcode/autocodesign" - "github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnect" + "github.com/bitrise-io/go-xcode/v2/autocodesign" + "github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnect" ) const ( diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/spaceship/spaceship.go b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/spaceship/spaceship.go similarity index 96% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/spaceship/spaceship.go rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/spaceship/spaceship.go index 016fabe..fca0230 100644 --- a/vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/spaceship/spaceship.go +++ b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/spaceship/spaceship.go @@ -15,13 +15,13 @@ import ( "regexp" "strings" - "github.com/bitrise-io/go-steputils/ruby" - "github.com/bitrise-io/go-utils/command" - "github.com/bitrise-io/go-utils/env" + "github.com/bitrise-io/go-steputils/v2/ruby" "github.com/bitrise-io/go-utils/errorutil" "github.com/bitrise-io/go-utils/log" + "github.com/bitrise-io/go-utils/v2/command" + "github.com/bitrise-io/go-utils/v2/env" "github.com/bitrise-io/go-xcode/appleauth" - "github.com/bitrise-io/go-xcode/autocodesign" + "github.com/bitrise-io/go-xcode/v2/autocodesign" ) //go:embed spaceship diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/spaceship/spaceship/Gemfile b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/spaceship/spaceship/Gemfile similarity index 100% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/spaceship/spaceship/Gemfile rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/spaceship/spaceship/Gemfile diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/spaceship/spaceship/Gemfile.lock b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/spaceship/spaceship/Gemfile.lock similarity index 100% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/spaceship/spaceship/Gemfile.lock rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/spaceship/spaceship/Gemfile.lock diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/spaceship/spaceship/app.rb b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/spaceship/spaceship/app.rb similarity index 100% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/spaceship/spaceship/app.rb rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/spaceship/spaceship/app.rb diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/spaceship/spaceship/certificates.rb b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/spaceship/spaceship/certificates.rb similarity index 100% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/spaceship/spaceship/certificates.rb rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/spaceship/spaceship/certificates.rb diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/spaceship/spaceship/devices.rb b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/spaceship/spaceship/devices.rb similarity index 100% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/spaceship/spaceship/devices.rb rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/spaceship/spaceship/devices.rb diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/spaceship/spaceship/log.rb b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/spaceship/spaceship/log.rb similarity index 100% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/spaceship/spaceship/log.rb rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/spaceship/spaceship/log.rb diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/spaceship/spaceship/main.rb b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/spaceship/spaceship/main.rb similarity index 100% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/spaceship/spaceship/main.rb rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/spaceship/spaceship/main.rb diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/spaceship/spaceship/portal/app_client.rb b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/spaceship/spaceship/portal/app_client.rb similarity index 100% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/spaceship/spaceship/portal/app_client.rb rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/spaceship/spaceship/portal/app_client.rb diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/spaceship/spaceship/portal/auth_client.rb b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/spaceship/spaceship/portal/auth_client.rb similarity index 100% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/spaceship/spaceship/portal/auth_client.rb rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/spaceship/spaceship/portal/auth_client.rb diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/spaceship/spaceship/portal/certificate_client.rb b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/spaceship/spaceship/portal/certificate_client.rb similarity index 100% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/spaceship/spaceship/portal/certificate_client.rb rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/spaceship/spaceship/portal/certificate_client.rb diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/spaceship/spaceship/portal/common.rb b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/spaceship/spaceship/portal/common.rb similarity index 100% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/spaceship/spaceship/portal/common.rb rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/spaceship/spaceship/portal/common.rb diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/spaceship/spaceship/profiles.rb b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/spaceship/spaceship/profiles.rb similarity index 100% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/devportalclient/spaceship/spaceship/profiles.rb rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/spaceship/spaceship/profiles.rb diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/entitlement.go b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/entitlement.go similarity index 98% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/entitlement.go rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/entitlement.go index ea5ea7d..6a94f03 100644 --- a/vendor/github.com/bitrise-io/go-xcode/autocodesign/entitlement.go +++ b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/entitlement.go @@ -6,7 +6,7 @@ import ( "github.com/bitrise-io/go-utils/log" "github.com/bitrise-io/go-utils/sliceutil" - "github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnect" + "github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnect" "github.com/bitrise-io/go-xcode/xcodeproject/serialized" ) diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/errors.go b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/errors.go similarity index 96% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/errors.go rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/errors.go index 04eebed..3a95d80 100644 --- a/vendor/github.com/bitrise-io/go-xcode/autocodesign/errors.go +++ b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/errors.go @@ -3,7 +3,7 @@ package autocodesign import ( "fmt" - "github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnect" + "github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnect" ) // DetailedError ... diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/keychain/keychain.go b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/keychain/keychain.go similarity index 98% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/keychain/keychain.go rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/keychain/keychain.go index ed078c6..a11543f 100644 --- a/vendor/github.com/bitrise-io/go-xcode/autocodesign/keychain/keychain.go +++ b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/keychain/keychain.go @@ -6,11 +6,11 @@ import ( "path/filepath" "strings" - "github.com/bitrise-io/go-steputils/stepconf" - "github.com/bitrise-io/go-utils/command" + "github.com/bitrise-io/go-steputils/v2/stepconf" "github.com/bitrise-io/go-utils/errorutil" "github.com/bitrise-io/go-utils/fileutil" "github.com/bitrise-io/go-utils/pathutil" + "github.com/bitrise-io/go-utils/v2/command" "github.com/bitrise-io/go-xcode/certificateutil" "github.com/hashicorp/go-version" ) diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/localcodesignasset/localcodesignasset.go b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/localcodesignasset/localcodesignasset.go similarity index 96% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/localcodesignasset/localcodesignasset.go rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/localcodesignasset/localcodesignasset.go index 5f5a615..6c0587c 100644 --- a/vendor/github.com/bitrise-io/go-xcode/autocodesign/localcodesignasset/localcodesignasset.go +++ b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/localcodesignasset/localcodesignasset.go @@ -3,8 +3,8 @@ package localcodesignasset import ( "fmt" - "github.com/bitrise-io/go-xcode/autocodesign" - "github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnect" + "github.com/bitrise-io/go-xcode/v2/autocodesign" + "github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnect" ) // Manager ... diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/localcodesignasset/profile.go b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/localcodesignasset/profile.go similarity index 88% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/localcodesignasset/profile.go rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/localcodesignasset/profile.go index b050b2a..2b70c64 100644 --- a/vendor/github.com/bitrise-io/go-xcode/autocodesign/localcodesignasset/profile.go +++ b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/localcodesignasset/profile.go @@ -1,8 +1,8 @@ package localcodesignasset import ( - "github.com/bitrise-io/go-xcode/autocodesign" - "github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnect" + "github.com/bitrise-io/go-xcode/v2/autocodesign" + "github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnect" ) // Profile ... diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/localcodesignasset/profileconverter.go b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/localcodesignasset/profileconverter.go similarity index 92% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/localcodesignasset/profileconverter.go rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/localcodesignasset/profileconverter.go index 031a6a1..4904cbb 100644 --- a/vendor/github.com/bitrise-io/go-xcode/autocodesign/localcodesignasset/profileconverter.go +++ b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/localcodesignasset/profileconverter.go @@ -3,9 +3,9 @@ package localcodesignasset import ( "io/ioutil" - "github.com/bitrise-io/go-xcode/autocodesign" - "github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnect" "github.com/bitrise-io/go-xcode/profileutil" + "github.com/bitrise-io/go-xcode/v2/autocodesign" + "github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnect" ) // ProvisioningProfileConverter ... diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/localcodesignasset/profilelookup.go b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/localcodesignasset/profilelookup.go similarity index 98% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/localcodesignasset/profilelookup.go rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/localcodesignasset/profilelookup.go index 12eda24..9c54c11 100644 --- a/vendor/github.com/bitrise-io/go-xcode/autocodesign/localcodesignasset/profilelookup.go +++ b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/localcodesignasset/profilelookup.go @@ -6,8 +6,8 @@ import ( "time" "github.com/bitrise-io/go-utils/sliceutil" - "github.com/bitrise-io/go-xcode/autocodesign" "github.com/bitrise-io/go-xcode/profileutil" + "github.com/bitrise-io/go-xcode/v2/autocodesign" ) func findProfile(localProfiles []profileutil.ProvisioningProfileInfoModel, platform autocodesign.Platform, distributionType autocodesign.DistributionType, bundleID string, entitlements autocodesign.Entitlements, minProfileDaysValid int, certSerials []string, deviceIDs []string) *profileutil.ProvisioningProfileInfoModel { diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/localcodesignasset/profileprovider.go b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/localcodesignasset/profileprovider.go similarity index 100% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/localcodesignasset/profileprovider.go rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/localcodesignasset/profileprovider.go diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/localcodesignasset/utils.go b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/localcodesignasset/utils.go similarity index 81% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/localcodesignasset/utils.go rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/localcodesignasset/utils.go index 7f3fecd..cb8e495 100644 --- a/vendor/github.com/bitrise-io/go-xcode/autocodesign/localcodesignasset/utils.go +++ b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/localcodesignasset/utils.go @@ -1,8 +1,8 @@ package localcodesignasset import ( - "github.com/bitrise-io/go-xcode/autocodesign" - "github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnect" + "github.com/bitrise-io/go-xcode/v2/autocodesign" + "github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnect" ) func certificateSerials(certsByType map[appstoreconnect.CertificateType][]autocodesign.Certificate, distrType autocodesign.DistributionType) []string { diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/mock_AssetWriter.go b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/mock_AssetWriter.go similarity index 100% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/mock_AssetWriter.go rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/mock_AssetWriter.go diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/mock_CertificateProvider.go b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/mock_CertificateProvider.go similarity index 100% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/mock_CertificateProvider.go rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/mock_CertificateProvider.go diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/mock_DevPortalClient.go b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/mock_DevPortalClient.go similarity index 98% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/mock_DevPortalClient.go rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/mock_DevPortalClient.go index a938870..7aabbe2 100644 --- a/vendor/github.com/bitrise-io/go-xcode/autocodesign/mock_DevPortalClient.go +++ b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/mock_DevPortalClient.go @@ -5,7 +5,7 @@ package autocodesign import ( big "math/big" - appstoreconnect "github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnect" + appstoreconnect "github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnect" devportalservice "github.com/bitrise-io/go-xcode/devportalservice" diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/mock_LocalCodeSignAssetManager.go b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/mock_LocalCodeSignAssetManager.go similarity index 94% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/mock_LocalCodeSignAssetManager.go rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/mock_LocalCodeSignAssetManager.go index dfc097f..804faf7 100644 --- a/vendor/github.com/bitrise-io/go-xcode/autocodesign/mock_LocalCodeSignAssetManager.go +++ b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/mock_LocalCodeSignAssetManager.go @@ -3,7 +3,7 @@ package autocodesign import ( - appstoreconnect "github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnect" + appstoreconnect "github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnect" mock "github.com/stretchr/testify/mock" ) diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/mock_Profile.go b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/mock_Profile.go similarity index 96% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/mock_Profile.go rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/mock_Profile.go index e59acfe..f67a4fd 100644 --- a/vendor/github.com/bitrise-io/go-xcode/autocodesign/mock_Profile.go +++ b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/mock_Profile.go @@ -3,7 +3,7 @@ package autocodesign import ( - appstoreconnect "github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnect" + appstoreconnect "github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnect" mock "github.com/stretchr/testify/mock" ) diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/models.go b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/models.go similarity index 95% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/models.go rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/models.go index b8e9013..2fa7208 100644 --- a/vendor/github.com/bitrise-io/go-xcode/autocodesign/models.go +++ b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/models.go @@ -1,7 +1,7 @@ package autocodesign import ( - "github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnect" + "github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnect" ) // CertificateTypeByDistribution ... diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/profiles.go b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/profiles.go similarity index 99% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/profiles.go rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/profiles.go index 9af61dc..a84679d 100644 --- a/vendor/github.com/bitrise-io/go-xcode/autocodesign/profiles.go +++ b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/profiles.go @@ -9,8 +9,8 @@ import ( "github.com/bitrise-io/go-utils/log" "github.com/bitrise-io/go-utils/retry" "github.com/bitrise-io/go-utils/sliceutil" - "github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnect" "github.com/bitrise-io/go-xcode/profileutil" + "github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnect" "github.com/bitrise-io/go-xcode/xcodeproject/serialized" ) diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/projectmanager/projecthelper.go b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/projectmanager/projecthelper.go similarity index 99% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/projectmanager/projecthelper.go rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/projectmanager/projecthelper.go index 0a21c81..821d6f9 100644 --- a/vendor/github.com/bitrise-io/go-xcode/autocodesign/projectmanager/projecthelper.go +++ b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/projectmanager/projecthelper.go @@ -12,7 +12,7 @@ import ( "github.com/bitrise-io/go-utils/log" "github.com/bitrise-io/go-utils/pathutil" "github.com/bitrise-io/go-utils/sliceutil" - "github.com/bitrise-io/go-xcode/autocodesign" + "github.com/bitrise-io/go-xcode/v2/autocodesign" "github.com/bitrise-io/go-xcode/xcodeproject/schemeint" "github.com/bitrise-io/go-xcode/xcodeproject/serialized" "github.com/bitrise-io/go-xcode/xcodeproject/xcodeproj" diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/projectmanager/projectmanager.go b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/projectmanager/projectmanager.go similarity index 99% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/projectmanager/projectmanager.go rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/projectmanager/projectmanager.go index e9d8c5a..ecb3938 100644 --- a/vendor/github.com/bitrise-io/go-xcode/autocodesign/projectmanager/projectmanager.go +++ b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/projectmanager/projectmanager.go @@ -9,7 +9,7 @@ import ( "fmt" "github.com/bitrise-io/go-utils/log" - "github.com/bitrise-io/go-xcode/autocodesign" + "github.com/bitrise-io/go-xcode/v2/autocodesign" ) // Project ... diff --git a/vendor/github.com/bitrise-io/go-xcode/autocodesign/utils.go b/vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/utils.go similarity index 100% rename from vendor/github.com/bitrise-io/go-xcode/autocodesign/utils.go rename to vendor/github.com/bitrise-io/go-xcode/v2/autocodesign/utils.go diff --git a/vendor/github.com/bitrise-io/go-xcode/codesign/archive.go b/vendor/github.com/bitrise-io/go-xcode/v2/codesign/archive.go similarity index 87% rename from vendor/github.com/bitrise-io/go-xcode/codesign/archive.go rename to vendor/github.com/bitrise-io/go-xcode/v2/codesign/archive.go index da99dab..fea3a0b 100644 --- a/vendor/github.com/bitrise-io/go-xcode/codesign/archive.go +++ b/vendor/github.com/bitrise-io/go-xcode/v2/codesign/archive.go @@ -1,8 +1,8 @@ package codesign import ( - "github.com/bitrise-io/go-xcode/autocodesign" - "github.com/bitrise-io/go-xcode/xcarchive" + "github.com/bitrise-io/go-xcode/v2/autocodesign" + "github.com/bitrise-io/go-xcode/v2/xcarchive" ) // Archive ... diff --git a/vendor/github.com/bitrise-io/go-xcode/codesign/codesign.go b/vendor/github.com/bitrise-io/go-xcode/v2/codesign/codesign.go similarity index 96% rename from vendor/github.com/bitrise-io/go-xcode/codesign/codesign.go rename to vendor/github.com/bitrise-io/go-xcode/v2/codesign/codesign.go index 32aff1d..24b077a 100644 --- a/vendor/github.com/bitrise-io/go-xcode/codesign/codesign.go +++ b/vendor/github.com/bitrise-io/go-xcode/v2/codesign/codesign.go @@ -4,13 +4,13 @@ import ( "errors" "fmt" - "github.com/bitrise-io/go-utils/log" + "github.com/bitrise-io/go-utils/v2/log" "github.com/bitrise-io/go-xcode/appleauth" - "github.com/bitrise-io/go-xcode/autocodesign" - "github.com/bitrise-io/go-xcode/autocodesign/devportalclient" - "github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnect" - "github.com/bitrise-io/go-xcode/autocodesign/projectmanager" "github.com/bitrise-io/go-xcode/devportalservice" + "github.com/bitrise-io/go-xcode/v2/autocodesign" + "github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient" + "github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnect" + "github.com/bitrise-io/go-xcode/v2/autocodesign/projectmanager" ) // AuthType ... @@ -271,7 +271,7 @@ func (m *Manager) downloadAndInstallCertificates() error { return fmt.Errorf("no valid development type certificate uploaded") } - log.Warnf("no valid %s type certificate uploaded", certificateType) + m.logger.Warnf("no valid %s type certificate uploaded", certificateType) } m.logger.Infof("Installing downloaded certificates:") diff --git a/vendor/github.com/bitrise-io/go-xcode/codesign/inputparse.go b/vendor/github.com/bitrise-io/go-xcode/v2/codesign/inputparse.go similarity index 91% rename from vendor/github.com/bitrise-io/go-xcode/codesign/inputparse.go rename to vendor/github.com/bitrise-io/go-xcode/v2/codesign/inputparse.go index 60b65e8..cac172a 100644 --- a/vendor/github.com/bitrise-io/go-xcode/codesign/inputparse.go +++ b/vendor/github.com/bitrise-io/go-xcode/v2/codesign/inputparse.go @@ -4,12 +4,12 @@ import ( "fmt" "strings" - "github.com/bitrise-io/go-steputils/stepconf" - "github.com/bitrise-io/go-utils/command" + "github.com/bitrise-io/go-steputils/v2/stepconf" "github.com/bitrise-io/go-utils/sliceutil" - "github.com/bitrise-io/go-xcode/autocodesign" - "github.com/bitrise-io/go-xcode/autocodesign/certdownloader" - "github.com/bitrise-io/go-xcode/autocodesign/keychain" + "github.com/bitrise-io/go-utils/v2/command" + "github.com/bitrise-io/go-xcode/v2/autocodesign" + "github.com/bitrise-io/go-xcode/v2/autocodesign/certdownloader" + "github.com/bitrise-io/go-xcode/v2/autocodesign/keychain" ) // Input ... diff --git a/vendor/github.com/bitrise-io/go-xcode/v2/xcarchive/ios.go b/vendor/github.com/bitrise-io/go-xcode/v2/xcarchive/ios.go new file mode 100644 index 0000000..5fef1d1 --- /dev/null +++ b/vendor/github.com/bitrise-io/go-xcode/v2/xcarchive/ios.go @@ -0,0 +1,46 @@ +package xcarchive + +import ( + "fmt" + "github.com/bitrise-io/go-xcode/v2/autocodesign" + "github.com/bitrise-io/go-xcode/xcarchive" +) + +// IosArchive ... +type IosArchive struct { + xcarchive.IosArchive +} + +// Platform ... +func (archive IosArchive) Platform() (autocodesign.Platform, error) { + platformName := archive.Application.InfoPlist["DTPlatformName"] + switch platformName { + case "iphoneos": + return autocodesign.IOS, nil + case "appletvos": + return autocodesign.TVOS, nil + default: + return "", fmt.Errorf("unsupported platform found: %s", platformName) + } +} + +// ReadCodesignParameters ... +func (archive IosArchive) ReadCodesignParameters() (*autocodesign.AppLayout, error) { + platform, err := archive.Platform() + if err != nil { + return nil, err + } + + bundleIDEntitlementsMap := archive.BundleIDEntitlementsMap() + + entitlementsMap := map[string]autocodesign.Entitlements{} + for bundleID, entitlements := range bundleIDEntitlementsMap { + entitlementsMap[bundleID] = autocodesign.Entitlements(entitlements) + } + + return &autocodesign.AppLayout{ + Platform: platform, + EntitlementsByArchivableTargetBundleID: entitlementsMap, + UITestTargetBundleIDs: nil, + }, nil +} diff --git a/vendor/github.com/bitrise-io/go-xcode/xcconfig/xcconfig.go b/vendor/github.com/bitrise-io/go-xcode/v2/xcconfig/xcconfig.go similarity index 90% rename from vendor/github.com/bitrise-io/go-xcode/xcconfig/xcconfig.go rename to vendor/github.com/bitrise-io/go-xcode/v2/xcconfig/xcconfig.go index a1c9a27..24cc426 100644 --- a/vendor/github.com/bitrise-io/go-xcode/xcconfig/xcconfig.go +++ b/vendor/github.com/bitrise-io/go-xcode/v2/xcconfig/xcconfig.go @@ -2,8 +2,8 @@ package xcconfig import ( "fmt" - "github.com/bitrise-io/go-utils/fileutil" - "github.com/bitrise-io/go-utils/pathutil" + "github.com/bitrise-io/go-utils/v2/fileutil" + "github.com/bitrise-io/go-utils/v2/pathutil" "path/filepath" ) diff --git a/vendor/github.com/bitrise-io/go-xcode/xcarchive/entitlements.go b/vendor/github.com/bitrise-io/go-xcode/xcarchive/entitlements.go index c29e4ce..806aefa 100644 --- a/vendor/github.com/bitrise-io/go-xcode/xcarchive/entitlements.go +++ b/vendor/github.com/bitrise-io/go-xcode/xcarchive/entitlements.go @@ -4,7 +4,6 @@ import ( "path/filepath" "github.com/bitrise-io/go-utils/command" - "github.com/bitrise-io/go-utils/env" "github.com/bitrise-io/go-xcode/plistutil" ) @@ -29,8 +28,7 @@ func getEntitlements(basePath, executableRelativePath string) (plistutil.PlistDa } func entitlementsFromExecutable(basePath, executableRelativePath string) (*plistutil.PlistData, error) { - factory := command.NewFactory(env.NewRepository()) - cmd := factory.Create("codesign", []string{"--display", "--entitlements", ":-", filepath.Join(basePath, executableRelativePath)}, nil) + cmd := command.New("codesign", "--display", "--entitlements", ":-", filepath.Join(basePath, executableRelativePath)) entitlementsString, err := cmd.RunAndReturnTrimmedOutput() if err != nil { return nil, err diff --git a/vendor/github.com/bitrise-io/go-xcode/xcarchive/ios.go b/vendor/github.com/bitrise-io/go-xcode/xcarchive/ios.go index 2033202..e978703 100644 --- a/vendor/github.com/bitrise-io/go-xcode/xcarchive/ios.go +++ b/vendor/github.com/bitrise-io/go-xcode/xcarchive/ios.go @@ -6,12 +6,12 @@ import ( "path/filepath" "github.com/bitrise-io/go-utils/pathutil" - "github.com/bitrise-io/go-xcode/autocodesign" "github.com/bitrise-io/go-xcode/plistutil" "github.com/bitrise-io/go-xcode/profileutil" ) -type iosBaseApplication struct { +// IosBaseApplication ... +type IosBaseApplication struct { Path string InfoPlist plistutil.PlistData Entitlements plistutil.PlistData @@ -19,23 +19,24 @@ type iosBaseApplication struct { } // BundleIdentifier ... -func (app iosBaseApplication) BundleIdentifier() string { +func (app IosBaseApplication) BundleIdentifier() string { bundleID, _ := app.InfoPlist.GetString("CFBundleIdentifier") return bundleID } -func newIosBaseApplication(path string) (iosBaseApplication, error) { +// NewIosBaseApplication ... +func NewIosBaseApplication(path string) (IosBaseApplication, error) { infoPlist := plistutil.PlistData{} { infoPlistPath := filepath.Join(path, "Info.plist") if exist, err := pathutil.IsPathExists(infoPlistPath); err != nil { - return iosBaseApplication{}, fmt.Errorf("failed to check if Info.plist exists at: %s, error: %s", infoPlistPath, err) + return IosBaseApplication{}, fmt.Errorf("failed to check if Info.plist exists at: %s, error: %s", infoPlistPath, err) } else if !exist { - return iosBaseApplication{}, fmt.Errorf("Info.plist not exists at: %s", infoPlistPath) + return IosBaseApplication{}, fmt.Errorf("Info.plist not exists at: %s", infoPlistPath) } plist, err := plistutil.NewPlistDataFromFile(infoPlistPath) if err != nil { - return iosBaseApplication{}, err + return IosBaseApplication{}, err } infoPlist = plist } @@ -44,14 +45,14 @@ func newIosBaseApplication(path string) (iosBaseApplication, error) { { provisioningProfilePath := filepath.Join(path, "embedded.mobileprovision") if exist, err := pathutil.IsPathExists(provisioningProfilePath); err != nil { - return iosBaseApplication{}, fmt.Errorf("failed to check if profile exists at: %s, error: %s", provisioningProfilePath, err) + return IosBaseApplication{}, fmt.Errorf("failed to check if profile exists at: %s, error: %s", provisioningProfilePath, err) } else if !exist { - return iosBaseApplication{}, fmt.Errorf("profile not exists at: %s", provisioningProfilePath) + return IosBaseApplication{}, fmt.Errorf("profile not exists at: %s", provisioningProfilePath) } profile, err := profileutil.NewProvisioningProfileInfoFromFile(provisioningProfilePath) if err != nil { - return iosBaseApplication{}, err + return IosBaseApplication{}, err } provisioningProfile = profile } @@ -59,10 +60,10 @@ func newIosBaseApplication(path string) (iosBaseApplication, error) { executable := executableNameFromInfoPlist(infoPlist) entitlements, err := getEntitlements(path, executable) if err != nil { - return iosBaseApplication{}, err + return IosBaseApplication{}, err } - return iosBaseApplication{ + return IosBaseApplication{ Path: path, InfoPlist: infoPlist, Entitlements: entitlements, @@ -72,12 +73,12 @@ func newIosBaseApplication(path string) (iosBaseApplication, error) { // IosExtension ... type IosExtension struct { - iosBaseApplication + IosBaseApplication } // NewIosExtension ... func NewIosExtension(path string) (IosExtension, error) { - baseApp, err := newIosBaseApplication(path) + baseApp, err := NewIosBaseApplication(path) if err != nil { return IosExtension{}, err } @@ -89,18 +90,18 @@ func NewIosExtension(path string) (IosExtension, error) { // IosWatchApplication ... type IosWatchApplication struct { - iosBaseApplication + IosBaseApplication Extensions []IosExtension } // IosClipApplication ... type IosClipApplication struct { - iosBaseApplication + IosBaseApplication } // NewIosWatchApplication ... func NewIosWatchApplication(path string) (IosWatchApplication, error) { - baseApp, err := newIosBaseApplication(path) + baseApp, err := NewIosBaseApplication(path) if err != nil { return IosWatchApplication{}, err } @@ -121,26 +122,26 @@ func NewIosWatchApplication(path string) (IosWatchApplication, error) { } return IosWatchApplication{ - iosBaseApplication: baseApp, + IosBaseApplication: baseApp, Extensions: extensions, }, nil } // NewIosClipApplication ... func NewIosClipApplication(path string) (IosClipApplication, error) { - baseApp, err := newIosBaseApplication(path) + baseApp, err := NewIosBaseApplication(path) if err != nil { return IosClipApplication{}, err } return IosClipApplication{ - iosBaseApplication: baseApp, + IosBaseApplication: baseApp, }, nil } // IosApplication ... type IosApplication struct { - iosBaseApplication + IosBaseApplication WatchApplication *IosWatchApplication ClipApplication *IosClipApplication Extensions []IosExtension @@ -148,7 +149,7 @@ type IosApplication struct { // NewIosApplication ... func NewIosApplication(path string) (IosApplication, error) { - baseApp, err := newIosBaseApplication(path) + baseApp, err := NewIosBaseApplication(path) if err != nil { return IosApplication{}, err } @@ -205,7 +206,7 @@ func NewIosApplication(path string) (IosApplication, error) { } return IosApplication{ - iosBaseApplication: baseApp, + IosBaseApplication: baseApp, WatchApplication: watchApp, ClipApplication: clipApp, Extensions: extensions, @@ -373,19 +374,6 @@ func (archive IosArchive) FindDSYMs() ([]string, []string, error) { return findDSYMs(archive.Path) } -// Platform ... -func (archive IosArchive) Platform() (autocodesign.Platform, error) { - platformName := archive.Application.InfoPlist["DTPlatformName"] - switch platformName { - case "iphoneos": - return autocodesign.IOS, nil - case "appletvos": - return autocodesign.TVOS, nil - default: - return "", fmt.Errorf("unsupported platform found: %s", platformName) - } -} - // TeamID ... func (archive IosArchive) TeamID() (string, error) { bundleIDProfileInfoMap := archive.BundleIDProfileInfoMap() @@ -394,24 +382,3 @@ func (archive IosArchive) TeamID() (string, error) { } return "", errors.New("team id not found") } - -// ReadCodesignParameters ... -func (archive IosArchive) ReadCodesignParameters() (*autocodesign.AppLayout, error) { - platform, err := archive.Platform() - if err != nil { - return nil, err - } - - bundleIDEntitlementsMap := archive.BundleIDEntitlementsMap() - - entitlementsMap := map[string]autocodesign.Entitlements{} - for bundleID, entitlements := range bundleIDEntitlementsMap { - entitlementsMap[bundleID] = autocodesign.Entitlements(entitlements) - } - - return &autocodesign.AppLayout{ - Platform: platform, - EntitlementsByArchivableTargetBundleID: entitlementsMap, - UITestTargetBundleIDs: nil, - }, nil -} diff --git a/vendor/github.com/bitrise-io/go-xcode/xcodebuild/build.go b/vendor/github.com/bitrise-io/go-xcode/xcodebuild/build.go index 562c614..de4291c 100644 --- a/vendor/github.com/bitrise-io/go-xcode/xcodebuild/build.go +++ b/vendor/github.com/bitrise-io/go-xcode/xcodebuild/build.go @@ -2,6 +2,7 @@ package xcodebuild import ( "os" + "os/exec" "github.com/bitrise-io/go-utils/command" ) @@ -39,8 +40,6 @@ type Action string // CommandBuilder ... type CommandBuilder struct { - commandFactory command.Factory - projectPath string isWorkspace bool scheme string @@ -66,12 +65,11 @@ type CommandBuilder struct { } // NewCommandBuilder ... -func NewCommandBuilder(projectPath string, isWorkspace bool, action Action, commandFactory command.Factory) *CommandBuilder { +func NewCommandBuilder(projectPath string, isWorkspace bool, action Action) *CommandBuilder { return &CommandBuilder{ - commandFactory: commandFactory, - projectPath: projectPath, - isWorkspace: isWorkspace, - action: action, + projectPath: projectPath, + isWorkspace: isWorkspace, + action: action, } } @@ -141,8 +139,8 @@ func (c *CommandBuilder) SetDisableCodesign(disable bool) *CommandBuilder { return c } -func (c *CommandBuilder) args() []string { - var slice []string +func (c *CommandBuilder) cmdSlice() []string { + slice := []string{toolName} if c.projectPath != "" { if c.isWorkspace { @@ -205,21 +203,30 @@ func (c *CommandBuilder) args() []string { return slice } +// PrintableCmd ... +func (c CommandBuilder) PrintableCmd() string { + cmdSlice := c.cmdSlice() + return command.PrintableCommandArgs(false, cmdSlice) +} + // Command ... -func (c CommandBuilder) Command(opts *command.Opts) command.Command { - return c.commandFactory.Create(toolName, c.args(), opts) +func (c CommandBuilder) Command() *command.Model { + cmdSlice := c.cmdSlice() + return command.New(cmdSlice[0], cmdSlice[1:]...) } -// PrintableCmd ... -func (c CommandBuilder) PrintableCmd() string { - return c.Command(nil).PrintableCommandArgs() +// ExecCommand ... +func (c CommandBuilder) ExecCommand() *exec.Cmd { + command := c.Command() + return command.GetCmd() } // Run ... func (c CommandBuilder) Run() error { - command := c.Command(&command.Opts{ - Stdout: os.Stdout, - Stderr: os.Stderr, - }) + command := c.Command() + + command.SetStdout(os.Stdout) + command.SetStderr(os.Stderr) + return command.Run() } diff --git a/vendor/github.com/bitrise-io/go-xcode/xcodebuild/export.go b/vendor/github.com/bitrise-io/go-xcode/xcodebuild/export.go index 8f654bb..eafbdf3 100644 --- a/vendor/github.com/bitrise-io/go-xcode/xcodebuild/export.go +++ b/vendor/github.com/bitrise-io/go-xcode/xcodebuild/export.go @@ -4,6 +4,7 @@ import ( "bytes" "io" "os" + "os/exec" "github.com/bitrise-io/go-utils/command" ) @@ -17,8 +18,6 @@ xcodebuild -exportArchive \ // ExportCommandModel ... type ExportCommandModel struct { - commandFactory command.Factory - archivePath string exportDir string exportOptionsPlist string @@ -26,10 +25,8 @@ type ExportCommandModel struct { } // NewExportCommand ... -func NewExportCommand(commandFactory command.Factory) *ExportCommandModel { - return &ExportCommandModel{ - commandFactory: commandFactory, - } +func NewExportCommand() *ExportCommandModel { + return &ExportCommandModel{} } // SetArchivePath ... @@ -56,8 +53,8 @@ func (c *ExportCommandModel) SetAuthentication(authenticationParams Authenticati return c } -func (c ExportCommandModel) args() []string { - slice := []string{"-exportArchive"} +func (c ExportCommandModel) cmdSlice() []string { + slice := []string{toolName, "-exportArchive"} if c.archivePath != "" { slice = append(slice, "-archivePath", c.archivePath) } @@ -77,35 +74,43 @@ func (c ExportCommandModel) args() []string { return slice } +// PrintableCmd ... +func (c ExportCommandModel) PrintableCmd() string { + cmdSlice := c.cmdSlice() + return command.PrintableCommandArgs(false, cmdSlice) +} + // Command ... -func (c ExportCommandModel) Command(opts *command.Opts) command.Command { - return c.commandFactory.Create(toolName, c.args(), opts) +func (c ExportCommandModel) Command() *command.Model { + cmdSlice := c.cmdSlice() + return command.New(cmdSlice[0], cmdSlice[1:]...) } -// PrintableCmd ... -func (c ExportCommandModel) PrintableCmd() string { - return c.Command(nil).PrintableCommandArgs() +// Cmd ... +func (c ExportCommandModel) Cmd() *exec.Cmd { + command := c.Command() + return command.GetCmd() } // Run ... func (c ExportCommandModel) Run() error { - command := c.Command(&command.Opts{ - Stdout: os.Stdout, - Stderr: os.Stderr, - }) + command := c.Command() + + command.SetStdout(os.Stdout) + command.SetStderr(os.Stderr) return command.Run() } // RunAndReturnOutput ... func (c ExportCommandModel) RunAndReturnOutput() (string, error) { + command := c.Command() + var outBuffer bytes.Buffer outWriter := io.MultiWriter(&outBuffer, os.Stdout) - command := c.Command(&command.Opts{ - Stdout: outWriter, - Stderr: outWriter, - }) + command.SetStdout(outWriter) + command.SetStderr(outWriter) err := command.Run() out := outBuffer.String() diff --git a/vendor/github.com/bitrise-io/go-xcode/xcodebuild/legacy_export.go b/vendor/github.com/bitrise-io/go-xcode/xcodebuild/legacy_export.go index 9e96280..2f46aaf 100644 --- a/vendor/github.com/bitrise-io/go-xcode/xcodebuild/legacy_export.go +++ b/vendor/github.com/bitrise-io/go-xcode/xcodebuild/legacy_export.go @@ -2,6 +2,7 @@ package xcodebuild import ( "os" + "os/exec" "github.com/bitrise-io/go-utils/command" ) @@ -18,8 +19,6 @@ xcodebuild -exportArchive \ // LegacyExportCommandModel ... type LegacyExportCommandModel struct { - commandFactory command.Factory - exportFormat string archivePath string exportPath string @@ -27,10 +26,8 @@ type LegacyExportCommandModel struct { } // NewLegacyExportCommand ... -func NewLegacyExportCommand(commandFactory command.Factory) *LegacyExportCommandModel { - return &LegacyExportCommandModel{ - commandFactory: commandFactory, - } +func NewLegacyExportCommand() *LegacyExportCommandModel { + return &LegacyExportCommandModel{} } // SetExportFormat ... @@ -57,8 +54,8 @@ func (c *LegacyExportCommandModel) SetExportProvisioningProfileName(exportProvis return c } -func (c LegacyExportCommandModel) args() []string { - slice := []string{"-exportArchive"} +func (c LegacyExportCommandModel) cmdSlice() []string { + slice := []string{toolName, "-exportArchive"} if c.exportFormat != "" { slice = append(slice, "-exportFormat", c.exportFormat) } @@ -74,21 +71,30 @@ func (c LegacyExportCommandModel) args() []string { return slice } +// PrintableCmd ... +func (c LegacyExportCommandModel) PrintableCmd() string { + cmdSlice := c.cmdSlice() + return command.PrintableCommandArgs(false, cmdSlice) +} + // Command ... -func (c LegacyExportCommandModel) Command(opts *command.Opts) command.Command { - return c.commandFactory.Create(toolName, c.args(), opts) +func (c LegacyExportCommandModel) Command() *command.Model { + cmdSlice := c.cmdSlice() + return command.New(cmdSlice[0], cmdSlice[1:]...) } -// PrintableCmd ... -func (c LegacyExportCommandModel) PrintableCmd() string { - return c.Command(nil).PrintableCommandArgs() +// Cmd ... +func (c LegacyExportCommandModel) Cmd() *exec.Cmd { + command := c.Command() + return command.GetCmd() } // Run ... func (c LegacyExportCommandModel) Run() error { - command := c.Command(&command.Opts{ - Stdout: os.Stdout, - Stderr: os.Stderr, - }) + command := c.Command() + + command.SetStdout(os.Stdout) + command.SetStderr(os.Stderr) + return command.Run() } diff --git a/vendor/github.com/bitrise-io/go-xcode/xcodebuild/show_build_settings.go b/vendor/github.com/bitrise-io/go-xcode/xcodebuild/show_build_settings.go index f3f7ccc..32f256b 100644 --- a/vendor/github.com/bitrise-io/go-xcode/xcodebuild/show_build_settings.go +++ b/vendor/github.com/bitrise-io/go-xcode/xcodebuild/show_build_settings.go @@ -13,8 +13,7 @@ import ( // ShowBuildSettingsCommandModel ... type ShowBuildSettingsCommandModel struct { - commandFactory command.Factory - projectPath string + projectPath string target string scheme string @@ -23,10 +22,9 @@ type ShowBuildSettingsCommandModel struct { } // NewShowBuildSettingsCommand ... -func NewShowBuildSettingsCommand(projectPath string, commandFactory command.Factory) *ShowBuildSettingsCommandModel { +func NewShowBuildSettingsCommand(projectPath string) *ShowBuildSettingsCommandModel { return &ShowBuildSettingsCommandModel{ - commandFactory: commandFactory, - projectPath: projectPath, + projectPath: projectPath, } } @@ -36,26 +34,8 @@ func (c *ShowBuildSettingsCommandModel) SetTarget(target string) *ShowBuildSetti return c } -// SetScheme ... -func (c *ShowBuildSettingsCommandModel) SetScheme(scheme string) *ShowBuildSettingsCommandModel { - c.scheme = scheme - return c -} - -// SetConfiguration ... -func (c *ShowBuildSettingsCommandModel) SetConfiguration(configuration string) *ShowBuildSettingsCommandModel { - c.configuration = configuration - return c -} - -// SetCustomOptions ... -func (c *ShowBuildSettingsCommandModel) SetCustomOptions(customOptions []string) *ShowBuildSettingsCommandModel { - c.customOptions = customOptions - return c -} - -func (c *ShowBuildSettingsCommandModel) args() []string { - var slice []string +func (c *ShowBuildSettingsCommandModel) cmdSlice() []string { + slice := []string{toolName} if c.projectPath != "" { if filepath.Ext(c.projectPath) == ".xcworkspace" { @@ -83,14 +63,34 @@ func (c *ShowBuildSettingsCommandModel) args() []string { return slice } +// SetScheme ... +func (c *ShowBuildSettingsCommandModel) SetScheme(scheme string) *ShowBuildSettingsCommandModel { + c.scheme = scheme + return c +} + +// SetConfiguration ... +func (c *ShowBuildSettingsCommandModel) SetConfiguration(configuration string) *ShowBuildSettingsCommandModel { + c.configuration = configuration + return c +} + +// SetCustomOptions ... +func (c *ShowBuildSettingsCommandModel) SetCustomOptions(customOptions []string) *ShowBuildSettingsCommandModel { + c.customOptions = customOptions + return c +} + // Command ... -func (c ShowBuildSettingsCommandModel) Command(opts *command.Opts) command.Command { - return c.commandFactory.Create(toolName, c.args(), opts) +func (c ShowBuildSettingsCommandModel) Command() *command.Model { + cmdSlice := c.cmdSlice() + return command.New(cmdSlice[0], cmdSlice[1:]...) } // PrintableCmd ... func (c ShowBuildSettingsCommandModel) PrintableCmd() string { - return c.Command(nil).PrintableCommandArgs() + cmdSlice := c.cmdSlice() + return command.PrintableCommandArgs(false, cmdSlice) } func parseBuildSettings(out string) (serialized.Object, error) { @@ -117,7 +117,7 @@ func parseBuildSettings(out string) (serialized.Object, error) { // RunAndReturnSettings ... func (c ShowBuildSettingsCommandModel) RunAndReturnSettings() (serialized.Object, error) { - cmd := c.Command(nil) + cmd := c.Command() out, err := cmd.RunAndReturnTrimmedCombinedOutput() if err != nil { if errorutil.IsExitStatusError(err) { diff --git a/vendor/github.com/bitrise-io/go-xcode/xcodebuild/test.go b/vendor/github.com/bitrise-io/go-xcode/xcodebuild/test.go index d9134ed..446933d 100644 --- a/vendor/github.com/bitrise-io/go-xcode/xcodebuild/test.go +++ b/vendor/github.com/bitrise-io/go-xcode/xcodebuild/test.go @@ -2,6 +2,7 @@ package xcodebuild import ( "os" + "os/exec" "github.com/bitrise-io/go-utils/command" ) @@ -30,8 +31,6 @@ xcodebuild -workspace \ // TestCommandModel ... type TestCommandModel struct { - commandFactory command.Factory - projectPath string isWorkspace bool scheme string @@ -49,11 +48,10 @@ type TestCommandModel struct { } // NewTestCommand ... -func NewTestCommand(projectPath string, isWorkspace bool, commandFactory command.Factory) *TestCommandModel { +func NewTestCommand(projectPath string, isWorkspace bool) *TestCommandModel { return &TestCommandModel{ - commandFactory: commandFactory, - projectPath: projectPath, - isWorkspace: isWorkspace, + projectPath: projectPath, + isWorkspace: isWorkspace, } } @@ -93,8 +91,8 @@ func (c *TestCommandModel) SetDisableIndexWhileBuilding(disable bool) *TestComma return c } -func (c *TestCommandModel) args() []string { - var slice []string +func (c *TestCommandModel) cmdSlice() []string { + slice := []string{toolName} if c.projectPath != "" { if c.isWorkspace { @@ -127,21 +125,30 @@ func (c *TestCommandModel) args() []string { return slice } +// PrintableCmd ... +func (c TestCommandModel) PrintableCmd() string { + cmdSlice := c.cmdSlice() + return command.PrintableCommandArgs(false, cmdSlice) +} + // Command ... -func (c TestCommandModel) Command(opts *command.Opts) command.Command { - return c.commandFactory.Create(toolName, c.args(), opts) +func (c TestCommandModel) Command() *command.Model { + cmdSlice := c.cmdSlice() + return command.New(cmdSlice[0], cmdSlice[1:]...) } -// PrintableCmd ... -func (c TestCommandModel) PrintableCmd() string { - return c.Command(nil).PrintableCommandArgs() +// Cmd ... +func (c TestCommandModel) Cmd() *exec.Cmd { + command := c.Command() + return command.GetCmd() } // Run ... func (c TestCommandModel) Run() error { - command := c.Command(&command.Opts{ - Stdout: os.Stdout, - Stderr: os.Stderr, - }) + command := c.Command() + + command.SetStdout(os.Stdout) + command.SetStderr(os.Stderr) + return command.Run() } diff --git a/vendor/github.com/bitrise-io/go-xcode/xcodebuild/xcodebuild.go b/vendor/github.com/bitrise-io/go-xcode/xcodebuild/xcodebuild.go index 7056c37..009a51b 100644 --- a/vendor/github.com/bitrise-io/go-xcode/xcodebuild/xcodebuild.go +++ b/vendor/github.com/bitrise-io/go-xcode/xcodebuild/xcodebuild.go @@ -9,7 +9,7 @@ const ( // CommandModel ... type CommandModel interface { PrintableCmd() string - Command(opts *command.Opts) command.Command + Command() *command.Model } // AuthenticationParams are used to authenticate to App Store Connect API and let xcodebuild download missing provisioning profiles. diff --git a/vendor/github.com/bitrise-io/go-xcode/xcodecache/swiftpm_cache.go b/vendor/github.com/bitrise-io/go-xcode/xcodecache/swiftpm_cache.go index 9ff703c..3d04e90 100644 --- a/vendor/github.com/bitrise-io/go-xcode/xcodecache/swiftpm_cache.go +++ b/vendor/github.com/bitrise-io/go-xcode/xcodecache/swiftpm_cache.go @@ -14,23 +14,9 @@ import ( // The repository at [path] is invalid; try resetting package caches const SwiftPackagesStateInvalid = "Could not resolve package dependencies:" -// SwiftPackageCache ... -type SwiftPackageCache interface { - SwiftPackagesPath(projectPth string) (string, error) - CollectSwiftPackages(projectPath string) error -} - -type swiftPackageCache struct { -} - -// NewSwiftPackageCache ... -func NewSwiftPackageCache() SwiftPackageCache { - return &swiftPackageCache{} -} - // SwiftPackagesPath returns the Swift packages cache dir path. The input must be an absolute path. // The directory is: $HOME/Library/Developer/Xcode/DerivedData/[PER_PROJECT_DERIVED_DATA]/SourcePackages. -func (c swiftPackageCache) SwiftPackagesPath(xcodeProjectPath string) (string, error) { +func SwiftPackagesPath(xcodeProjectPath string) (string, error) { if !path.IsAbs(xcodeProjectPath) { return "", fmt.Errorf("project path not an absolute path: %s", xcodeProjectPath) } @@ -49,8 +35,8 @@ func (c swiftPackageCache) SwiftPackagesPath(xcodeProjectPath string) (string, e // CollectSwiftPackages marks the Swift Package Manager packages directory to be added the cache. // The directory cached is: $HOME/Library/Developer/Xcode/DerivedData/[PER_PROJECT_DERIVED_DATA]/SourcePackages. -func (c swiftPackageCache) CollectSwiftPackages(xcodeProjectPath string) error { - swiftPackagesDir, err := c.SwiftPackagesPath(xcodeProjectPath) +func CollectSwiftPackages(xcodeProjectPath string) error { + swiftPackagesDir, err := SwiftPackagesPath(xcodeProjectPath) if err != nil { return fmt.Errorf("failed to get Swift packages path, error %s", err) } @@ -65,15 +51,3 @@ func (c swiftPackageCache) CollectSwiftPackages(xcodeProjectPath string) error { } return nil } - -// SwiftPackagesPath ... -// Deprecated: SwiftPackagesPath is deprecated. Please use the SwiftPackageCache interface instead. -func SwiftPackagesPath(xcodeProjectPath string) (string, error) { - return NewSwiftPackageCache().SwiftPackagesPath(xcodeProjectPath) -} - -// CollectSwiftPackages ... -// Deprecated: CollectSwiftPackages is deprecated. Please use the SwiftPackageCache interface instead. -func CollectSwiftPackages(xcodeProjectPath string) error { - return NewSwiftPackageCache().CollectSwiftPackages(xcodeProjectPath) -} diff --git a/vendor/github.com/bitrise-io/go-xcode/xcodeproject/xcodeproj/xcodeproj.go b/vendor/github.com/bitrise-io/go-xcode/xcodeproject/xcodeproj/xcodeproj.go index e604d3f..34d67df 100644 --- a/vendor/github.com/bitrise-io/go-xcode/xcodeproject/xcodeproj/xcodeproj.go +++ b/vendor/github.com/bitrise-io/go-xcode/xcodeproject/xcodeproj/xcodeproj.go @@ -12,8 +12,6 @@ import ( "strings" plist "github.com/bitrise-io/go-plist" - "github.com/bitrise-io/go-utils/command" - "github.com/bitrise-io/go-utils/env" "github.com/bitrise-io/go-utils/fileutil" "github.com/bitrise-io/go-utils/log" "github.com/bitrise-io/go-utils/pathutil" @@ -29,9 +27,6 @@ const ( XcodeProjExtension = ".xcodeproj" ) -// TODO remove -var temporaryFactory = command.NewFactory(env.NewRepository()) - // XcodeProj ... type XcodeProj struct { Proj Proj @@ -210,9 +205,9 @@ func (p XcodeProj) TargetBundleID(target, configuration string) (string, error) // Resolve returns the resolved bundleID. We need this, because the bundleID is not exposed in the .pbxproj file ( raw ). // If the raw BundleID contains an environment variable we have to replace it. // -//**Example:** -//BundleID in the .pbxproj: Bitrise.Test.$(PRODUCT_NAME:rfc1034identifier).Suffix -//BundleID after the env is expanded: Bitrise.Test.Sample.Suffix +// **Example:** +// BundleID in the .pbxproj: Bitrise.Test.$(PRODUCT_NAME:rfc1034identifier).Suffix +// BundleID after the env is expanded: Bitrise.Test.Sample.Suffix func Resolve(bundleID string, buildSettings serialized.Object) (string, error) { resolvedBundleIDs := map[string]bool{} resolved := bundleID @@ -304,7 +299,7 @@ func envInBuildSettings(envKey string, buildSettings serialized.Object) (string, // TargetBuildSettings ... func (p XcodeProj) TargetBuildSettings(target, configuration string, customOptions ...string) (serialized.Object, error) { - commandModel := xcodebuild.NewShowBuildSettingsCommand(p.Path, temporaryFactory) + commandModel := xcodebuild.NewShowBuildSettingsCommand(p.Path) commandModel.SetTarget(target) commandModel.SetConfiguration(configuration) commandModel.SetCustomOptions(customOptions) diff --git a/vendor/github.com/bitrise-io/go-xcode/xcodeproject/xcworkspace/xcworkspace.go b/vendor/github.com/bitrise-io/go-xcode/xcodeproject/xcworkspace/xcworkspace.go index 296a34f..e8d15e0 100644 --- a/vendor/github.com/bitrise-io/go-xcode/xcodeproject/xcworkspace/xcworkspace.go +++ b/vendor/github.com/bitrise-io/go-xcode/xcodeproject/xcworkspace/xcworkspace.go @@ -6,7 +6,6 @@ import ( "path/filepath" "strings" - "github.com/bitrise-io/go-utils/command" "github.com/bitrise-io/go-utils/fileutil" "github.com/bitrise-io/go-utils/pathutil" "github.com/bitrise-io/go-xcode/xcodebuild" @@ -50,8 +49,8 @@ func (w Workspace) Scheme(name string) (*xcscheme.Scheme, string, error) { } // SchemeBuildSettings ... -func (w Workspace) SchemeBuildSettings(cmdFactory command.Factory, scheme, configuration string, customOptions ...string) (serialized.Object, error) { - commandModel := xcodebuild.NewShowBuildSettingsCommand(w.Path, cmdFactory) +func (w Workspace) SchemeBuildSettings(scheme, configuration string, customOptions ...string) (serialized.Object, error) { + commandModel := xcodebuild.NewShowBuildSettingsCommand(w.Path) commandModel.SetScheme(scheme) commandModel.SetConfiguration(configuration) commandModel.SetCustomOptions(customOptions) diff --git a/vendor/github.com/bitrise-io/go-xcode/xcpretty/xcpretty.go b/vendor/github.com/bitrise-io/go-xcode/xcpretty/xcpretty.go index 9acf33a..014826e 100644 --- a/vendor/github.com/bitrise-io/go-xcode/xcpretty/xcpretty.go +++ b/vendor/github.com/bitrise-io/go-xcode/xcpretty/xcpretty.go @@ -6,9 +6,8 @@ import ( "io" "os" - "github.com/bitrise-io/go-steputils/ruby" + "github.com/bitrise-io/go-steputils/command/rubycommand" "github.com/bitrise-io/go-utils/command" - "github.com/bitrise-io/go-utils/env" "github.com/bitrise-io/go-utils/log" "github.com/bitrise-io/go-xcode/xcodebuild" version "github.com/hashicorp/go-version" @@ -37,21 +36,32 @@ func (c *CommandModel) SetCustomOptions(customOptions []string) *CommandModel { return c } +func (c CommandModel) cmdSlice() []string { + slice := []string{toolName} + slice = append(slice, c.customOptions...) + return slice +} + // Command ... -func (c CommandModel) Command(opts *command.Opts) command.Command { - return command.NewFactory(env.NewRepository()).Create(toolName, c.customOptions, opts) +func (c CommandModel) Command() *command.Model { + cmdSlice := c.cmdSlice() + return command.New(cmdSlice[0]) } // PrintableCmd ... func (c CommandModel) PrintableCmd() string { - prettyCmdStr := c.Command(nil).PrintableCommandArgs() - xcodebuildCmdStr := c.xcodebuildCommand.PrintableCmd() + prettyCmdSlice := c.cmdSlice() + prettyCmdStr := command.PrintableCommandArgs(false, prettyCmdSlice) - return fmt.Sprintf("set -o pipefail && %s | %s", xcodebuildCmdStr, prettyCmdStr) + cmdStr := c.xcodebuildCommand.PrintableCmd() + + return fmt.Sprintf("set -o pipefail && %s | %s", cmdStr, prettyCmdStr) } // Run ... func (c CommandModel) Run() (string, error) { + prettyCmd := c.Command() + xcodebuildCmd := c.xcodebuildCommand.Command() // Configure cmd in- and outputs pipeReader, pipeWriter := io.Pipe() @@ -59,24 +69,20 @@ func (c CommandModel) Run() (string, error) { var outBuffer bytes.Buffer outWriter := io.MultiWriter(&outBuffer, pipeWriter) - xcodebuildCmd := c.xcodebuildCommand.Command(&command.Opts{ - Stdin: nil, - Stdout: outWriter, - Stderr: outWriter, - }) + xcodebuildCmd.SetStdin(nil) + xcodebuildCmd.SetStdout(outWriter) + xcodebuildCmd.SetStderr(outWriter) - prettyCmd := c.Command(&command.Opts{ - Stdin: pipeReader, - Stdout: os.Stdout, - Stderr: os.Stderr, - }) + prettyCmd.SetStdin(pipeReader) + prettyCmd.SetStdout(os.Stdout) + prettyCmd.SetStderr(os.Stdout) // Run - if err := xcodebuildCmd.Start(); err != nil { + if err := xcodebuildCmd.GetCmd().Start(); err != nil { out := outBuffer.String() return out, err } - if err := prettyCmd.Start(); err != nil { + if err := prettyCmd.GetCmd().Start(); err != nil { out := outBuffer.String() return out, err } @@ -87,12 +93,12 @@ func (c CommandModel) Run() (string, error) { log.Warnf("Failed to close xcodebuild-xcpretty pipe, error: %s", err) } - if err := prettyCmd.Wait(); err != nil { + if err := prettyCmd.GetCmd().Wait(); err != nil { log.Warnf("xcpretty command failed, error: %s", err) } }() - if err := xcodebuildCmd.Wait(); err != nil { + if err := xcodebuildCmd.GetCmd().Wait(); err != nil { out := outBuffer.String() return out, err } @@ -100,47 +106,23 @@ func (c CommandModel) Run() (string, error) { return outBuffer.String(), nil } -// Xcpretty ... -type Xcpretty interface { - IsInstalled() (bool, error) - Install() ([]command.Command, error) - Version() (*version.Version, error) -} - -type xcpretty struct { -} - -// NewXcpretty ... -func NewXcpretty() Xcpretty { - return &xcpretty{} -} - -func (x xcpretty) IsInstalled() (bool, error) { - locator := env.NewCommandLocator() - factory, err := ruby.NewCommandFactory(command.NewFactory(env.NewRepository()), locator) - if err != nil { - return false, err - } - - return ruby.NewEnvironment(factory, locator).IsGemInstalled("xcpretty", "") +// IsInstalled ... +func IsInstalled() (bool, error) { + return rubycommand.IsGemInstalled("xcpretty", "") } // Install ... -func (x xcpretty) Install() ([]command.Command, error) { - locator := env.NewCommandLocator() - factory, err := ruby.NewCommandFactory(command.NewFactory(env.NewRepository()), locator) +func Install() ([]*command.Model, error) { + cmds, err := rubycommand.GemInstall("xcpretty", "", false) if err != nil { - return nil, err + return nil, fmt.Errorf("failed to create command model, error: %s", err) } - - cmds := factory.CreateGemInstall("xcpretty", "", false, false, nil) - return cmds, nil } // Version ... -func (x xcpretty) Version() (*version.Version, error) { - cmd := command.NewFactory(env.NewRepository()).Create("xcpretty", []string{"--version"}, nil) +func Version() (*version.Version, error) { + cmd := command.New("xcpretty", "--version") versionOut, err := cmd.RunAndReturnTrimmedCombinedOutput() if err != nil { return nil, err diff --git a/vendor/github.com/golang-jwt/jwt/v4/claims.go b/vendor/github.com/golang-jwt/jwt/v4/claims.go index b07ac02..41cc826 100644 --- a/vendor/github.com/golang-jwt/jwt/v4/claims.go +++ b/vendor/github.com/golang-jwt/jwt/v4/claims.go @@ -83,7 +83,7 @@ func (c *RegisteredClaims) VerifyAudience(cmp string, req bool) bool { return verifyAud(c.Audience, cmp, req) } -// VerifyExpiresAt compares the exp claim against cmp (cmp <= exp). +// VerifyExpiresAt compares the exp claim against cmp (cmp < exp). // If req is false, it will return true, if exp is unset. func (c *RegisteredClaims) VerifyExpiresAt(cmp time.Time, req bool) bool { if c.ExpiresAt == nil { @@ -113,6 +113,12 @@ func (c *RegisteredClaims) VerifyNotBefore(cmp time.Time, req bool) bool { return verifyNbf(&c.NotBefore.Time, cmp, req) } +// VerifyIssuer compares the iss claim against cmp. +// If required is false, this method will return true if the value matches or is unset +func (c *RegisteredClaims) VerifyIssuer(cmp string, req bool) bool { + return verifyIss(c.Issuer, cmp, req) +} + // StandardClaims are a structured version of the JWT Claims Set, as referenced at // https://datatracker.ietf.org/doc/html/rfc7519#section-4. They do not follow the // specification exactly, since they were based on an earlier draft of the @@ -170,7 +176,7 @@ func (c *StandardClaims) VerifyAudience(cmp string, req bool) bool { return verifyAud([]string{c.Audience}, cmp, req) } -// VerifyExpiresAt compares the exp claim against cmp (cmp <= exp). +// VerifyExpiresAt compares the exp claim against cmp (cmp < exp). // If req is false, it will return true, if exp is unset. func (c *StandardClaims) VerifyExpiresAt(cmp int64, req bool) bool { if c.ExpiresAt == 0 { diff --git a/vendor/github.com/golang-jwt/jwt/v4/errors.go b/vendor/github.com/golang-jwt/jwt/v4/errors.go index f309878..b9d18e4 100644 --- a/vendor/github.com/golang-jwt/jwt/v4/errors.go +++ b/vendor/github.com/golang-jwt/jwt/v4/errors.go @@ -53,6 +53,11 @@ func (e ValidationError) Error() string { } } +// Unwrap gives errors.Is and errors.As access to the inner error. +func (e *ValidationError) Unwrap() error { + return e.Inner +} + // No errors func (e *ValidationError) valid() bool { return e.Errors == 0 diff --git a/vendor/github.com/golang-jwt/jwt/v4/parser.go b/vendor/github.com/golang-jwt/jwt/v4/parser.go index 0c811f3..2f61a69 100644 --- a/vendor/github.com/golang-jwt/jwt/v4/parser.go +++ b/vendor/github.com/golang-jwt/jwt/v4/parser.go @@ -8,14 +8,36 @@ import ( ) type Parser struct { - ValidMethods []string // If populated, only these methods will be considered valid - UseJSONNumber bool // Use JSON Number format in JSON decoder - SkipClaimsValidation bool // Skip claims validation during token parsing + // If populated, only these methods will be considered valid. + // + // Deprecated: In future releases, this field will not be exported anymore and should be set with an option to NewParser instead. + ValidMethods []string + + // Use JSON Number format in JSON decoder. + // + // Deprecated: In future releases, this field will not be exported anymore and should be set with an option to NewParser instead. + UseJSONNumber bool + + // Skip claims validation during token parsing. + // + // Deprecated: In future releases, this field will not be exported anymore and should be set with an option to NewParser instead. + SkipClaimsValidation bool } -// Parse parses, validates, and returns a token. +// NewParser creates a new Parser with the specified options +func NewParser(options ...ParserOption) *Parser { + p := &Parser{} + + // loop through our parsing options and apply them + for _, option := range options { + option(p) + } + + return p +} + +// Parse parses, validates, verifies the signature and returns the parsed token. // keyFunc will receive the parsed token and should return the key for validating. -// If everything is kosher, err will be nil func (p *Parser) Parse(tokenString string, keyFunc Keyfunc) (*Token, error) { return p.ParseWithClaims(tokenString, MapClaims{}, keyFunc) } diff --git a/vendor/github.com/golang-jwt/jwt/v4/parser_option.go b/vendor/github.com/golang-jwt/jwt/v4/parser_option.go new file mode 100644 index 0000000..0fede4f --- /dev/null +++ b/vendor/github.com/golang-jwt/jwt/v4/parser_option.go @@ -0,0 +1,29 @@ +package jwt + +// ParserOption is used to implement functional-style options that modify the behaviour of the parser. To add +// new options, just create a function (ideally beginning with With or Without) that returns an anonymous function that +// takes a *Parser type as input and manipulates its configuration accordingly. +type ParserOption func(*Parser) + +// WithValidMethods is an option to supply algorithm methods that the parser will check. Only those methods will be considered valid. +// It is heavily encouraged to use this option in order to prevent attacks such as https://auth0.com/blog/critical-vulnerabilities-in-json-web-token-libraries/. +func WithValidMethods(methods []string) ParserOption { + return func(p *Parser) { + p.ValidMethods = methods + } +} + +// WithJSONNumber is an option to configure the underyling JSON parser with UseNumber +func WithJSONNumber() ParserOption { + return func(p *Parser) { + p.UseJSONNumber = true + } +} + +// WithoutClaimsValidation is an option to disable claims validation. This option should only be used if you exactly know +// what you are doing. +func WithoutClaimsValidation() ParserOption { + return func(p *Parser) { + p.SkipClaimsValidation = true + } +} diff --git a/vendor/github.com/golang-jwt/jwt/v4/signing_method.go b/vendor/github.com/golang-jwt/jwt/v4/signing_method.go index 3269170..241ae9c 100644 --- a/vendor/github.com/golang-jwt/jwt/v4/signing_method.go +++ b/vendor/github.com/golang-jwt/jwt/v4/signing_method.go @@ -33,3 +33,14 @@ func GetSigningMethod(alg string) (method SigningMethod) { } return } + +// GetAlgorithms returns a list of registered "alg" names +func GetAlgorithms() (algs []string) { + signingMethodLock.RLock() + defer signingMethodLock.RUnlock() + + for alg := range signingMethods { + algs = append(algs, alg) + } + return +} diff --git a/vendor/github.com/golang-jwt/jwt/v4/token.go b/vendor/github.com/golang-jwt/jwt/v4/token.go index b896acb..1234413 100644 --- a/vendor/github.com/golang-jwt/jwt/v4/token.go +++ b/vendor/github.com/golang-jwt/jwt/v4/token.go @@ -7,6 +7,14 @@ import ( "time" ) + +// DecodePaddingAllowed will switch the codec used for decoding JWTs respectively. Note that the JWS RFC7515 +// states that the tokens will utilize a Base64url encoding with no padding. Unfortunately, some implementations +// of JWT are producing non-standard tokens, and thus require support for decoding. Note that this is a global +// variable, and updating it will change the behavior on a package level, and is also NOT go-routine safe. +// To use the non-recommended decoding, set this boolean to `true` prior to using this package. +var DecodePaddingAllowed bool + // TimeFunc provides the current time when parsing token to validate "exp" claim (expiration time). // You can override it to use another time value. This is useful for testing or if your // server uses a different time zone than your tokens. @@ -29,11 +37,12 @@ type Token struct { Valid bool // Is the token valid? Populated when you Parse/Verify a token } -// New creates a new Token. Takes a signing method +// New creates a new Token with the specified signing method and an empty map of claims. func New(method SigningMethod) *Token { return NewWithClaims(method, MapClaims{}) } +// NewWithClaims creates a new Token with the specified signing method and claims. func NewWithClaims(method SigningMethod, claims Claims) *Token { return &Token{ Header: map[string]interface{}{ @@ -45,7 +54,8 @@ func NewWithClaims(method SigningMethod, claims Claims) *Token { } } -// SignedString retrieves the complete, signed token +// SignedString creates and returns a complete, signed JWT. +// The token is signed using the SigningMethod specified in the token. func (t *Token) SignedString(key interface{}) (string, error) { var sig, sstr string var err error @@ -82,15 +92,19 @@ func (t *Token) SigningString() (string, error) { return strings.Join(parts, "."), nil } -// Parse parses, validates, and returns a token. -// keyFunc will receive the parsed token and should return the key for validating. -// If everything is kosher, err will be nil -func Parse(tokenString string, keyFunc Keyfunc) (*Token, error) { - return new(Parser).Parse(tokenString, keyFunc) +// Parse parses, validates, verifies the signature and returns the parsed token. +// keyFunc will receive the parsed token and should return the cryptographic key +// for verifying the signature. +// The caller is strongly encouraged to set the WithValidMethods option to +// validate the 'alg' claim in the token matches the expected algorithm. +// For more details about the importance of validating the 'alg' claim, +// see https://auth0.com/blog/critical-vulnerabilities-in-json-web-token-libraries/ +func Parse(tokenString string, keyFunc Keyfunc, options ...ParserOption) (*Token, error) { + return NewParser(options...).Parse(tokenString, keyFunc) } -func ParseWithClaims(tokenString string, claims Claims, keyFunc Keyfunc) (*Token, error) { - return new(Parser).ParseWithClaims(tokenString, claims, keyFunc) +func ParseWithClaims(tokenString string, claims Claims, keyFunc Keyfunc, options ...ParserOption) (*Token, error) { + return NewParser(options...).ParseWithClaims(tokenString, claims, keyFunc) } // EncodeSegment encodes a JWT specific base64url encoding with padding stripped @@ -106,5 +120,12 @@ func EncodeSegment(seg []byte) string { // Deprecated: In a future release, we will demote this function to a non-exported function, since it // should only be used internally func DecodeSegment(seg string) ([]byte, error) { + if DecodePaddingAllowed { + if l := len(seg) % 4; l > 0 { + seg += strings.Repeat("=", 4-l) + } + return base64.URLEncoding.DecodeString(seg) + } + return base64.RawURLEncoding.DecodeString(seg) } diff --git a/vendor/github.com/golang-jwt/jwt/v4/types.go b/vendor/github.com/golang-jwt/jwt/v4/types.go index 15c39a3..80b1b96 100644 --- a/vendor/github.com/golang-jwt/jwt/v4/types.go +++ b/vendor/github.com/golang-jwt/jwt/v4/types.go @@ -3,6 +3,7 @@ package jwt import ( "encoding/json" "fmt" + "math" "reflect" "strconv" "time" @@ -41,7 +42,8 @@ func NewNumericDate(t time.Time) *NumericDate { // newNumericDateFromSeconds creates a new *NumericDate out of a float64 representing a // UNIX epoch with the float fraction representing non-integer seconds. func newNumericDateFromSeconds(f float64) *NumericDate { - return NewNumericDate(time.Unix(0, int64(f*float64(time.Second)))) + round, frac := math.Modf(f) + return NewNumericDate(time.Unix(int64(round), int64(frac*1e9))) } // MarshalJSON is an implementation of the json.RawMessage interface and serializes the UNIX epoch diff --git a/vendor/modules.txt b/vendor/modules.txt index a6056ad..dd80dc0 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1,19 +1,21 @@ # github.com/bitrise-io/go-plist v0.0.0-20210301100253-4b1a112ccd10 ## explicit; go 1.15 github.com/bitrise-io/go-plist -# github.com/bitrise-io/go-steputils v0.0.0-20211205220451-e046db274afb -## explicit; go 1.16 +# github.com/bitrise-io/go-steputils v1.0.1 +## explicit; go 1.15 github.com/bitrise-io/go-steputils/cache +github.com/bitrise-io/go-steputils/command/rubycommand github.com/bitrise-io/go-steputils/input github.com/bitrise-io/go-steputils/output -github.com/bitrise-io/go-steputils/ruby -github.com/bitrise-io/go-steputils/stepconf github.com/bitrise-io/go-steputils/tools -# github.com/bitrise-io/go-utils v0.0.0-20211126092127-3a566ee3f420 +# github.com/bitrise-io/go-steputils/v2 v2.0.0-alpha.1 ## explicit; go 1.16 +github.com/bitrise-io/go-steputils/v2/ruby +github.com/bitrise-io/go-steputils/v2/stepconf +# github.com/bitrise-io/go-utils v1.0.1 +## explicit; go 1.13 github.com/bitrise-io/go-utils/colorstring github.com/bitrise-io/go-utils/command -github.com/bitrise-io/go-utils/env github.com/bitrise-io/go-utils/errorutil github.com/bitrise-io/go-utils/filedownloader github.com/bitrise-io/go-utils/fileutil @@ -27,21 +29,17 @@ github.com/bitrise-io/go-utils/retry github.com/bitrise-io/go-utils/sliceutil github.com/bitrise-io/go-utils/stringutil github.com/bitrise-io/go-utils/ziputil -# github.com/bitrise-io/go-xcode v0.0.0-20220105112357-9757160a67eb +# github.com/bitrise-io/go-utils/v2 v2.0.0-alpha.1 ## explicit; go 1.16 +github.com/bitrise-io/go-utils/v2/command +github.com/bitrise-io/go-utils/v2/env +github.com/bitrise-io/go-utils/v2/fileutil +github.com/bitrise-io/go-utils/v2/log +github.com/bitrise-io/go-utils/v2/pathutil +# github.com/bitrise-io/go-xcode v1.0.1 +## explicit; go 1.15 github.com/bitrise-io/go-xcode/appleauth -github.com/bitrise-io/go-xcode/autocodesign -github.com/bitrise-io/go-xcode/autocodesign/certdownloader -github.com/bitrise-io/go-xcode/autocodesign/codesignasset -github.com/bitrise-io/go-xcode/autocodesign/devportalclient -github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnect -github.com/bitrise-io/go-xcode/autocodesign/devportalclient/appstoreconnectclient -github.com/bitrise-io/go-xcode/autocodesign/devportalclient/spaceship -github.com/bitrise-io/go-xcode/autocodesign/keychain -github.com/bitrise-io/go-xcode/autocodesign/localcodesignasset -github.com/bitrise-io/go-xcode/autocodesign/projectmanager github.com/bitrise-io/go-xcode/certificateutil -github.com/bitrise-io/go-xcode/codesign github.com/bitrise-io/go-xcode/devportalservice github.com/bitrise-io/go-xcode/exportoptions github.com/bitrise-io/go-xcode/models @@ -49,7 +47,6 @@ github.com/bitrise-io/go-xcode/plistutil github.com/bitrise-io/go-xcode/profileutil github.com/bitrise-io/go-xcode/utility github.com/bitrise-io/go-xcode/xcarchive -github.com/bitrise-io/go-xcode/xcconfig github.com/bitrise-io/go-xcode/xcodebuild github.com/bitrise-io/go-xcode/xcodecache github.com/bitrise-io/go-xcode/xcodeproject/schemeint @@ -58,6 +55,21 @@ github.com/bitrise-io/go-xcode/xcodeproject/xcodeproj github.com/bitrise-io/go-xcode/xcodeproject/xcscheme github.com/bitrise-io/go-xcode/xcodeproject/xcworkspace github.com/bitrise-io/go-xcode/xcpretty +# github.com/bitrise-io/go-xcode/v2 v2.0.0-alpha.5 +## explicit; go 1.16 +github.com/bitrise-io/go-xcode/v2/autocodesign +github.com/bitrise-io/go-xcode/v2/autocodesign/certdownloader +github.com/bitrise-io/go-xcode/v2/autocodesign/codesignasset +github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient +github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnect +github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/appstoreconnectclient +github.com/bitrise-io/go-xcode/v2/autocodesign/devportalclient/spaceship +github.com/bitrise-io/go-xcode/v2/autocodesign/keychain +github.com/bitrise-io/go-xcode/v2/autocodesign/localcodesignasset +github.com/bitrise-io/go-xcode/v2/autocodesign/projectmanager +github.com/bitrise-io/go-xcode/v2/codesign +github.com/bitrise-io/go-xcode/v2/xcarchive +github.com/bitrise-io/go-xcode/v2/xcconfig # github.com/bitrise-io/pkcs12 v0.0.0-20211108084543-e52728e011c8 ## explicit github.com/bitrise-io/pkcs12 @@ -68,7 +80,7 @@ github.com/davecgh/go-spew/spew # github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa ## explicit github.com/fullsailor/pkcs7 -# github.com/golang-jwt/jwt/v4 v4.1.0 +# github.com/golang-jwt/jwt/v4 v4.2.0 ## explicit; go 1.15 github.com/golang-jwt/jwt/v4 # github.com/google/go-querystring v1.1.0