case packageBuildError(String)
case packageSigningError(String)
case packageNotarisationError(String)
+ case packageSparkleBuildError(String)
+ case packageSparkleSignError(String)
}
func buildPackage(buildWorkPath: String, productPath: String) throws -> String {
}
}
+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!")
+ }
+}
@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
)
}
}
+
+ let sparklePackagePath =
+ try buildSparklePackage(packagePath: packagePath, buildPath: buildPath)
+
+ if let sparklePackageSignKey {
+ try signSparklePackage(
+ sparkleTbzPath: sparklePackagePath,
+ buildPath: buildPath,
+ signKey: sparklePackageSignKey
+ )
+ }
}
print("Done!")