Installer update

Mac Install Fix: package sentinel into the installer
This commit is contained in:
cocktailpeanut 2025-01-01 09:30:40 -05:00
parent 0c1e9c3c6b
commit 92c9924c5f
15 changed files with 348 additions and 22 deletions

Binary file not shown.

View File

@ -0,0 +1,54 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>BuildMachineOSBuild</key>
<string>24B91</string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleDisplayName</key>
<string>Sentinel</string>
<key>CFBundleExecutable</key>
<string>Sentinel</string>
<key>CFBundleIconFile</key>
<string>AppIcon</string>
<key>CFBundleIconName</key>
<string>AppIcon</string>
<key>CFBundleIdentifier</key>
<string>com.alienator88.Sentinel</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>Sentinel</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.9</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>MacOSX</string>
</array>
<key>CFBundleVersion</key>
<string>10</string>
<key>DTCompiler</key>
<string>com.apple.compilers.llvm.clang.1_0</string>
<key>DTPlatformBuild</key>
<string>24B75</string>
<key>DTPlatformName</key>
<string>macosx</string>
<key>DTPlatformVersion</key>
<string>15.1</string>
<key>DTSDKBuild</key>
<string>24B75</string>
<key>DTSDKName</key>
<string>macosx15.1</string>
<key>DTXcode</key>
<string>1610</string>
<key>DTXcodeBuild</key>
<string>16B40</string>
<key>LSApplicationCategoryType</key>
<string>public.app-category.utilities</string>
<key>LSMinimumSystemVersion</key>
<string>12.0</string>
</dict>
</plist>

Binary file not shown.

View File

@ -0,0 +1 @@
APPL????

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,20 @@
✓ Switched active account for github.com to alienator88
github.com
✓ Logged in to github.com account alienator88 (keyring)
- Active account: true
- Git operations protocol: ssh
- Token: gho_************************************
- Token scopes: 'admin:public_key', 'gist', 'read:org', 'repo'
✓ Logged in to github.com account alin-strongdm (keyring)
- Active account: false
- Git operations protocol: ssh
- Token: gho_************************************
- Token scopes: 'admin:public_key', 'gist', 'read:org', 'repo'
All identities removed.
Identity added: /Users/alin/.ssh/id_ed25519_personal (lupascu.marius@gmail.com)
Loaded SSH keys:
256 SHA256:ogYvK3FE9zzK3OC+c1IGvZ2GLbEP/M7gqCUdbCPbvjg lupascu.marius@gmail.com (ED25519)
Testing SSH access to GitHub:
Hi alienator88! You've successfully authenticated, but GitHub does not provide shell access.
Building and archiving the app...

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>method</key>
<string>mac-application</string>
<key>teamID</key>
<string>BK8443AXLU</string>
</dict>
</plist>

View File

@ -0,0 +1,3 @@
## What's New
- [x] Add error handling and elevated privileges attempt for the quarantine and sign drops - #9
- [x] Update AF swift package and functions

View File

@ -0,0 +1,179 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>files</key>
<dict>
<key>Resources/AppIcon.icns</key>
<data>
h6tZDTyHZ2R2IWkVTtCxLhl+HSg=
</data>
<key>Resources/Assets.car</key>
<data>
EWjuroYvZK+QyGXE1DRkCrCdU+s=
</data>
<key>Resources/Builds/Export/build.log</key>
<data>
/1+R9frhIPUyJgc2j5eXJlGRjCc=
</data>
<key>Resources/Builds/ExportOptions.plist</key>
<data>
0MA4j9V6vZY/5lwV302/eYd+bC4=
</data>
<key>Resources/Builds/changes.md</key>
<data>
taE19+UtRUiIJQOdJrc7uT9MPNw=
</data>
</dict>
<key>files2</key>
<dict>
<key>Resources/AppIcon.icns</key>
<dict>
<key>hash2</key>
<data>
o9EvbNelk40Oz6CKsgeNhz96b+y/PMVfPp9npHocK9g=
</data>
</dict>
<key>Resources/Assets.car</key>
<dict>
<key>hash2</key>
<data>
WnZi0g40uK80Y07oFL7NaTi1zLCpxUlKPPCz6QUvr8E=
</data>
</dict>
<key>Resources/Builds/Export/build.log</key>
<dict>
<key>hash2</key>
<data>
k5ex4VXZ/kJW2TVuNQgARnQ3syKSjCApAth7GOxrEfI=
</data>
</dict>
<key>Resources/Builds/ExportOptions.plist</key>
<dict>
<key>hash2</key>
<data>
APrSQhPZDr6JTHB5NQYf4XtUpeok10HmBsSM+76Jme4=
</data>
</dict>
<key>Resources/Builds/changes.md</key>
<dict>
<key>hash2</key>
<data>
cqM5Q1/KdwiDyllnshzSEeV4QgbkbRpXbwGkYijg1r4=
</data>
</dict>
<key>embedded.provisionprofile</key>
<dict>
<key>hash2</key>
<data>
B/vWCXpwvDXC7Th62V4KnkGLNIEhWtr+/lj2y0WKaJ8=
</data>
</dict>
</dict>
<key>rules</key>
<dict>
<key>^Resources/</key>
<true/>
<key>^Resources/.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^Resources/.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Resources/Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^version.plist$</key>
<true/>
</dict>
<key>rules2</key>
<dict>
<key>.*\.dSYM($|/)</key>
<dict>
<key>weight</key>
<real>11</real>
</dict>
<key>^(.*/)?\.DS_Store$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>2000</real>
</dict>
<key>^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/</key>
<dict>
<key>nested</key>
<true/>
<key>weight</key>
<real>10</real>
</dict>
<key>^.*</key>
<true/>
<key>^Info\.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^PkgInfo$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^Resources/</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^Resources/.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^Resources/.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Resources/Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^[^/]+$</key>
<dict>
<key>nested</key>
<true/>
<key>weight</key>
<real>10</real>
</dict>
<key>^embedded\.provisionprofile$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^version\.plist$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
</dict>
</dict>
</plist>

Binary file not shown.

BIN
assets/background.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

12
package-lock.json generated
View File

@ -1,18 +1,18 @@
{
"name": "Pinokio",
"version": "3.0.26",
"version": "3.2.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "Pinokio",
"version": "3.0.26",
"version": "3.2.0",
"hasInstallScript": true,
"license": "MIT",
"dependencies": {
"electron-store": "^8.1.0",
"electron-window-state": "^5.0.3",
"pinokiod": "^3.0.26"
"pinokiod": "^3.2.0"
},
"devDependencies": {
"@electron/rebuild": "3.2.10",
@ -5496,9 +5496,9 @@
}
},
"node_modules/pinokiod": {
"version": "3.0.26",
"resolved": "https://registry.npmjs.org/pinokiod/-/pinokiod-3.0.26.tgz",
"integrity": "sha512-aV9Wq3BhIqIVLY38zeSrye52glbKO0Lmmf3jFe7hDG4R2FPKck4nUqoyuKlrXU7QEErSqoJrSu13T5UOXfC+KA==",
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/pinokiod/-/pinokiod-3.2.0.tgz",
"integrity": "sha512-+/WBFsUmsqtmAlcLUPbPlnvUnhsQovTAlGr7siFmH0iDQpLMW2lax96ZVBjOw1VJt9lJxAETxtkA3PJLQeP3Iw==",
"dependencies": {
"@cocktailpeanut/node-pty-prebuilt-multiarch": "^0.11.16",
"7zip-min-win-asar-support": "^1.4.4",

View File

@ -1,6 +1,6 @@
{
"name": "Pinokio",
"version": "3.0.26",
"version": "3.2.0",
"homepage": "https://pinokio.computer",
"description": "pinokio",
"main": "main.js",
@ -9,6 +9,7 @@
"scripts": {
"start": "electron .",
"pack": "./node_modules/.bin/electron-builder --dir",
"eject": "hdiutil info | grep '/dev/disk' | awk '{print $1}' | xargs -I {} hdiutil detach {}",
"dist": "npm run monkeypatch && export SNAPCRAFT_BUILD_ENVIRONMENT=host && export SNAP_DESTRUCTIVE_MODE='true' && ./node_modules/.bin/electron-builder -mwl && npm run zip",
"zip": "node script/zip",
"monkeypatch": "cp temp/yarn.js node_modules/app-builder-lib/out/util/yarn.js && cp temp/rebuild.js node_modules/@electron/rebuild/lib/src/rebuild.js",
@ -35,21 +36,15 @@
}
],
"dmg": {
"background": "./assets/background.png",
"background": "./assets/background.gif",
"contents": [
{
"x": 130,
"y": 250
"x": 250,
"y": 150
},
{
"x": 410,
"y": 80,
"type": "file",
"path": "./script/patch.command"
},
{
"x": 410,
"y": 250,
"x": 550,
"y": 150,
"type": "link",
"path": "/Applications"
}
@ -108,7 +103,7 @@
"dependencies": {
"electron-store": "^8.1.0",
"electron-window-state": "^5.0.3",
"pinokiod": "^3.0.26"
"pinokiod": "^3.2.0"
},
"devDependencies": {
"@electron/rebuild": "3.2.10",

View File

@ -1,10 +1,9 @@
const { exec } = require('child_process');
const path = require('path')
const fs = require('fs')
const version = process.env.npm_package_version
// Replace "ls -l" with your desired terminal command
const command = 'ls -l';
// Windows
let exePath = path.resolve(__dirname, `../dist/Pinokio Setup ${version}.exe`)
let zipPath = path.resolve(__dirname, `../dist/Pinokio-${version}-win32.zip`)
exec(`zip -j "${zipPath}" "${exePath}"`, (error, stdout, stderr) => {
@ -18,3 +17,68 @@ exec(`zip -j "${zipPath}" "${exePath}"`, (error, stdout, stderr) => {
console.log('stderr:', stderr);
});
// Mac
// find dmg files
const macPaths = [{
dmg: path.resolve(__dirname, `../dist/Pinokio-${version}-arm64.dmg`),
//temp: path.resolve(__dirname, `../dist/Pinokio-${version}-darwin-arm64-temp`),
temp: `Pinokio-${version}-darwin-arm64`,
//zip: path.resolve(__dirname, `../dist/Pinokio-${version}-darwin-arm64.zip`),
zip: `Pinokio-${version}-darwin-arm64.zip`
}, {
dmg: path.resolve(__dirname, `../dist/Pinokio-${version}.dmg`),
//temp: path.resolve(__dirname, `../dist/Pinokio-${version}-darwin-intel-temp`),
temp: `Pinokio-${version}-darwin-intel`,
//zip: path.resolve(__dirname, `../dist/Pinokio-${version}-darwin-intel.zip`)
zip: `Pinokio-${version}-darwin-intel.zip`
}]
let sentinelPath = path.resolve(__dirname, `../assets/Sentinel.app`)
for(let macPath of macPaths) {
const zipPath = macPath.zip
try {
console.log("mkdirSync", path.resolve(__dirname, "../dist", macPath.temp))
fs.mkdirSync(path.resolve(__dirname, "../dist", macPath.temp), { recursive: true })
} catch (e) {
console.log("E1", e)
}
try {
fs.cpSync(macPath.dmg, path.resolve(__dirname, "../dist", macPath.temp, "install.dmg"), { force: true, recursive: true })
} catch (e) {
console.log("E2", e)
}
try {
fs.cpSync(sentinelPath, path.resolve(__dirname, "../dist", macPath.temp, "Sentinel.app"), { force: true, recursive: true })
} catch (e) {
console.log("E3", e)
}
const cmd = `zip -r "${zipPath}" "${macPath.temp}"`
console.log({ cmd })
exec(cmd, { cwd: path.resolve(__dirname, "../dist") }, (error, stdout, stderr) => {
if (error) {
console.error(`Error executing command: ${error}`);
return;
}
console.log('Command executed successfully.');
console.log('stdout:', stdout);
console.log('stderr:', stderr);
});
// try {
// fs.rmSync(path.resolve(__dirname, "../dist", macPath.temp), { recursive: true })
// } catch (e) {
// }
}
let rmFiles = [
`Pinokio-${version}-arm64-mac.zip`,
`Pinokio-${version}-mac.zip`,
// `Pinokio-${version}-darwin-arm64`,
// `Pinokio-${version}-darwin-intel`,
]
for(let f of rmFiles) {
try {
fs.rmSync(path.resolve(__dirname, "../dist", f), { recursive: true })
} catch (e) {
}
}