Add ability to build and sign sparkle tbz from mac-crafter

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
This commit is contained in:
Claudio Cambra 2024-09-19 21:02:43 +08:00
parent 7b76243290
commit d60f02ab0e
2 changed files with 30 additions and 0 deletions

View File

@ -19,6 +19,8 @@ enum PackagingError: Error {
case packageBuildError(String)
case packageSigningError(String)
case packageNotarisationError(String)
case packageSparkleBuildError(String)
case packageSparkleSignError(String)
}
func buildPackage(buildWorkPath: String, productPath: String) throws -> String {
@ -57,3 +59,17 @@ func notarisePackage(
}
}
func buildSparklePackage(packagePath: String, buildPath: String) throws -> String {
let sparkleTbzPath = "\(packagePath).tbz"
guard shell("tar cf \(sparkleTbzPath) \(packagePath)") == 0 else {
throw PackagingError.packageSparkleBuildError("Could not create Sparkle package tbz!")
}
return sparkleTbzPath
}
func signSparklePackage(sparkleTbzPath: String, buildPath: String, signKey: String) throws
{
guard shell("\(buildPath)/bin/sign_update -s \(signKey) \(sparkleTbzPath)") == 0 else {
throw PackagingError.packageSparkleSignError("Could not sign Sparkle package tbz!")
}
}

View File

@ -77,6 +77,9 @@ struct Build: ParsableCommand {
@Option(name: [.long], help: "Apple package signing ID.")
var packageSigningId: String?
@Option(name: [.long], help: "Sparkle package signing key.")
var sparklePackageSignKey: String?
@Flag(help: "Reconfigure KDE Craft.")
var reconfigureCraft = false
@ -241,6 +244,17 @@ struct Build: ParsableCommand {
)
}
}
let sparklePackagePath =
try buildSparklePackage(packagePath: packagePath, buildPath: buildPath)
if let sparklePackageSignKey {
try signSparklePackage(
sparkleTbzPath: sparklePackagePath,
buildPath: buildPath,
signKey: sparklePackageSignKey
)
}
}
print("Done!")