diff --git a/codesigndocuitests/iostestrunner.go b/codesigndocuitests/iostestrunner.go index b7f6cdf..484d7a8 100644 --- a/codesigndocuitests/iostestrunner.go +++ b/codesigndocuitests/iostestrunner.go @@ -9,7 +9,6 @@ import ( "github.com/bitrise-io/go-utils/pathutil" "github.com/bitrise-io/go-xcode/plistutil" "github.com/bitrise-io/go-xcode/profileutil" - "github.com/bitrise-io/go-xcode/utility" ) // IOSTestRunner ... @@ -22,7 +21,7 @@ type IOSTestRunner struct { // NewIOSTestRunners is the *-Runner.app which is generated with the xcodebuild build-for-testing command func NewIOSTestRunners(path string) ([]*IOSTestRunner, error) { - runnerPattern := filepath.Join(utility.EscapeGlobPath(path), "*-Runner.app") + runnerPattern := filepath.Join(pathutil.EscapeGlobPath(path), "*-Runner.app") possibleTestRunnerPths, err := filepath.Glob(runnerPattern) if err != nil { return nil, err diff --git a/go.mod b/go.mod index 7841d34..de15669 100644 --- a/go.mod +++ b/go.mod @@ -6,11 +6,12 @@ require ( github.com/bitrise-io/bitrise-init v0.0.0-20210520122036-d213de321eb8 github.com/bitrise-io/go-utils v0.0.0-20210520073355-367fa34178f5 github.com/bitrise-io/go-xamarin v0.0.0-20210519123500-acea30f4caad - github.com/bitrise-io/go-xcode v0.0.0-20210520114025-bdbec53ee59f + github.com/bitrise-io/go-xcode v0.0.0-20210521101355-fb6a1eb6e05b github.com/bitrise-io/goinp v0.0.0-20210504152833-8559b0680ab1 github.com/hashicorp/go-cleanhttp v0.5.2 // indirect github.com/hashicorp/go-retryablehttp v0.7.0 // indirect github.com/pkg/errors v0.9.1 github.com/spf13/cobra v1.1.3 github.com/stretchr/testify v1.7.0 + golang.org/x/sys v0.0.0-20210521090106-6ca3eb03dfc2 // indirect ) diff --git a/go.sum b/go.sum index 368acec..390fadd 100644 --- a/go.sum +++ b/go.sum @@ -46,8 +46,9 @@ github.com/bitrise-io/go-utils v0.0.0-20210520073355-367fa34178f5 h1:kclxBfygfNK github.com/bitrise-io/go-utils v0.0.0-20210520073355-367fa34178f5/go.mod h1:DRx7oFuAqk0dbKpAKCqWl0TgrowfJUb/MqYPRscxJOQ= github.com/bitrise-io/go-xamarin v0.0.0-20210519123500-acea30f4caad h1:KFshPET6nvwptQhOzBtpi7A+QZIZJuZEy23xC2NXLLE= github.com/bitrise-io/go-xamarin v0.0.0-20210519123500-acea30f4caad/go.mod h1:w+iF7jlZGSalbGO7WHLHYUiivtd3p78VQYnEQ/t+WxM= -github.com/bitrise-io/go-xcode v0.0.0-20210520114025-bdbec53ee59f h1:vx+uiuLDMqsbdqXorl0uO/LMVBLxeitMebyBRdvEqvk= github.com/bitrise-io/go-xcode v0.0.0-20210520114025-bdbec53ee59f/go.mod h1:a5IANtAnyazHgNjI6/kwQw5vU/WJo1zQ4Lja9WRUNmA= +github.com/bitrise-io/go-xcode v0.0.0-20210521101355-fb6a1eb6e05b h1:JyTlzvdOBOxtYZ7aZVCog2dZUv8LgA8UftT+TpVWtZY= +github.com/bitrise-io/go-xcode v0.0.0-20210521101355-fb6a1eb6e05b/go.mod h1:6Nv5RAsAVS745xN5IihUExVmCA9n9f7s/DSVow4hXrI= github.com/bitrise-io/goinp v0.0.0-20210504152833-8559b0680ab1 h1:iQZl/dKHp14xol7ye4e9FaSrw8o27TF5/nv3aUDfdD0= github.com/bitrise-io/goinp v0.0.0-20210504152833-8559b0680ab1/go.mod h1:iRbd8zAXLeNy+0gic0eqNCxXvDGe8ZEY/uYX2CCeAoo= github.com/bitrise-io/gows v0.0.0-20210505125306-dd92ff463938/go.mod h1:3Cp9ceJ8wHl1Av6oEE2ff1iWaYLliQuD+oaNdyM0NWQ= @@ -306,8 +307,9 @@ golang.org/x/sys v0.0.0-20200219091948-cb0a6d8edb6c/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210503173754-0981d6026fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210511113859-b0526f3d8744/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210514084401-e8d321eab015 h1:hZR0X1kPW+nwyJ9xRxqZk1vx5RUObAPBdKVvXPDUH/E= golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210521090106-6ca3eb03dfc2 h1:48AqIJLs69Wmc3mA52aIcqt544rjrDCqolKAv7L8leA= +golang.org/x/sys v0.0.0-20210521090106-6ca3eb03dfc2/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210503060354-a79de5458b56 h1:b8jxX3zqjpqb2LklXPzKSGJhzyxCOZSz8ncv8Nv+y7w= golang.org/x/term v0.0.0-20210503060354-a79de5458b56/go.mod h1:tfny5GFUkzUvx4ps4ajbZsCe5lw1metzhBm9T3x7oIY= diff --git a/vendor/github.com/bitrise-io/go-xcode/profileutil/util.go b/vendor/github.com/bitrise-io/go-xcode/profileutil/util.go index e39de14..5123c55 100644 --- a/vendor/github.com/bitrise-io/go-xcode/profileutil/util.go +++ b/vendor/github.com/bitrise-io/go-xcode/profileutil/util.go @@ -5,7 +5,6 @@ import ( "github.com/bitrise-io/go-utils/fileutil" "github.com/bitrise-io/go-utils/pathutil" - "github.com/bitrise-io/go-xcode/utility" "github.com/fullsailor/pkcs7" ) @@ -47,7 +46,7 @@ func InstalledProvisioningProfiles(profileType ProfileType) ([]*pkcs7.PKCS7, err return nil, err } - pattern := filepath.Join(utility.EscapeGlobPath(absProvProfileDirPath), "*"+ext) + pattern := filepath.Join(pathutil.EscapeGlobPath(absProvProfileDirPath), "*"+ext) pths, err := filepath.Glob(pattern) if err != nil { return nil, err diff --git a/vendor/github.com/bitrise-io/go-xcode/utility/glob.go b/vendor/github.com/bitrise-io/go-xcode/utility/glob.go deleted file mode 100644 index 1333c6f..0000000 --- a/vendor/github.com/bitrise-io/go-xcode/utility/glob.go +++ /dev/null @@ -1,13 +0,0 @@ -package utility - -// EscapeGlobPath escapes a partial path, determined at runtime, used as a parameter for filepath.Glob -func EscapeGlobPath(path string) string { - var escaped string - for _, ch := range path { - if ch == '[' || ch == ']' || ch == '-' || ch == '*' || ch == '?' || ch == '\\' { - escaped += "\\" - } - escaped += string(ch) - } - return escaped -} diff --git a/vendor/github.com/bitrise-io/go-xcode/utility/path.go b/vendor/github.com/bitrise-io/go-xcode/utility/path.go index de4f29f..99db913 100644 --- a/vendor/github.com/bitrise-io/go-xcode/utility/path.go +++ b/vendor/github.com/bitrise-io/go-xcode/utility/path.go @@ -2,33 +2,11 @@ package utility import ( "fmt" - "io/ioutil" "path/filepath" "github.com/bitrise-io/go-utils/pathutil" ) -// ListEntries ... -func ListEntries(dir string, filters ...pathutil.FilterFunc) ([]string, error) { - absDir, err := filepath.Abs(dir) - if err != nil { - return []string{}, err - } - - entries, err := ioutil.ReadDir(absDir) - if err != nil { - return []string{}, err - } - - var paths []string - for _, entry := range entries { - pth := filepath.Join(absDir, entry.Name()) - paths = append(paths, pth) - } - - return pathutil.FilterPaths(paths, filters...) -} - // FindFileInAppDir ... func FindFileInAppDir(appDir, fileName string) (string, error) { filePth := filepath.Join(appDir, fileName) @@ -40,13 +18,13 @@ func FindFileInAppDir(appDir, fileName string) (string, error) { // --- // It's somewhere else - let's find it! - apps, err := ListEntries(appDir, pathutil.ExtensionFilter(".app", true)) + apps, err := pathutil.ListEntries(appDir, pathutil.ExtensionFilter(".app", true)) if err != nil { return "", err } for _, app := range apps { - pths, err := ListEntries(app, pathutil.BaseFilter(fileName, true)) + pths, err := pathutil.ListEntries(app, pathutil.BaseFilter(fileName, true)) if err != nil { return "", 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 82b4ebd..96edeca 100644 --- a/vendor/github.com/bitrise-io/go-xcode/xcarchive/ios.go +++ b/vendor/github.com/bitrise-io/go-xcode/xcarchive/ios.go @@ -7,7 +7,6 @@ import ( "github.com/bitrise-io/go-utils/pathutil" "github.com/bitrise-io/go-xcode/plistutil" "github.com/bitrise-io/go-xcode/profileutil" - "github.com/bitrise-io/go-xcode/utility" ) type iosBaseApplication struct { @@ -113,7 +112,7 @@ func NewIosWatchApplication(path string) (IosWatchApplication, error) { } extensions := []IosExtension{} - pattern := filepath.Join(utility.EscapeGlobPath(path), "PlugIns/*.appex") + pattern := filepath.Join(pathutil.EscapeGlobPath(path), "PlugIns/*.appex") pths, err := filepath.Glob(pattern) if err != nil { return IosWatchApplication{}, fmt.Errorf("failed to search for watch application's extensions using pattern: %s, error: %s", pattern, err) @@ -162,7 +161,7 @@ func NewIosApplication(path string) (IosApplication, error) { var watchApp *IosWatchApplication { - pattern := filepath.Join(utility.EscapeGlobPath(path), "Watch/*.app") + pattern := filepath.Join(pathutil.EscapeGlobPath(path), "Watch/*.app") pths, err := filepath.Glob(pattern) if err != nil { return IosApplication{}, err @@ -179,7 +178,7 @@ func NewIosApplication(path string) (IosApplication, error) { var clipApp *IosClipApplication { - pattern := filepath.Join(utility.EscapeGlobPath(path), "AppClips/*.app") + pattern := filepath.Join(pathutil.EscapeGlobPath(path), "AppClips/*.app") pths, err := filepath.Glob(pattern) if err != nil { return IosApplication{}, err @@ -196,7 +195,7 @@ func NewIosApplication(path string) (IosApplication, error) { extensions := []IosExtension{} { - pattern := filepath.Join(utility.EscapeGlobPath(path), "PlugIns/*.appex") + pattern := filepath.Join(pathutil.EscapeGlobPath(path), "PlugIns/*.appex") pths, err := filepath.Glob(pattern) if err != nil { return IosApplication{}, fmt.Errorf("failed to search for watch application's extensions using pattern: %s, error: %s", pattern, err) @@ -282,7 +281,7 @@ func applicationFromPlist(InfoPlist plistutil.PlistData) (string, bool) { } func applicationFromArchive(path string) (string, error) { - pattern := filepath.Join(utility.EscapeGlobPath(path), "Products/Applications/*.app") + pattern := filepath.Join(pathutil.EscapeGlobPath(path), "Products/Applications/*.app") pths, err := filepath.Glob(pattern) if err != nil { return "", err diff --git a/vendor/github.com/bitrise-io/go-xcode/xcarchive/macos.go b/vendor/github.com/bitrise-io/go-xcode/xcarchive/macos.go index ef84b13..ddd48e3 100644 --- a/vendor/github.com/bitrise-io/go-xcode/xcarchive/macos.go +++ b/vendor/github.com/bitrise-io/go-xcode/xcarchive/macos.go @@ -6,7 +6,6 @@ import ( "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-utils/pathutil" ) @@ -108,7 +107,7 @@ func NewMacosApplication(path string) (MacosApplication, error) { extensions := []MacosExtension{} { - pattern := filepath.Join(utility.EscapeGlobPath(path), "Contents/PlugIns/*.appex") + pattern := filepath.Join(pathutil.EscapeGlobPath(path), "Contents/PlugIns/*.appex") pths, err := filepath.Glob(pattern) if err != nil { return MacosApplication{}, fmt.Errorf("failed to search for watch application's extensions using pattern: %s, error: %s", pattern, err) @@ -155,7 +154,7 @@ func NewMacosArchive(path string) (MacosArchive, error) { application := MacosApplication{} { - pattern := filepath.Join(utility.EscapeGlobPath(path), "Products/Applications/*.app") + pattern := filepath.Join(pathutil.EscapeGlobPath(path), "Products/Applications/*.app") pths, err := filepath.Glob(pattern) if err != nil { return MacosArchive{}, err diff --git a/vendor/github.com/bitrise-io/go-xcode/xcarchive/xcarchive.go b/vendor/github.com/bitrise-io/go-xcode/xcarchive/xcarchive.go index b859e84..9565cee 100644 --- a/vendor/github.com/bitrise-io/go-xcode/xcarchive/xcarchive.go +++ b/vendor/github.com/bitrise-io/go-xcode/xcarchive/xcarchive.go @@ -69,7 +69,7 @@ func getAppSubfolder(basepth string) string { func findDSYMs(archivePath string) ([]string, []string, error) { dsymsDirPth := filepath.Join(archivePath, "dSYMs") - dsyms, err := utility.ListEntries(dsymsDirPth, pathutil.ExtensionFilter(".dsym", true)) + dsyms, err := pathutil.ListEntries(dsymsDirPth, pathutil.ExtensionFilter(".dsym", true)) if err != nil { return []string{}, []string{}, err } diff --git a/vendor/golang.org/x/sys/windows/exec_windows.go b/vendor/golang.org/x/sys/windows/exec_windows.go index a020cae..7a11e83 100644 --- a/vendor/golang.org/x/sys/windows/exec_windows.go +++ b/vendor/golang.org/x/sys/windows/exec_windows.go @@ -9,6 +9,8 @@ package windows import ( errorspkg "errors" "unsafe" + + "golang.org/x/sys/internal/unsafeheader" ) // EscapeArg rewrites command line argument s as prescribed @@ -135,8 +137,8 @@ func FullPath(name string) (path string, err error) { } } -// NewProcThreadAttributeList allocates a new ProcThreadAttributeList, with the requested maximum number of attributes. -func NewProcThreadAttributeList(maxAttrCount uint32) (*ProcThreadAttributeList, error) { +// NewProcThreadAttributeList allocates a new ProcThreadAttributeListContainer, with the requested maximum number of attributes. +func NewProcThreadAttributeList(maxAttrCount uint32) (*ProcThreadAttributeListContainer, error) { var size uintptr err := initializeProcThreadAttributeList(nil, maxAttrCount, 0, &size) if err != ERROR_INSUFFICIENT_BUFFER { @@ -145,10 +147,9 @@ func NewProcThreadAttributeList(maxAttrCount uint32) (*ProcThreadAttributeList, } return nil, err } - const psize = unsafe.Sizeof(uintptr(0)) // size is guaranteed to be ≥1 by InitializeProcThreadAttributeList. - al := (*ProcThreadAttributeList)(unsafe.Pointer(&make([]unsafe.Pointer, (size+psize-1)/psize)[0])) - err = initializeProcThreadAttributeList(al, maxAttrCount, 0, &size) + al := &ProcThreadAttributeListContainer{data: (*ProcThreadAttributeList)(unsafe.Pointer(&make([]byte, size)[0]))} + err = initializeProcThreadAttributeList(al.data, maxAttrCount, 0, &size) if err != nil { return nil, err } @@ -156,11 +157,39 @@ func NewProcThreadAttributeList(maxAttrCount uint32) (*ProcThreadAttributeList, } // Update modifies the ProcThreadAttributeList using UpdateProcThreadAttribute. -func (al *ProcThreadAttributeList) Update(attribute uintptr, flags uint32, value unsafe.Pointer, size uintptr, prevValue unsafe.Pointer, returnedSize *uintptr) error { - return updateProcThreadAttribute(al, flags, attribute, value, size, prevValue, returnedSize) +// Note that the value passed to this function will be copied into memory +// allocated by LocalAlloc, the contents of which should not contain any +// Go-managed pointers, even if the passed value itself is a Go-managed +// pointer. +func (al *ProcThreadAttributeListContainer) Update(attribute uintptr, value unsafe.Pointer, size uintptr) error { + alloc, err := LocalAlloc(LMEM_FIXED, uint32(size)) + if err != nil { + return err + } + var src, dst []byte + hdr := (*unsafeheader.Slice)(unsafe.Pointer(&src)) + hdr.Data = value + hdr.Cap = int(size) + hdr.Len = int(size) + hdr = (*unsafeheader.Slice)(unsafe.Pointer(&dst)) + hdr.Data = unsafe.Pointer(alloc) + hdr.Cap = int(size) + hdr.Len = int(size) + copy(dst, src) + al.heapAllocations = append(al.heapAllocations, alloc) + return updateProcThreadAttribute(al.data, 0, attribute, unsafe.Pointer(alloc), size, nil, nil) } // Delete frees ProcThreadAttributeList's resources. -func (al *ProcThreadAttributeList) Delete() { - deleteProcThreadAttributeList(al) +func (al *ProcThreadAttributeListContainer) Delete() { + deleteProcThreadAttributeList(al.data) + for i := range al.heapAllocations { + LocalFree(Handle(al.heapAllocations[i])) + } + al.heapAllocations = nil +} + +// List returns the actual ProcThreadAttributeList to be passed to StartupInfoEx. +func (al *ProcThreadAttributeListContainer) List() *ProcThreadAttributeList { + return al.data } diff --git a/vendor/golang.org/x/sys/windows/types_windows.go b/vendor/golang.org/x/sys/windows/types_windows.go index 23fe18e..1f73339 100644 --- a/vendor/golang.org/x/sys/windows/types_windows.go +++ b/vendor/golang.org/x/sys/windows/types_windows.go @@ -909,14 +909,15 @@ type StartupInfoEx struct { // ProcThreadAttributeList is a placeholder type to represent a PROC_THREAD_ATTRIBUTE_LIST. // -// To create a *ProcThreadAttributeList, use NewProcThreadAttributeList, and -// free its memory using ProcThreadAttributeList.Delete. -type ProcThreadAttributeList struct { - // This is of type unsafe.Pointer, not of type byte or uintptr, because - // the contents of it is mostly a list of pointers, and in most cases, - // that's a list of pointers to Go-allocated objects. In order to keep - // the GC from collecting these objects, we declare this as unsafe.Pointer. - _ [1]unsafe.Pointer +// To create a *ProcThreadAttributeList, use NewProcThreadAttributeList, update +// it with ProcThreadAttributeListContainer.Update, free its memory using +// ProcThreadAttributeListContainer.Delete, and access the list itself using +// ProcThreadAttributeListContainer.List. +type ProcThreadAttributeList struct{} + +type ProcThreadAttributeListContainer struct { + data *ProcThreadAttributeList + heapAllocations []uintptr } type ProcessInformation struct { diff --git a/vendor/modules.txt b/vendor/modules.txt index 0a5a545..f9c5bcc 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -44,7 +44,7 @@ github.com/bitrise-io/go-xamarin/tools/buildtools/msbuild github.com/bitrise-io/go-xamarin/tools/buildtools/xbuild github.com/bitrise-io/go-xamarin/tools/nunit github.com/bitrise-io/go-xamarin/utility -# github.com/bitrise-io/go-xcode v0.0.0-20210520114025-bdbec53ee59f +# github.com/bitrise-io/go-xcode v0.0.0-20210521101355-fb6a1eb6e05b ## explicit github.com/bitrise-io/go-xcode/certificateutil github.com/bitrise-io/go-xcode/export @@ -100,7 +100,8 @@ github.com/stretchr/testify/assert github.com/stretchr/testify/require # golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a golang.org/x/crypto/ssh/terminal -# golang.org/x/sys v0.0.0-20210514084401-e8d321eab015 +# golang.org/x/sys v0.0.0-20210521090106-6ca3eb03dfc2 +## explicit golang.org/x/sys/internal/unsafeheader golang.org/x/sys/plan9 golang.org/x/sys/unix