Codesign all crafted plugins in mac crafter
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Thu, 20 Jun 2024 06:27:37 +0000 (14:27 +0800)
committerClaudio Cambra <developer@claudiocambra.com>
Mon, 8 Jul 2024 07:41:45 +0000 (15:41 +0800)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
admin/osx/mac-crafter/Sources/main.swift

index a282d7ae4a1d30a3dc4d7be9e2b131adf06eb9bf..aed68631f59ff53c44616ebf71823480599fbde2 100644 (file)
@@ -78,6 +78,17 @@ struct MacCrafter: ParsableCommand {
             try codesign(identity: codeSignIdentity, path: libPath)
         }
 
+        let craftPluginsDir = "\(currentDir)/\(craftTarget)/plugins"
+        guard let craftPluginsEnumerator = fm.enumerator(atPath: craftPluginsDir) else {
+            throw MacCrafterError.failedEnumeration("Failed to list craft plugins directory.")
+        }
+
+        for case let plugin as String in craftPluginsEnumerator {
+            let pluginPath = "\(craftPluginsDir)/\(plugin)"
+            guard plugin.hasSuffix(".dylib") || plugin.hasSuffix(".framework") else { continue }
+            try codesign(identity: codeSignIdentity, path: pluginPath)
+        }
+
         print("Crafting Nextcloud Desktop Client...")
         shell("\(craftCommand) --src-dir \(repoRootDir) nextcloud-client")
     }