Also sign executables during recursive codesign
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Thu, 21 Nov 2024 05:16:33 +0000 (13:16 +0800)
committerClaudio Cambra <claudio.cambra@nextcloud.com>
Thu, 21 Nov 2024 05:18:20 +0000 (13:18 +0800)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
admin/osx/mac-crafter/Sources/Utils/Codesign.swift

index 7b4654762dd4f5115ba5869187711bc539f03a36..12999abb5ed001d1c0ea0de1008e757d2f8f27f4 100644 (file)
@@ -32,6 +32,10 @@ func isAppExtension(_ path: String) -> Bool {
     path.hasSuffix(".appex")
 }
 
+func isExecutable(_ path: String) -> Bool {
+    FileManager.default.isExecutableFile(atPath: path)
+}
+
 func codesign(identity: String, path: String, options: String = defaultCodesignOptions) throws {
     print("Code-signing \(path)...")
     let command = "codesign -s \"\(identity)\" \(options) \"\(path)\""
@@ -53,7 +57,10 @@ func recursivelyCodesign(
     }
 
     for case let enumeratedItem as String in pathEnumerator {
-        guard isLibrary(enumeratedItem) || isAppExtension(enumeratedItem) else { continue }
+        guard isLibrary(enumeratedItem) ||
+              isAppExtension(enumeratedItem) ||
+              isExecutable(enumeratedItem)
+        else { continue }
         try codesign(identity: identity, path: "\(path)/\(enumeratedItem)")
     }
 }