Skip to content

Commit 3a6eae5

Browse files
committed
first working version
1 parent 29d4bea commit 3a6eae5

File tree

2 files changed

+15
-14
lines changed

2 files changed

+15
-14
lines changed

Package.swift

+3
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ import PackageDescription
55

66
let package = Package(
77
name: "swift-prefs",
8+
platforms: [
9+
.macOS(.v13)
10+
],
811
products: [
912
.executable(name: "prefs", targets: ["prefs"]),
1013
.executable(name: "plist2profile", targets: ["plist2profile"])

Sources/plist2profile/Plist2Profile.swift

+12-14
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,6 @@ struct Plist2Profile: ParsableCommand {
6262
var payloadScope = "System" // or "User"
6363

6464
// TODO: missing keys for profile
65-
// payload scope
6665
// removal disallowed
6766
// removalDate, duration until removal
6867
// description
@@ -123,8 +122,8 @@ struct Plist2Profile: ParsableCommand {
123122
// payload keys
124123
payload["PayloadIdentifier"] = plistname
125124
payload["PayloadType"] = plistname
126-
payload["PayloadDisplayName"] = "\(displayName): \(plistname)"
127-
payload["PayloadUUID"] = payloadUUID.description
125+
payload["PayloadDisplayName"] = displayName
126+
payload["PayloadUUID"] = payloadUUID.uuidString
128127
payload["PayloadVersion"] = payloadVersion
129128

130129
if !organization.isEmpty {
@@ -140,12 +139,10 @@ struct Plist2Profile: ParsableCommand {
140139
try validatePlists()
141140
populateDefaults()
142141

143-
print("Hello, plist2profile!")
144-
145-
// Boilerplate
142+
// Boilerplate keys
146143
let profileDict: NSMutableDictionary = [
147144
"PayloadIdentifier": identifier,
148-
"PayloadUUID": uuid.description,
145+
"PayloadUUID": uuid.uuidString,
149146
"PayloadVersion": payloadVersion,
150147
"PayloadType": payloadType,
151148
"PayloadDisplayName": displayName,
@@ -162,13 +159,14 @@ struct Plist2Profile: ParsableCommand {
162159
let payload = try createModernPayload(plistPath: plistPath)
163160
payloads.add(payload)
164161

165-
// insert payloads array
166-
profileDict["PayloadContent"] = payloads
167162
}
168-
169-
guard let plistData = try? PropertyListSerialization.data(fromPropertyList: profileDict, format: .xml, options: .zero)
170-
else { try exit("could generate property list", code: 73) }
171-
172-
print(String(data: plistData, encoding: .utf8) ?? "<no data>")
163+
164+
// insert payloads array
165+
profileDict["PayloadContent"] = payloads
166+
167+
let profileURL = URL(filePath: identifier)
168+
.appendingPathExtension("mobileconfig")
169+
try profileDict.write(to: profileURL)
170+
print(profileURL.relativePath)
173171
}
174172
}

0 commit comments

Comments
 (0)