UNPKG

2.14 kBJavaScriptView Raw
1const mtldev = require("mtl-dev-sdk");
2const shell = require("shelljs");
3const fse = require("fs-extra");
4const join = require("path").join;
5const os = require("os");
6const projectConfig = {
7 workspace:""
8}
9
10function consoleLog(msg,msg2) {
11 if(msg2){
12 return console.log(msg,msg2);
13 }
14 console.log(msg);
15}
16function 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}
26function getWorkSpace(){
27 return projectConfig.workspace;
28}
29
30//校验工程名称
31function 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
40const _platformList = [
41 {
42 type: "list",
43 message: "请选择项目平台:1、iOS;2、Android , 用上下箭头选择平台:",
44 name: "platform",
45 choices: [],
46 filter: function(val) {
47 // 使用filter将回答变为小写
48 return val.toLowerCase();
49 }
50 }
51];
52
53function platformList(mobile) {
54 mobile
55 ? (_platformList[0].choices = ["iOS", "android"])
56 : (_platformList[0].choices = ["iOS", "android", "wx", "dd", "upesn"]);
57 return _platformList;
58}
59function platformListDebug() {
60 _platformList[0].choices = ["iOS", "android", "wx", "dd"]
61 return _platformList;
62}
63
64function 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}
79function isWindows() {
80 let sysType = os.type();
81 if (sysType === "Windows_NT") {
82 return true;
83 } else {
84 return false;
85 }
86}
87
88module.exports = {
89 consoleLog,
90 isMtlProject,
91 isVerifyProjectName,
92 platformList,
93 getWorkSpace,
94 evalJs,
95 platformListDebug,
96 isWindows
97};