-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgulpfile.js
More file actions
107 lines (97 loc) · 2.86 KB
/
Copy pathgulpfile.js
File metadata and controls
107 lines (97 loc) · 2.86 KB
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
const { src, dest, series } = require('gulp');
const replace = require('gulp-replace');
const { argv } = require('yargs');
const { pascalCase, paramCase, snakeCase, capitalCase, camelCase } = require("change-case");
const rename = require('gulp-rename');
const del = require('del');
const viewDirectories = [
'views/platine',
'views/plates',
'views/twig',
'views/blade'
];
const viewClasses = {
'platine': 'PlatineView',
'blade': 'BladeView',
'twig': 'TwigView',
'plates': 'PlatesView',
};
function swapNameStrings() {
let paths = [
'app/**/**',
'composer.json',
'package.json.stub',
'vite.config.js',
'replace-me.php',
'uninstall.php',
'tests/**/**',
'phpstan.neon.example'
];
let pascalName = pascalCase(argv.name);
let kebabName = paramCase(argv.name);
let snakeName = snakeCase(argv.name);
let titleName = capitalCase(argv.name);
return src(paths, { base: "./" })
.pipe(replace('ReplaceMe', pascalName))
.pipe(replace('replace-me', kebabName))
.pipe(replace('replace_me', snakeName))
.pipe(replace('Replace Me', titleName))
.pipe(dest('./'));
}
function swapVendorStrings() {
if (typeof argv.vendor === "undefined") {
argv.vendor = "App";
}
let paths = [
'app/**/**',
'composer.json',
'replace-me.php',
'uninstall.php',
'tests/**/**'
];
let pascalName = pascalCase(argv.vendor);
let kebabName = paramCase(argv.vendor);
let camelName = camelCase(argv.vendor);
return src(paths, { base: "./" })
.pipe(replace('VendorName', pascalName))
.pipe(replace('vendor-name', kebabName))
.pipe(replace('vendorName', camelName))
.pipe(dest('./'));
}
function renameFiles() {
let paths = [
'replace-me.php',
'languages/replace-me.pot'
];
let kebabName = paramCase(argv.name);
return src(paths, { base: "./" })
.pipe(rename(function (path) {
path.basename = kebabName;
}))
.pipe(dest('./'));
}
function deleteRenamedFiles() {
return del([
'replace-me.php',
'languages/replace-me.pot'
]);
}
function copyViews() {
if (typeof argv.view === "undefined") {
argv.view = "platine";
}
// copy contents to /views/
return src('views/' + argv.view + '/**/**').pipe(dest('./views/'));
}
function deleteSourceViews() {
return del(viewDirectories);
}
function updateViewClass() {
if (typeof argv.view === "undefined") {
argv.view = "platine";
}
return src('./app/Core/View.php')
.pipe(replace('ViewClassGoesHere', viewClasses[argv.view]))
.pipe(dest('./app/Core/'));
}
exports.default = series(swapNameStrings, swapVendorStrings, renameFiles, deleteRenamedFiles, copyViews, deleteSourceViews, updateViewClass);