| 254 | } |
| 255 | |
| 256 | func uploadFileAtPath(octopus newclient.Client, space *spaces.Space, path string, overwriteMode packages.OverwriteMode, useDeltaCompression bool, cmd *cobra.Command) (*packages.PackageUploadResponseV2, error) { |
| 257 | opener := func(name string) (io.ReadSeekCloser, error) { return os.Open(name) } |
| 258 | if cmd.Context() != nil { // allow context to override the definition of 'os.Open' for testing |
| 259 | if f, ok := cmd.Context().Value(constants.ContextKeyOsOpen).(func(string) (io.ReadSeekCloser, error)); ok { |
| 260 | opener = f |
| 261 | } |
| 262 | } |
| 263 | |
| 264 | fileReader, err := opener(path) |
| 265 | if err != nil { |
| 266 | return nil, err |
| 267 | } |
| 268 | |
| 269 | // Note: the PackageUploadResponse has a lot of information in it, but we've chosen not to do anything |
| 270 | // with it in the CLI at this time. |
| 271 | result, err := packages.UploadV2(octopus, space.ID, filepath.Base(path), fileReader, overwriteMode, useDeltaCompression) |
| 272 | _ = fileReader.Close() |
| 273 | return result, err |
| 274 | } |