Skip to content

Commit 2b867ee

Browse files
committed
♻️ Use MacRunner
1 parent 16a41b4 commit 2b867ee

File tree

2 files changed

+30
-78
lines changed

2 files changed

+30
-78
lines changed

record/dock/tilesize/36.js

Lines changed: 15 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,32 @@
1-
const delay = require('delay')
2-
const glob = require('glob-promise')
3-
const robot = require('robotjs')
4-
const util = require('util')
5-
const exec = util.promisify(require('child_process').exec)
1+
const MacRunner = require('../../mac-runner')
62
const { compressPngImage } = require('../../utils')
73

84
module.exports = {
95
run: async (outputPath) => {
106
console.log('> Recording dock icon size with param set to 36')
117

12-
const { stderr: setEnvError } = await exec(
13-
'defaults write com.apple.screencapture show-thumbnail -bool false && defaults write com.apple.dock tilesize -int 36 && killall Dock'
14-
)
15-
if (setEnvError) {
16-
console.error(
17-
'An error occured while setting up the dock tilesize command'
18-
)
8+
try {
9+
const runner = new MacRunner()
10+
await runner
11+
.setDefault('com.apple.dock', 'tilesize', '-int 36', '36')
12+
.killApp('Dock')
13+
.wait(1000)
14+
.captureScreen(`${outputPath}/36-tmp.png`)
15+
.deleteDefault('com.apple.dock', 'tilesize')
16+
.killApp('Dock')
17+
.run()
18+
} catch (runnerError) {
1919
logRollbackInfo()
20-
throw new Error(setEnvError)
20+
throw new Error(runnerError)
2121
}
2222

23-
// Preparation
24-
await delay(3000)
25-
26-
// Screenshot
27-
robot.keyTap('3', ['command', 'shift'])
28-
29-
await delay(1000)
30-
const screenshot = (
31-
await glob(`/Users/${process.env.USER}/Desktop/*.png`)
32-
).pop()
33-
3423
try {
35-
await compressPngImage(screenshot, outputPath, '36')
24+
await compressPngImage(`${outputPath}/36-tmp.png`, outputPath, '36')
3625
} catch (compressPngImageError) {
3726
logRollbackInfo()
3827
throw new Error(compressPngImageError)
3928
}
4029

41-
const { stderr: deleteEnvError } = await exec(
42-
'defaults delete com.apple.screencapture show-thumbnail && defaults delete com.apple.dock tilesize && killall Dock'
43-
)
44-
if (deleteEnvError) {
45-
console.error(
46-
'An error occured while cleaning the dock tilesize environment'
47-
)
48-
logRollbackInfo()
49-
throw new Error(deleteEnvError)
50-
}
51-
5230
return { filepath: `${outputPath}/36` }
5331
},
5432
}
@@ -57,7 +35,5 @@ function logRollbackInfo() {
5735
console.info(
5836
'Please manually run this command to make sure everything is properly reset:'
5937
)
60-
console.info(
61-
'defaults delete com.apple.screencapture show-thumbnail && defaults delete com.apple.dock tilesize && killall Dock'
62-
)
38+
console.info('defaults delete com.apple.dock tilesize && killall Dock')
6339
}

record/dock/tilesize/48.js

Lines changed: 15 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,32 @@
1-
const delay = require('delay')
2-
const glob = require('glob-promise')
3-
const robot = require('robotjs')
4-
const util = require('util')
5-
const exec = util.promisify(require('child_process').exec)
1+
const MacRunner = require('../../mac-runner')
62
const { compressPngImage } = require('../../utils')
73

84
module.exports = {
95
run: async (outputPath) => {
106
console.log('> Recording dock icon size with param set to 48')
117

12-
const { stderr: setEnvError } = await exec(
13-
'defaults write com.apple.screencapture show-thumbnail -bool false && defaults write com.apple.dock tilesize -int 48 && killall Dock'
14-
)
15-
if (setEnvError) {
16-
console.error(
17-
'An error occured while setting up the dock tilesize command'
18-
)
8+
try {
9+
const runner = new MacRunner()
10+
await runner
11+
.setDefault('com.apple.dock', 'tilesize', '-int 48', '48')
12+
.killApp('Dock')
13+
.wait(1000)
14+
.captureScreen(`${outputPath}/48-tmp.png`)
15+
.deleteDefault('com.apple.dock', 'tilesize')
16+
.killApp('Dock')
17+
.run()
18+
} catch (runnerError) {
1919
logRollbackInfo()
20-
throw new Error(setEnvError)
20+
throw new Error(runnerError)
2121
}
2222

23-
// Preparation
24-
await delay(3000)
25-
26-
// Screenshot
27-
robot.keyTap('3', ['command', 'shift'])
28-
29-
await delay(1000)
30-
const screenshot = (
31-
await glob(`/Users/${process.env.USER}/Desktop/*.png`)
32-
).pop()
33-
3423
try {
35-
await compressPngImage(screenshot, outputPath, '48')
24+
await compressPngImage(`${outputPath}/48-tmp.png`, outputPath, '48')
3625
} catch (compressPngImageError) {
3726
logRollbackInfo()
3827
throw new Error(compressPngImageError)
3928
}
4029

41-
const { stderr: deleteEnvError } = await exec(
42-
'defaults delete com.apple.screencapture show-thumbnail && defaults delete com.apple.dock tilesize && killall Dock'
43-
)
44-
if (deleteEnvError) {
45-
console.error(
46-
'An error occured while cleaning the dock tilesize environment'
47-
)
48-
logRollbackInfo()
49-
throw new Error(deleteEnvError)
50-
}
51-
5230
return { filepath: `${outputPath}/48` }
5331
},
5432
}
@@ -57,7 +35,5 @@ function logRollbackInfo() {
5735
console.info(
5836
'Please manually run this command to make sure everything is properly reset:'
5937
)
60-
console.info(
61-
'defaults delete com.apple.screencapture show-thumbnail && defaults delete com.apple.dock tilesize && killall Dock'
62-
)
38+
console.info('defaults delete com.apple.dock tilesize && killall Dock')
6339
}

0 commit comments

Comments
 (0)