-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathgulpfile.js
60 lines (50 loc) · 1.69 KB
/
gulpfile.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
import fs from 'fs';
import path from 'path';
import { deleteAsync } from 'del';
import os from 'os';
import gulp from 'gulp';
let iconsData = '';
function readFiles(dir) {
const files = fs.readdirSync(dir);
files.forEach((fileName) => {
const filePath = path.join(dir, fileName);
if (fs.statSync(filePath).isDirectory()) readFiles(filePath);
else if (filePath.endsWith('.svg'))
iconsData +=
`export const ${fileName.replaceAll('.svg', '').replaceAll('-', '_')}_icon` +
` = \`${fs.readFileSync(filePath)}\`;\n\n`;
});
}
function optimizeIcons(done) {
let iconsPath = './static/icons/';
let utilPath = './src/util/';
readFiles(iconsPath);
iconsData = iconsData
.slice(0, -2)
.replaceAll(/ stroke=".*?"/g, '')
.replaceAll(/ fill=".*?"/g, '');
fs.writeFileSync(utilPath + 'icon-definitions.ts', iconsData);
done();
}
function cleanBuildFolder() {
return deleteAsync(['build', 'build-tauri', 'src-tauri/target'], { force: true });
}
function cleanAll() {
return deleteAsync(['.svelte-kit', 'build', 'build-tauri', 'src-tauri/target', 'node_modules', 'package-lock.json'], {
force: true
});
}
function copyTauriFiles() {
const filesToCopy = [
'src-tauri/target/release/mva.exe',
'src-tauri/target/release/bundle/msi/mva_0.1.0_x64_en-US.msi',
'src-tauri/target/release/bundle/nsis/mva_0.1.0_x64-setup.exe'
];
return gulp.src(filesToCopy).pipe(gulp.dest(`./build-tauri/${getPlatform(os.platform())}`));
}
function getPlatform(platform) {
if (platform === 'win32') return 'windows';
else if (platform === 'darwin') return 'macOS';
return platform;
}
export { cleanBuildFolder as clean, cleanAll, optimizeIcons, copyTauriFiles };