Skip to content

Commit c01bad2

Browse files
authored
Merge pull request #62 from macadmins/dev_4.2.0
All the changes for Outset 4.2.0 - which really should be PR'd into main for each feature instead of a dev branch and build pre-release from main instead of a branch.
2 parents ef7b4ad + 5851ba9 commit c01bad2

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+1247
-488
lines changed

.github/workflows/build_outset_prerelease_manual.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,14 +41,14 @@ jobs:
4141
4242
- name: Generate changelog
4343
id: changelog
44-
uses: metcalfc/changelog-generator@afdcb9470aebdb2252c0c95a1c130723c9e21f3a # v4.1
44+
uses: metcalfc/changelog-generator@v4
4545
with:
4646
myToken: ${{ secrets.GITHUB_TOKEN }}
4747
reverse: 'true'
4848

4949
- name: Create Release
5050
id: create_release
51-
uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 # v0.1.15
51+
uses: softprops/action-gh-release@v2
5252
with:
5353
name: Outset ${{env.OUTSET_VERSION}}
5454
tag_name: v${{env.OUTSET_VERSION}}
@@ -68,7 +68,7 @@ jobs:
6868
files: ${{github.workspace}}/outputs/*.pkg
6969

7070
- name: Upload packages
71-
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
71+
uses: actions/upload-artifact@v4
7272
with:
7373
name: packages
7474
path: outputs/

.github/workflows/build_outset_release_manual.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,23 +7,23 @@ on: [workflow_dispatch]
77

88
jobs:
99
build:
10-
runs-on: macos-12
10+
runs-on: macos-14
1111

1212
steps:
1313
- name: Checkout outset repo
14-
uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f # v3.4.0
14+
uses: actions/checkout@v4
1515
with:
1616
fetch-depth: 0
1717

1818
- name: Install Apple Xcode certificates
19-
uses: apple-actions/import-codesign-certs@8f3fb608891dd2244cdab3d69cd68c0d37a7fe93 # v2.0.0
19+
uses: apple-actions/import-codesign-certs@v3
2020
with:
2121
keychain-password: ${{ github.run_id }}
2222
p12-file-base64: ${{ secrets.APP_CERTIFICATES_P12_MAOS }}
2323
p12-password: ${{ secrets.APP_CERTIFICATES_P12_PASSWORD_MAOS }}
2424

2525
- name: Install Apple Installer certificates
26-
uses: apple-actions/import-codesign-certs@8f3fb608891dd2244cdab3d69cd68c0d37a7fe93 # v2.0.0
26+
uses: apple-actions/import-codesign-certs@v3
2727
with:
2828
create-keychain: false # do not create a new keychain for this value
2929
keychain-password: ${{ github.run_id }}
@@ -41,14 +41,14 @@ jobs:
4141
4242
- name: Generate changelog
4343
id: changelog
44-
uses: metcalfc/changelog-generator@afdcb9470aebdb2252c0c95a1c130723c9e21f3a # v4.1
44+
uses: metcalfc/changelog-generator@v4
4545
with:
4646
myToken: ${{ secrets.GITHUB_TOKEN }}
4747
reverse: 'true'
4848

4949
- name: Create Release
5050
id: create_release
51-
uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 # v0.1.15
51+
uses: softprops/action-gh-release@v2
5252
with:
5353
name: Outset ${{env.OUTSET_VERSION}}
5454
tag_name: v${{env.OUTSET_VERSION}}
@@ -68,7 +68,7 @@ jobs:
6868
files: ${{github.workspace}}/outputs/*.pkg
6969

7070
- name: Upload packages
71-
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
71+
uses: actions/upload-artifact@v4
7272
with:
7373
name: packages
7474
path: outputs/

.swiftlint.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ disabled_rules: # rule identifiers turned on by default to exclude from running
55
- cyclomatic_complexity
66
- large_tuple
77
- force_cast
8-
8+
- type_body_length
99

1010
excluded: # paths to ignore during linting. Takes precedence over `included`.
1111
- ./build/SourcePackages/checkouts/swift-argument-parser/*
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
{
2+
"__preferencedomain": "io.macadmins.Outset",
3+
"options": {
4+
"remove_empty_properties": true
5+
},
6+
"title": "Outset (io.macadmins.Outset)",
7+
"description": "Outset automatically processes packages and scripts during the boot sequence, user logins, or on demand.",
8+
"properties": {
9+
"ignored_users": {
10+
"title": "Ignored Users",
11+
"description": "Exclude certain users from scripts that run in the login context (I.e. a local admin account or a static kiosk user).",
12+
"type": "array",
13+
"items": {
14+
"type": "string"
15+
}
16+
},
17+
"network_timeout": {
18+
"title": "Network Timeout",
19+
"description": "By default, during boot-once runs, Outset will wait for an active network connection before continuing. If that directory is populated, it would check every ten seconds for a valid network connection, timing out after a total of 180 seconds (three minutes) and skipping those items if no connection is successfully detected.",
20+
"type": "integer",
21+
"default": "180",
22+
"options": {
23+
"inputAttributes": {
24+
"placeholder": "180"
25+
}
26+
}
27+
},
28+
"wait_for_network": {
29+
"title": "Wait for Network",
30+
"description": "If you don't want Outset to wait for a valid network connection at all (and you don't want it to suppress the loginwindow process while running scripts) you can deliver a readable preference file with the wait_for_network value set to boolean false.",
31+
"type": "boolean",
32+
"default": true
33+
},
34+
"sha256sum": {
35+
"title": "Checksums",
36+
"description": "Enforce script integrity and ensure that only script that you want to run gets run. When used, every file to be processed must have a matching hash value. Absence of a hash value or value mismatch will prevent Outset from processing that file.",
37+
"type": "object",
38+
"additionalProperties": {
39+
"type": "string"
40+
}
41+
},
42+
"verbose_logging": {
43+
"title": "Verbose Logging",
44+
"description": "Enable verbose logging",
45+
"type": "boolean",
46+
"default": false
47+
}
48+
}
49+
}

Outset.xcodeproj/project.pbxproj

Lines changed: 60 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,9 @@
1212
413833A429CC6A1B0093319F /* outset-pkg in CopyFiles */ = {isa = PBXBuildFile; fileRef = 413833A229CC69800093319F /* outset-pkg */; };
1313
41765AC829C8450800D616BF /* Library in CopyFiles */ = {isa = PBXBuildFile; fileRef = 4124EFCD29446FDE003B00F4 /* Library */; };
1414
41765ACA29C97B6400D616BF /* Services.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41765AC929C97B6400D616BF /* Services.swift */; };
15+
41DC78072E3C5B2500E67988 /* outset-payload in Resources */ = {isa = PBXBuildFile; fileRef = 41DC78062E3C5B2500E67988 /* outset-payload */; };
1516
41E28EA229ACDCD6002ADBE5 /* Outset.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4124EF90293822F4003B00F4 /* Outset.swift */; };
16-
41E28EA329ACDCE3002ADBE5 /* FileUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4124EFA2293B2F9B003B00F4 /* FileUtils.swift */; };
17+
41E28EA329ACDCE3002ADBE5 /* CoreFileUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4124EFA2293B2F9B003B00F4 /* CoreFileUtils.swift */; };
1718
41E28EA429ACDCE3002ADBE5 /* ItemProcessing.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4124EFA4293B304B003B00F4 /* ItemProcessing.swift */; };
1819
41E28EA529ACDCE3002ADBE5 /* SystemUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4124EF99293824C8003B00F4 /* SystemUtils.swift */; };
1920
41E28EA729ACDD1F002ADBE5 /* ArgumentParser in Frameworks */ = {isa = PBXBuildFile; productRef = 41E28EA629ACDD1F002ADBE5 /* ArgumentParser */; };
@@ -25,7 +26,12 @@
2526
CC3DC82D2AA70EE60050EE16 /* Data+additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC3DC82C2AA70EE60050EE16 /* Data+additions.swift */; };
2627
CC3DC82F2AA70F230050EE16 /* URL+additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC3DC82E2AA70F230050EE16 /* URL+additions.swift */; };
2728
CC3DC8312AA70F790050EE16 /* String+additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC3DC8302AA70F790050EE16 /* String+additions.swift */; };
28-
CC3DC8332AA7100C0050EE16 /* ShellUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC3DC8322AA7100C0050EE16 /* ShellUtils.swift */; };
29+
CC3DC8332AA7100C0050EE16 /* Shell.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC3DC8322AA7100C0050EE16 /* Shell.swift */; };
30+
CC7DDB972C2C18E8000CBEC5 /* Globals.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC7DDB962C2C18E8000CBEC5 /* Globals.swift */; };
31+
CC7DDB9A2C2C1CAC000CBEC5 /* DMG.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC7DDB992C2C1CAC000CBEC5 /* DMG.swift */; };
32+
CC7DDB9C2C2C1CD9000CBEC5 /* Packages.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC7DDB9B2C2C1CD9000CBEC5 /* Packages.swift */; };
33+
CC7DDBA22C2C1E3C000CBEC5 /* LegacyPreferences.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC7DDBA12C2C1E3C000CBEC5 /* LegacyPreferences.swift */; };
34+
CC7DDBA42C2C1E8C000CBEC5 /* Payloads.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC7DDBA32C2C1E8C000CBEC5 /* Payloads.swift */; };
2935
/* End PBXBuildFile section */
3036

3137
/* Begin PBXContainerItemProxy section */
@@ -64,7 +70,7 @@
6470
/* Begin PBXFileReference section */
6571
4124EF90293822F4003B00F4 /* Outset.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Outset.swift; sourceTree = "<group>"; };
6672
4124EF99293824C8003B00F4 /* SystemUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SystemUtils.swift; sourceTree = "<group>"; };
67-
4124EFA2293B2F9B003B00F4 /* FileUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileUtils.swift; sourceTree = "<group>"; };
73+
4124EFA2293B2F9B003B00F4 /* CoreFileUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CoreFileUtils.swift; sourceTree = "<group>"; };
6874
4124EFA4293B304B003B00F4 /* ItemProcessing.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ItemProcessing.swift; sourceTree = "<group>"; };
6975
4124EFAD29414A5D003B00F4 /* Outset.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Outset.app; sourceTree = BUILT_PRODUCTS_DIR; };
7076
4124EFB329414A5E003B00F4 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
@@ -81,6 +87,7 @@
8187
41A67A13296BF35F000BFFCE /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
8288
41ADC47C29AECB8B00C5B94C /* outset */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = outset; sourceTree = "<group>"; };
8389
41ADC47E29AF649C00C5B94C /* LICENSE.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE.md; sourceTree = "<group>"; };
90+
41DC78062E3C5B2500E67988 /* outset-payload */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = "outset-payload"; sourceTree = "<group>"; };
8491
CC3DC8212AA70B2D0050EE16 /* Logging.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Logging.swift; sourceTree = "<group>"; };
8592
CC3DC8232AA70BD40050EE16 /* Preferences.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Preferences.swift; sourceTree = "<group>"; };
8693
CC3DC8252AA70D2D0050EE16 /* Network.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Network.swift; sourceTree = "<group>"; };
@@ -89,7 +96,12 @@
8996
CC3DC82C2AA70EE60050EE16 /* Data+additions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Data+additions.swift"; sourceTree = "<group>"; };
9097
CC3DC82E2AA70F230050EE16 /* URL+additions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "URL+additions.swift"; sourceTree = "<group>"; };
9198
CC3DC8302AA70F790050EE16 /* String+additions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+additions.swift"; sourceTree = "<group>"; };
92-
CC3DC8322AA7100C0050EE16 /* ShellUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShellUtils.swift; sourceTree = "<group>"; };
99+
CC3DC8322AA7100C0050EE16 /* Shell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Shell.swift; sourceTree = "<group>"; };
100+
CC7DDB962C2C18E8000CBEC5 /* Globals.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Globals.swift; sourceTree = "<group>"; };
101+
CC7DDB992C2C1CAC000CBEC5 /* DMG.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DMG.swift; sourceTree = "<group>"; };
102+
CC7DDB9B2C2C1CD9000CBEC5 /* Packages.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Packages.swift; sourceTree = "<group>"; };
103+
CC7DDBA12C2C1E3C000CBEC5 /* LegacyPreferences.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LegacyPreferences.swift; sourceTree = "<group>"; };
104+
CC7DDBA32C2C1E8C000CBEC5 /* Payloads.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Payloads.swift; sourceTree = "<group>"; };
93105
/* End PBXFileReference section */
94106

95107
/* Begin PBXFrameworksBuildPhase section */
@@ -128,16 +140,13 @@
128140
4124EFA6293B30D6003B00F4 /* Utils */ = {
129141
isa = PBXGroup;
130142
children = (
131-
4124EFA2293B2F9B003B00F4 /* FileUtils.swift */,
143+
CC7DDB982C2C1C65000CBEC5 /* FileUtils */,
132144
4124EFA4293B304B003B00F4 /* ItemProcessing.swift */,
133145
4124EF99293824C8003B00F4 /* SystemUtils.swift */,
134146
41765AC929C97B6400D616BF /* Services.swift */,
135147
CC3DC8212AA70B2D0050EE16 /* Logging.swift */,
136-
CC3DC8232AA70BD40050EE16 /* Preferences.swift */,
137148
CC3DC8252AA70D2D0050EE16 /* Network.swift */,
138149
CC3DC8272AA70D930050EE16 /* SystemInfo.swift */,
139-
CC3DC8292AA70E380050EE16 /* Checksum.swift */,
140-
CC3DC8322AA7100C0050EE16 /* ShellUtils.swift */,
141150
);
142151
path = Utils;
143152
sourceTree = "<group>";
@@ -146,7 +155,9 @@
146155
isa = PBXGroup;
147156
children = (
148157
4124EF90293822F4003B00F4 /* Outset.swift */,
158+
CC7DDB962C2C18E8000CBEC5 /* Globals.swift */,
149159
CC3DC82B2AA70EC90050EE16 /* Extensions */,
160+
CC7DDB9F2C2C1DB5000CBEC5 /* UserDefaults */,
150161
4124EFA6293B30D6003B00F4 /* Utils */,
151162
4124EFC329414DA4003B00F4 /* Info.plist */,
152163
4124EFB329414A5E003B00F4 /* Assets.xcassets */,
@@ -179,6 +190,7 @@
179190
41A679FE2966479E000BFFCE /* generatePackage.zsh */,
180191
41ADC47C29AECB8B00C5B94C /* outset */,
181192
413833A229CC69800093319F /* outset-pkg */,
193+
41DC78062E3C5B2500E67988 /* outset-payload */,
182194
);
183195
path = Package;
184196
sourceTree = "<group>";
@@ -202,6 +214,36 @@
202214
path = Extensions;
203215
sourceTree = "<group>";
204216
};
217+
CC7DDB982C2C1C65000CBEC5 /* FileUtils */ = {
218+
isa = PBXGroup;
219+
children = (
220+
4124EFA2293B2F9B003B00F4 /* CoreFileUtils.swift */,
221+
CC7DDB992C2C1CAC000CBEC5 /* DMG.swift */,
222+
CC7DDB9B2C2C1CD9000CBEC5 /* Packages.swift */,
223+
CC3DC8322AA7100C0050EE16 /* Shell.swift */,
224+
CC3DC8292AA70E380050EE16 /* Checksum.swift */,
225+
);
226+
path = FileUtils;
227+
sourceTree = "<group>";
228+
};
229+
CC7DDB9F2C2C1DB5000CBEC5 /* UserDefaults */ = {
230+
isa = PBXGroup;
231+
children = (
232+
CC7DDBA02C2C1E1E000CBEC5 /* Legacy */,
233+
CC3DC8232AA70BD40050EE16 /* Preferences.swift */,
234+
CC7DDBA32C2C1E8C000CBEC5 /* Payloads.swift */,
235+
);
236+
path = UserDefaults;
237+
sourceTree = "<group>";
238+
};
239+
CC7DDBA02C2C1E1E000CBEC5 /* Legacy */ = {
240+
isa = PBXGroup;
241+
children = (
242+
CC7DDBA12C2C1E3C000CBEC5 /* LegacyPreferences.swift */,
243+
);
244+
path = Legacy;
245+
sourceTree = "<group>";
246+
};
205247
/* End PBXGroup section */
206248

207249
/* Begin PBXNativeTarget section */
@@ -288,6 +330,7 @@
288330
buildActionMask = 2147483647;
289331
files = (
290332
4124EFB729414A5E003B00F4 /* Preview Assets.xcassets in Resources */,
333+
41DC78072E3C5B2500E67988 /* outset-payload in Resources */,
291334
4124EFB429414A5E003B00F4 /* Assets.xcassets in Resources */,
292335
);
293336
runOnlyForDeploymentPostprocessing = 0;
@@ -348,12 +391,17 @@
348391
CC3DC82F2AA70F230050EE16 /* URL+additions.swift in Sources */,
349392
CC3DC8262AA70D2D0050EE16 /* Network.swift in Sources */,
350393
CC3DC8222AA70B2D0050EE16 /* Logging.swift in Sources */,
351-
41E28EA329ACDCE3002ADBE5 /* FileUtils.swift in Sources */,
394+
41E28EA329ACDCE3002ADBE5 /* CoreFileUtils.swift in Sources */,
352395
CC3DC82D2AA70EE60050EE16 /* Data+additions.swift in Sources */,
353-
CC3DC8332AA7100C0050EE16 /* ShellUtils.swift in Sources */,
396+
CC7DDB972C2C18E8000CBEC5 /* Globals.swift in Sources */,
397+
CC3DC8332AA7100C0050EE16 /* Shell.swift in Sources */,
354398
CC3DC82A2AA70E380050EE16 /* Checksum.swift in Sources */,
399+
CC7DDB9C2C2C1CD9000CBEC5 /* Packages.swift in Sources */,
400+
CC7DDBA22C2C1E3C000CBEC5 /* LegacyPreferences.swift in Sources */,
355401
CC3DC8312AA70F790050EE16 /* String+additions.swift in Sources */,
402+
CC7DDB9A2C2C1CAC000CBEC5 /* DMG.swift in Sources */,
356403
41E28EA429ACDCE3002ADBE5 /* ItemProcessing.swift in Sources */,
404+
CC7DDBA42C2C1E8C000CBEC5 /* Payloads.swift in Sources */,
357405
41E28EA529ACDCE3002ADBE5 /* SystemUtils.swift in Sources */,
358406
41E28EA229ACDCD6002ADBE5 /* Outset.swift in Sources */,
359407
);
@@ -512,7 +560,7 @@
512560
"@executable_path/../Frameworks",
513561
);
514562
MACOSX_DEPLOYMENT_TARGET = 10.15;
515-
MARKETING_VERSION = 4.1.2;
563+
MARKETING_VERSION = 4.2.0;
516564
PRODUCT_BUNDLE_IDENTIFIER = io.macadmins.Outset;
517565
PRODUCT_NAME = "$(TARGET_NAME)";
518566
PROVISIONING_PROFILE_SPECIFIER = "";
@@ -549,7 +597,7 @@
549597
"@executable_path/../Frameworks",
550598
);
551599
MACOSX_DEPLOYMENT_TARGET = 10.15;
552-
MARKETING_VERSION = 4.1.2;
600+
MARKETING_VERSION = 4.2.0;
553601
PRODUCT_BUNDLE_IDENTIFIER = io.macadmins.Outset;
554602
PRODUCT_NAME = "$(TARGET_NAME)";
555603
PROVISIONING_PROFILE_SPECIFIER = "";

Outset.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Outset/Assets.xcassets/AppIcon.appiconset/Contents.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@
5555
"size" : "512x512"
5656
},
5757
{
58-
"filename" : "Outset.png",
58+
"filename" : "Outset.png_512x512@2x.png",
5959
"idiom" : "mac",
6060
"scale" : "2x",
6161
"size" : "512x512"
-177 KB
Binary file not shown.
-433 Bytes
Loading
10.6 KB
Loading

0 commit comments

Comments
 (0)