@expo/osascript 2.4.3 → 2.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/index.d.ts +2 -1
- package/build/index.js +21 -14
- package/build/index.js.map +1 -1
- package/package.json +2 -2
package/build/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { SpawnOptions, SpawnResult } from '@expo/spawn-async';
|
|
2
|
+
declare function escapeString(value: string): string;
|
|
2
3
|
declare function osascriptSpawnAsync(script: string | string[], opts?: SpawnOptions): Promise<SpawnResult>;
|
|
3
4
|
declare function isAppRunningAsync(appName: string): Promise<boolean>;
|
|
4
5
|
declare function safeIdOfAppAsync(appName: string): Promise<string | null>;
|
|
@@ -13,4 +14,4 @@ declare function openTerminalToSpecificFolderAsync(dir: string, inTab?: boolean)
|
|
|
13
14
|
declare function openFolderInTerminalAppAsync(dir: string, inTab?: boolean): Promise<SpawnResult>;
|
|
14
15
|
/** @deprecated */
|
|
15
16
|
declare function osascriptExecAsync(script: string | string[], opts?: SpawnOptions): Promise<string>;
|
|
16
|
-
export { chooseAppAsync, chooseEditorAppAsync, chooseTerminalAppAsync, osascriptExecAsync as execAsync, isAppRunningAsync, openFinderToFolderAsync, openFolderInTerminalAppAsync, openInAppAsync, openInEditorAsync, openItermToSpecificFolderAsync, openTerminalToSpecificFolderAsync, safeIdOfAppAsync, osascriptSpawnAsync as spawnAsync, };
|
|
17
|
+
export { chooseAppAsync, chooseEditorAppAsync, chooseTerminalAppAsync, escapeString, osascriptExecAsync as execAsync, isAppRunningAsync, openFinderToFolderAsync, openFolderInTerminalAppAsync, openInAppAsync, openInEditorAsync, openItermToSpecificFolderAsync, openTerminalToSpecificFolderAsync, safeIdOfAppAsync, osascriptSpawnAsync as spawnAsync, };
|
package/build/index.js
CHANGED
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.chooseAppAsync = chooseAppAsync;
|
|
7
7
|
exports.chooseEditorAppAsync = chooseEditorAppAsync;
|
|
8
8
|
exports.chooseTerminalAppAsync = chooseTerminalAppAsync;
|
|
9
|
+
exports.escapeString = escapeString;
|
|
9
10
|
exports.execAsync = osascriptExecAsync;
|
|
10
11
|
exports.isAppRunningAsync = isAppRunningAsync;
|
|
11
12
|
exports.openFinderToFolderAsync = openFinderToFolderAsync;
|
|
@@ -18,7 +19,17 @@ exports.safeIdOfAppAsync = safeIdOfAppAsync;
|
|
|
18
19
|
exports.spawnAsync = osascriptSpawnAsync;
|
|
19
20
|
const spawn_async_1 = __importDefault(require("@expo/spawn-async"));
|
|
20
21
|
const path_1 = __importDefault(require("path"));
|
|
21
|
-
|
|
22
|
+
function escapeString(value) {
|
|
23
|
+
return value
|
|
24
|
+
.replace(/\\/g, '\\\\')
|
|
25
|
+
.replace(/"/g, '\\"')
|
|
26
|
+
.replace(/\r/g, '\\r')
|
|
27
|
+
.replace(/\n/g, '\\n')
|
|
28
|
+
.replace(/\t/g, '\\t');
|
|
29
|
+
}
|
|
30
|
+
function shellQuote(value) {
|
|
31
|
+
return `'${value.replace(/'/g, `'\\''`)}'`;
|
|
32
|
+
}
|
|
22
33
|
function osascriptArgs(script) {
|
|
23
34
|
if (!Array.isArray(script)) {
|
|
24
35
|
script = [script];
|
|
@@ -34,12 +45,12 @@ async function osascriptSpawnAsync(script, opts) {
|
|
|
34
45
|
return await (0, spawn_async_1.default)('osascript', osascriptArgs(script), opts);
|
|
35
46
|
}
|
|
36
47
|
async function isAppRunningAsync(appName) {
|
|
37
|
-
const { stdout } = await osascriptSpawnAsync(`tell app "System Events" to count processes whose name is ${
|
|
48
|
+
const { stdout } = await osascriptSpawnAsync(`tell app "System Events" to count processes whose name is "${escapeString(appName)}"`);
|
|
38
49
|
return stdout.trim() !== '0';
|
|
39
50
|
}
|
|
40
51
|
async function safeIdOfAppAsync(appName) {
|
|
41
52
|
try {
|
|
42
|
-
const { stdout } = await osascriptSpawnAsync(`id of app ${
|
|
53
|
+
const { stdout } = await osascriptSpawnAsync(`id of app "${escapeString(appName)}"`);
|
|
43
54
|
return stdout.trim();
|
|
44
55
|
}
|
|
45
56
|
catch {
|
|
@@ -49,15 +60,13 @@ async function safeIdOfAppAsync(appName) {
|
|
|
49
60
|
async function openFinderToFolderAsync(dir, activate = true) {
|
|
50
61
|
await osascriptSpawnAsync([
|
|
51
62
|
'tell application "Finder"',
|
|
52
|
-
|
|
63
|
+
`open POSIX file "${escapeString(dir)}"`,
|
|
53
64
|
(activate && 'activate') || '',
|
|
54
65
|
'end tell',
|
|
55
66
|
]);
|
|
56
67
|
}
|
|
57
68
|
async function openInAppAsync(appName, pth) {
|
|
58
|
-
|
|
59
|
-
// console.log("cmd=", cmd);
|
|
60
|
-
return await osascriptSpawnAsync(cmd);
|
|
69
|
+
return await osascriptSpawnAsync(`tell app "${escapeString(appName)}" to open "${escapeString(path_1.default.resolve(pth))}"`);
|
|
61
70
|
}
|
|
62
71
|
async function chooseAppAsync(listOfAppNames) {
|
|
63
72
|
const runningAwaitables = [];
|
|
@@ -132,6 +141,7 @@ async function openInEditorAsync(pth, preferredEditor) {
|
|
|
132
141
|
return await openInAppAsync(appName, pth);
|
|
133
142
|
}
|
|
134
143
|
async function openItermToSpecificFolderAsync(dir) {
|
|
144
|
+
const shellCommand = escapeString(`cd ${shellQuote(dir)} && clear`);
|
|
135
145
|
return await osascriptSpawnAsync([
|
|
136
146
|
'tell application "iTerm"',
|
|
137
147
|
'make new terminal',
|
|
@@ -139,29 +149,26 @@ async function openItermToSpecificFolderAsync(dir) {
|
|
|
139
149
|
'activate current session',
|
|
140
150
|
'launch session "Default Session"',
|
|
141
151
|
'tell the last session',
|
|
142
|
-
|
|
143
|
-
// 'write text "clear"',
|
|
152
|
+
`write text "${shellCommand}"`,
|
|
144
153
|
'end tell',
|
|
145
154
|
'end tell',
|
|
146
155
|
'end tell',
|
|
147
156
|
]);
|
|
148
|
-
// exec("osascript -e 'tell application \"iTerm\"' -e 'make new terminal' -e 'tell the first terminal' -e 'activate current session' -e 'launch session \"Default Session\"' -e 'tell the last session' -e 'write text \"cd #{value}\"' -e 'write text \"clear\"' -e 'end tell' -e 'end tell' -e 'end tell' > /dev/null 2>&1")
|
|
149
157
|
}
|
|
150
158
|
async function openTerminalToSpecificFolderAsync(dir, inTab = false) {
|
|
159
|
+
const shellCommand = escapeString(`cd ${shellQuote(dir)} && clear`);
|
|
151
160
|
if (inTab) {
|
|
152
161
|
return await osascriptSpawnAsync([
|
|
153
162
|
'tell application "terminal"',
|
|
154
163
|
'tell application "System Events" to tell process "terminal" to keystroke "t" using command down',
|
|
155
|
-
|
|
156
|
-
util_1.default.inspect(dir) +
|
|
157
|
-
' && clear" in selected tab of the front window',
|
|
164
|
+
`do script with command "${shellCommand}" in selected tab of the front window`,
|
|
158
165
|
'end tell',
|
|
159
166
|
]);
|
|
160
167
|
}
|
|
161
168
|
else {
|
|
162
169
|
return await osascriptSpawnAsync([
|
|
163
170
|
'tell application "terminal"',
|
|
164
|
-
|
|
171
|
+
`do script "${shellCommand}"`,
|
|
165
172
|
'end tell',
|
|
166
173
|
'tell application "terminal" to activate',
|
|
167
174
|
]);
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@expo/osascript",
|
|
3
|
-
"version": "2.4.
|
|
3
|
+
"version": "2.4.4",
|
|
4
4
|
"description": "Tools for running an osascripts in Node",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"keywords": [
|
|
@@ -46,5 +46,5 @@
|
|
|
46
46
|
"publishConfig": {
|
|
47
47
|
"access": "public"
|
|
48
48
|
},
|
|
49
|
-
"gitHead": "
|
|
49
|
+
"gitHead": "bb1d4bd298e5bcaff86b04aabca7c56659e57138"
|
|
50
50
|
}
|