From a9538f5d86dc3fab9e8b40902672f253c8d0d81e Mon Sep 17 00:00:00 2001 From: muwoo <2424880409@qq.com> Date: Mon, 13 Dec 2021 18:00:51 +0800 Subject: [PATCH] =?UTF-8?q?:bug:=20=E4=BF=AE=E5=A4=8D=E6=9E=84=E5=BB=BAbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 +- package-lock.json | 175 ++++++++++++++++++++- package.json | 1 + public/icons/256x256.png | Bin 0 -> 15361 bytes public/icons/icon.icns | Bin 0 -> 46939 bytes public/{ => icons}/icon.ico | Bin public/{ => icons}/icon@2x.png | Bin public/{ => icons}/icon@3x.png | Bin src/core/app-search/darwin.ts | 6 +- src/core/app-search/get-mac-app/getApps.ts | 43 +++++ src/core/app-search/get-mac-app/index.ts | 10 ++ src/core/plugin-handler/index.ts | 7 +- src/main/common/tray.ts | 9 +- vue.config.js | 9 +- 14 files changed, 242 insertions(+), 20 deletions(-) create mode 100644 public/icons/256x256.png create mode 100644 public/icons/icon.icns rename public/{ => icons}/icon.ico (100%) rename public/{ => icons}/icon@2x.png (100%) rename public/{ => icons}/icon@3x.png (100%) create mode 100644 src/core/app-search/get-mac-app/getApps.ts create mode 100644 src/core/app-search/get-mac-app/index.ts diff --git a/.gitignore b/.gitignore index 9a15f45..9717926 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,6 @@ .DS_Store node_modules -/dist +/build # local env files diff --git a/package-lock.json b/package-lock.json index 6ee4175..c3cb1bd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { - "name": "rubick2", - "version": "0.1.0", + "name": "rubick", + "version": "2.0.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -6209,6 +6209,11 @@ } } }, + "default-shell": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/default-shell/-/default-shell-2.2.0.tgz", + "integrity": "sha512-sPpMZcVhRQ0nEMDtuMJ+RtCxt7iHPAMBU+I4tAlo5dU1sjRpNax0crj6nR3qKpvVnckaQ9U38enXcwW9nZJeCw==" + }, "defaults": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", @@ -7553,6 +7558,65 @@ "safe-buffer": "^5.1.1" } }, + "execa": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-6.0.0.tgz", + "integrity": "sha512-m4wU9j4Z9nXXoqT8RSfl28JSwmMNLFF69OON8H/lL3NeU0tNpGz313bcOfYoBBHokB0dC2tMl3VUcKgHELhL2Q==", + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^3.0.1", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.0.1", + "onetime": "^6.0.0", + "signal-exit": "^3.0.5", + "strip-final-newline": "^3.0.0" + }, + "dependencies": { + "human-signals": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", + "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==" + }, + "is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==" + }, + "mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==" + }, + "npm-run-path": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.0.1.tgz", + "integrity": "sha512-ybBJQUSyFwEEhqO2lXmyKOl9ucHtyZBWVM0h0FiMfT/+WKxCUZFa95qAR2X3w/w6oigN3B0b2UNHZbD+kdfD5w==", + "requires": { + "path-key": "^4.0.0" + } + }, + "onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "requires": { + "mimic-fn": "^4.0.0" + } + }, + "path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==" + }, + "strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==" + } + } + }, "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", @@ -8028,6 +8092,14 @@ "path-exists": "^4.0.0" } }, + "fix-path": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fix-path/-/fix-path-4.0.0.tgz", + "integrity": "sha512-g31GX207Tt+psI53ZSaB1egprYbEN0ZYl90aKcO22A2LmCNnFsSq3b5YpoKp3E/QEiWByTXGJOkFQG4S07Bc1A==", + "requires": { + "shell-path": "^3.0.0" + } + }, "flat-cache": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", @@ -8452,6 +8524,11 @@ "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", "dev": true }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + }, "get-symbol-description": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", @@ -10886,8 +10963,7 @@ "merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" }, "merge2": { "version": "1.4.1", @@ -14072,6 +14148,91 @@ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true }, + "shell-env": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/shell-env/-/shell-env-4.0.1.tgz", + "integrity": "sha512-w3oeZ9qg/P6Lu6qqwavvMnB/bwfsz67gPB3WXmLd/n6zuh7TWQZtGa3iMEdmua0kj8rivkwl+vUjgLWlqZOMPw==", + "requires": { + "default-shell": "^2.0.0", + "execa": "^5.1.1", + "strip-ansi": "^7.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "requires": { + "path-key": "^3.0.0" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "requires": { + "ansi-regex": "^6.0.1" + } + } + } + }, + "shell-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shell-path/-/shell-path-3.0.0.tgz", + "integrity": "sha512-HNIZ+W/3P0JuVTV03xjGqYKt3e3h0/Z4AH8TQWeth1LBtCusSjICgkdNdb3VZr6mI7ijE2AiFFpgkVMNKsALeQ==", + "requires": { + "shell-env": "^4.0.0" + } + }, "shell-quote": { "version": "1.7.3", "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", @@ -14092,8 +14253,7 @@ "signal-exit": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", - "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==", - "dev": true + "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==" }, "simple-swizzle": { "version": "0.2.2", @@ -14690,8 +14850,7 @@ "strip-final-newline": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" }, "strip-indent": { "version": "2.0.0", diff --git a/package.json b/package.json index 7fbdd75..a59f24c 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "ant-design-vue": "^2.2.8", "core-js": "^3.6.5", "cross-spawn": "^7.0.3", + "fix-path": "^4.0.0", "get-mac-apps": "^1.0.2", "got": "^11.8.3", "libnpmsearch": "^3.1.2", diff --git a/public/icons/256x256.png b/public/icons/256x256.png new file mode 100644 index 0000000000000000000000000000000000000000..65efaa3d8b9aca03a074eb439439d13a13496798 GIT binary patch literal 15361 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 literal 0 HcmV?d00001 diff --git a/public/icons/icon.icns b/public/icons/icon.icns new file mode 100644 index 0000000000000000000000000000000000000000..84b688d601d0f7138117aa179da276fa6169914e GIT binary patch literal 46939 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 { - let apps = await getMacApps.getApps(); + let apps: any = await getMacApps.getApps(); apps = apps.filter((app: any) => { const extname = path.extname(app.path); diff --git a/src/core/app-search/get-mac-app/getApps.ts b/src/core/app-search/get-mac-app/getApps.ts new file mode 100644 index 0000000..2985a29 --- /dev/null +++ b/src/core/app-search/get-mac-app/getApps.ts @@ -0,0 +1,43 @@ +import { spawn } from "child_process"; +import plist from "plist"; + +export default function getApps(resolve, reject, filterByAppName = false) { + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + let resultBuffer = new Buffer.from([]); + + const profileInstalledApps = spawn("/usr/sbin/system_profiler", [ + "-xml", + "-detailLevel", + "mini", + "SPApplicationsDataType" + ]); + + profileInstalledApps.stdout.on("data", chunckBuffer => { + resultBuffer = Buffer.concat([resultBuffer, chunckBuffer]); + }); + + profileInstalledApps.on("exit", exitCode => { + if (exitCode !== 0) { + reject([]); + return; + } + + try { + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + const [installedApps] = plist.parse(resultBuffer.toString()); + if (!filterByAppName) return resolve(installedApps._items); + return resolve( + installedApps._items.filter(apps => apps._name === filterByAppName) + .length !== 0 + ); + } catch (err) { + reject(err); + } + }); + + profileInstalledApps.on("error", err => { + reject(err); + }); +}; diff --git a/src/core/app-search/get-mac-app/index.ts b/src/core/app-search/get-mac-app/index.ts new file mode 100644 index 0000000..d6afc01 --- /dev/null +++ b/src/core/app-search/get-mac-app/index.ts @@ -0,0 +1,10 @@ +import getApps from "./getApps"; + +export default { + getApps: () => { + return new Promise((resolve, reject) => getApps(resolve, reject)); + }, + isInstalled: (appName) => { + return new Promise((resolve, reject) => getApps(resolve, reject, appName)); + }, +}; diff --git a/src/core/plugin-handler/index.ts b/src/core/plugin-handler/index.ts index 7ac8894..b83e351 100644 --- a/src/core/plugin-handler/index.ts +++ b/src/core/plugin-handler/index.ts @@ -6,8 +6,11 @@ import fs from "fs-extra"; import search, { Result } from "libnpmsearch"; import path from "path"; import got from "got"; +import fixPath from "fix-path"; -import spwan from "cross-spawn"; +import spawn from "cross-spawn"; + +fixPath(); /** * 系统插件管理器 @@ -146,7 +149,7 @@ class AdapterHandler { .concat("--save"); if (cmd !== "uninstall") args = args.concat(`--registry=${this.registry}`); - const npm = spwan("npm", args, { + const npm = spawn("npm", args, { cwd: this.baseDir, }); diff --git a/src/main/common/tray.ts b/src/main/common/tray.ts index 5b27c04..a651f0d 100644 --- a/src/main/common/tray.ts +++ b/src/main/common/tray.ts @@ -8,11 +8,14 @@ function createTray(window: BrowserWindow): Promise { return new Promise((resolve) => { let icon; if (commonConst.macOS()) { - icon = "./icon@3x.png"; + icon = "./icons/icon@3x.png"; } else if (commonConst.windows()) { - icon = parseInt(os.release()) < 10 ? "./icon@2x.png" : "./icon.ico"; + icon = + parseInt(os.release()) < 10 + ? "./icons/icon@2x.png" + : "./icons/icon.ico"; } else { - icon = "icon@2x.png"; + icon = "./icons/icon@2x.png"; } const appIcon = new Tray(path.join(__static, icon)); const contextMenu = Menu.buildFromTemplate([ diff --git a/vue.config.js b/vue.config.js index 9b62f82..885fe78 100644 --- a/vue.config.js +++ b/vue.config.js @@ -2,6 +2,7 @@ const path = require("path"); module.exports = { + transpileDependencies: ["fix-path"], configureWebpack: { resolve: { alias: { @@ -30,7 +31,7 @@ module.exports = { directories: { output: "build", }, - files: ["dist/electron/**/*"], + // files: ["dist_electron/**/*"], dmg: { contents: [ { @@ -47,14 +48,14 @@ module.exports = { ], }, mac: { - icon: "build/icons/icon.icns", + icon: "public/icons/icon.icns", target: "pkg", extendInfo: { LSUIElement: 1, }, }, win: { - icon: "build/icons/icon.ico", + icon: "public/icons/icon.ico", target: "nsis", }, nsis: { @@ -62,7 +63,7 @@ module.exports = { allowToChangeInstallationDirectory: true, }, linux: { - icon: "build/icons/", + icon: "public/icons/", publish: ["github"], }, },