Skip to content

Commit

Permalink
Move building into separate subcommand, add subcommand just for codes…
Browse files Browse the repository at this point in the history
…igning

Signed-off-by: Claudio Cambra <[email protected]>
  • Loading branch information
claucambra committed Sep 11, 2024
1 parent dcd640a commit 8580dcc
Showing 1 changed file with 30 additions and 11 deletions.
41 changes: 30 additions & 11 deletions admin/osx/mac-crafter/Sources/main.swift
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,8 @@
import ArgumentParser
import Foundation

struct MacCrafter: ParsableCommand {
static let configuration = CommandConfiguration(
abstract: "A tool to easily build a fully-functional Nextcloud Desktop Client for macOS."
)
struct Build: ParsableCommand {
static let configuration = CommandConfiguration(abstract: "Client building script")

enum MacCrafterError: Error {
case failedEnumeration(String)
Expand Down Expand Up @@ -194,14 +192,11 @@ struct MacCrafter: ParsableCommand {
throw MacCrafterError.craftError("Error crafting Nextcloud Desktop Client.")
}

guard let codeSignIdentity else {
print("Crafted Nextcloud Desktop Client. Not codesigned.")
return
}

print("Code-signing Nextcloud Desktop Client libraries and frameworks...")
let clientAppDir = "\(clientBuildDir)/image-\(buildType)-master/\(appName).app"
try codesignClientAppBundle(at: clientAppDir, withCodeSignIdentity: codeSignIdentity)
if let codeSignIdentity {
print("Code-signing Nextcloud Desktop Client libraries and frameworks...")
try codesignClientAppBundle(at: clientAppDir, withCodeSignIdentity: codeSignIdentity)
}

print("Placing Nextcloud Desktop Client in \(productPath)...")
if !fm.fileExists(atPath: productPath) {
Expand All @@ -218,4 +213,28 @@ struct MacCrafter: ParsableCommand {
}
}

struct Codesign: ParsableCommand {
static let configuration = CommandConfiguration(abstract: "Codesigning script for the client.")

@Argument(help: "Path to the Nextcloud Desktop Client app bundle.")
var appBundlePath = "\(FileManager.default.currentDirectoryPath)/product/Nextcloud.app"

@Option(name: [.short, .long], help: "Code signing identity for desktop client and libs.")
var codeSignIdentity: String

mutating func run() throws {
try codesignClientAppBundle(at: appBundlePath, withCodeSignIdentity: codeSignIdentity)
}
}

struct MacCrafter: ParsableCommand {
static let configuration = CommandConfiguration(
abstract: "A tool to easily build a fully-functional Nextcloud Desktop Client for macOS.",
subcommands: [Build.self, Codesign.self],
defaultSubcommand: Build.self
)


}

MacCrafter.main()

0 comments on commit 8580dcc

Please sign in to comment.