mirror of
https://github.com/apple/container.git
synced 2026-09-27 10:05:42 +00:00
Initial commit
Co-authored-by: Aditya Ramani <a_ramani@apple.com> Co-authored-by: Agam Dua <agam_dua@apple.com> Co-authored-by: Danny Canter <danny_canter@apple.com> Co-authored-by: Dmitry Kovba <dkovba@apple.com> Co-authored-by: Eric Ernst <eric_ernst@apple.com> Co-authored-by: Evan Hazlett <ehazlett@apple.com> Co-authored-by: Gilbert Song <gilbertsong@apple.com> Co-authored-by: Hugh Bussell <hbussell@apple.com> Co-authored-by: John Logan <john_logan@apple.com> Co-authored-by: Kathryn Baldauf <k_baldauf@apple.com> Co-authored-by: Madhu Venugopal <mvenugopal@apple.com> Co-authored-by: Michael Crosby <michael_crosby@apple.com> Co-authored-by: Sidhartha Mani <sidhartha_mani@apple.com> Co-authored-by: Tanweer Noor <tnoor@apple.com> Co-authored-by: Ximena Perez Diaz <xperez528@gmail.com> Co-authored-by: Yibo Zhuang <yzhuang@apple.com>
This commit is contained in:
co-authored by
Aditya Ramani
Agam Dua
Danny Canter
Dmitry Kovba
Eric Ernst
Evan Hazlett
Gilbert Song
Hugh Bussell
John Logan
Madhu Venugopal
Michael Crosby
Sidhartha Mani
Tanweer Noor
Ximena Perez Diaz
Yibo Zhuang
commit
8e9670c8f8
@@ -0,0 +1,154 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Copyright © 2025 Apple Inc. and the container project authors. All rights reserved.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// https://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
import Containerization
|
||||
import ContainerizationOCI
|
||||
|
||||
public typealias IO = Com_Apple_Container_Build_V1_IO
|
||||
public typealias InfoRequest = Com_Apple_Container_Build_V1_InfoRequest
|
||||
public typealias InfoResponse = Com_Apple_Container_Build_V1_InfoResponse
|
||||
public typealias ClientStream = Com_Apple_Container_Build_V1_ClientStream
|
||||
public typealias ServerStream = Com_Apple_Container_Build_V1_ServerStream
|
||||
public typealias ImageTransfer = Com_Apple_Container_Build_V1_ImageTransfer
|
||||
public typealias BuildTransfer = Com_Apple_Container_Build_V1_BuildTransfer
|
||||
public typealias BuilderClient = Com_Apple_Container_Build_V1_BuilderNIOClient
|
||||
public typealias BuilderClientAsync = Com_Apple_Container_Build_V1_BuilderAsyncClient
|
||||
public typealias BuilderClientProtocol = Com_Apple_Container_Build_V1_BuilderClientProtocol
|
||||
public typealias BuilderClientAsyncProtocol = Com_Apple_Container_Build_V1_BuilderAsyncClient
|
||||
|
||||
extension BuildTransfer {
|
||||
func stage() -> String? {
|
||||
let stage = self.metadata["stage"]
|
||||
return stage == "" ? nil : stage
|
||||
}
|
||||
|
||||
func method() -> String? {
|
||||
let method = self.metadata["method"]
|
||||
return method == "" ? nil : method
|
||||
}
|
||||
|
||||
func includePatterns() -> [String]? {
|
||||
guard let includePatternsString = self.metadata["include-patterns"] else {
|
||||
return nil
|
||||
}
|
||||
return includePatternsString == "" ? nil : includePatternsString.components(separatedBy: ",")
|
||||
}
|
||||
|
||||
func followPaths() -> [String]? {
|
||||
guard let followPathString = self.metadata["followpaths"] else {
|
||||
return nil
|
||||
}
|
||||
return followPathString == "" ? nil : followPathString.components(separatedBy: ",")
|
||||
}
|
||||
|
||||
func mode() -> String? {
|
||||
self.metadata["mode"]
|
||||
}
|
||||
|
||||
func size() -> Int? {
|
||||
guard let sizeStr = self.metadata["size"] else {
|
||||
return nil
|
||||
}
|
||||
return sizeStr == "" ? nil : Int(sizeStr)
|
||||
}
|
||||
|
||||
func offset() -> UInt64? {
|
||||
guard let offsetStr = self.metadata["offset"] else {
|
||||
return nil
|
||||
}
|
||||
return offsetStr == "" ? nil : UInt64(offsetStr)
|
||||
}
|
||||
|
||||
func len() -> Int? {
|
||||
guard let lenStr = self.metadata["length"] else {
|
||||
return nil
|
||||
}
|
||||
return lenStr == "" ? nil : Int(lenStr)
|
||||
}
|
||||
}
|
||||
|
||||
extension ImageTransfer {
|
||||
func stage() -> String? {
|
||||
self.metadata["stage"]
|
||||
}
|
||||
|
||||
func method() -> String? {
|
||||
self.metadata["method"]
|
||||
}
|
||||
|
||||
func ref() -> String? {
|
||||
self.metadata["ref"]
|
||||
}
|
||||
|
||||
func platform() throws -> Platform? {
|
||||
let metadata = self.metadata
|
||||
guard let platform = metadata["platform"] else {
|
||||
return nil
|
||||
}
|
||||
return try Platform(from: platform)
|
||||
}
|
||||
|
||||
func mode() -> String? {
|
||||
self.metadata["mode"]
|
||||
}
|
||||
|
||||
func size() -> Int? {
|
||||
let metadata = self.metadata
|
||||
guard let sizeStr = metadata["size"] else {
|
||||
return nil
|
||||
}
|
||||
return Int(sizeStr)
|
||||
}
|
||||
|
||||
func len() -> Int? {
|
||||
let metadata = self.metadata
|
||||
guard let lenStr = metadata["length"] else {
|
||||
return nil
|
||||
}
|
||||
return Int(lenStr)
|
||||
}
|
||||
|
||||
func offset() -> UInt64? {
|
||||
let metadata = self.metadata
|
||||
guard let offsetStr = metadata["offset"] else {
|
||||
return nil
|
||||
}
|
||||
return UInt64(offsetStr)
|
||||
}
|
||||
}
|
||||
|
||||
extension ServerStream {
|
||||
func getImageTransfer() -> ImageTransfer? {
|
||||
if case .imageTransfer(let v) = self.packetType {
|
||||
return v
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func getBuildTransfer() -> BuildTransfer? {
|
||||
if case .buildTransfer(let v) = self.packetType {
|
||||
return v
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func getIO() -> IO? {
|
||||
if case .io(let v) = self.packetType {
|
||||
return v
|
||||
}
|
||||
return nil
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user