Files
darwin-apk/Sources/apk/Index/ApkIndexRepository.swift

31 lines
837 B
Swift

/*
* darwin-apk © 2024 Gay Pizza Specifications
* SPDX-License-Identifier: Apache-2.0
*/
import Foundation
import CryptoKit
public struct ApkIndexRepository {
public let name: String
public let arch: String
public let discriminator: String
private static func resolveApkIndex(_ repo: String, _ arch: String)
-> String { "\(repo)/\(arch)/APKINDEX.tar.gz" }
public var url: URL {
URL(string: Self.resolveApkIndex(self.name, self.arch))!
}
public var localName: String { "APKINDEX.\(discriminator).tar.gz" }
public init(name repo: String, arch: String) {
self.name = repo
self.arch = arch
let urlSHA1Digest = Data(Insecure.SHA1.hash(data: Data(Self.resolveApkIndex(repo, arch).utf8)))
self.discriminator = urlSHA1Digest.subdata(in: 0..<3).map { String(format: "%02x", $0) }.joined()
}
}