1 | const mtldev = require("mtl-dev-sdk");
|
2 | const shell = require("shelljs");
|
3 | const fse = require("fs-extra");
|
4 | const join = require("path").join;
|
5 | const os = require("os");
|
6 | const projectConfig = {
|
7 | workspace:""
|
8 | }
|
9 |
|
10 | function consoleLog(msg,msg2) {
|
11 | if(msg2){
|
12 | return console.log(msg,msg2);
|
13 | }
|
14 | console.log(msg);
|
15 | }
|
16 | function isMtlProject() {
|
17 | projectConfig.workspace = shell.pwd().toString();
|
18 | consoleLog(`MTL-Project workspace ${projectConfig.workspace}`);
|
19 | mtldev.initWorkspace(projectConfig.workspace);
|
20 | if (mtldev.technologyStack()) {
|
21 | return true;
|
22 | }
|
23 | consoleLog(`The current path is not MTL-Project`);
|
24 | return false;
|
25 | }
|
26 | function getWorkSpace(){
|
27 | return projectConfig.workspace;
|
28 | }
|
29 |
|
30 |
|
31 | function isVerifyProjectName(projectName) {
|
32 | var patrn = /^[A-Za-z0-9]{1,64}$/;
|
33 | if (patrn.exec(projectName) && projectName.length <= 64) {
|
34 | return true;
|
35 | } else {
|
36 | return false;
|
37 | }
|
38 | }
|
39 |
|
40 | const _platformList = [
|
41 | {
|
42 | type: "list",
|
43 | message: "请选择项目平台:1、iOS;2、Android , 用上下箭头选择平台:",
|
44 | name: "platform",
|
45 | choices: [],
|
46 | filter: function(val) {
|
47 |
|
48 | return val.toLowerCase();
|
49 | }
|
50 | }
|
51 | ];
|
52 |
|
53 | function platformList(mobile) {
|
54 | mobile
|
55 | ? (_platformList[0].choices = ["iOS", "android"])
|
56 | : (_platformList[0].choices = ["iOS", "android", "wx", "dd", "upesn"]);
|
57 | return _platformList;
|
58 | }
|
59 | function platformListDebug() {
|
60 | _platformList[0].choices = ["iOS", "android", "wx", "dd"]
|
61 | return _platformList;
|
62 | }
|
63 |
|
64 | function evalJs(jsfile){
|
65 | try {
|
66 | let _jsfile = join(getWorkSpace(), jsfile);
|
67 | if(!fse.existsSync(_jsfile)){
|
68 | consoleLog(`可以先执行 mtl cp-s 生成 script `);
|
69 | return;
|
70 | }
|
71 | let jsctx = fse.readFileSync(_jsfile, {
|
72 | encoding: "utf-8"
|
73 | });
|
74 | eval(jsctx);
|
75 | } catch (e) {
|
76 | consoleLog(e);
|
77 | }
|
78 | }
|
79 | function isWindows() {
|
80 | let sysType = os.type();
|
81 | if (sysType === "Windows_NT") {
|
82 | return true;
|
83 | } else {
|
84 | return false;
|
85 | }
|
86 | }
|
87 |
|
88 | module.exports = {
|
89 | consoleLog,
|
90 | isMtlProject,
|
91 | isVerifyProjectName,
|
92 | platformList,
|
93 | getWorkSpace,
|
94 | evalJs,
|
95 | platformListDebug,
|
96 | isWindows
|
97 | };
|