diff --git a/package-lock.json b/package-lock.json
index 5eef258..6d7506f 100755
--- a/package-lock.json
+++ b/package-lock.json
@@ -1134,9 +1134,9 @@
"dev": true
},
"@types/node": {
- "version": "13.9.8",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-13.9.8.tgz",
- "integrity": "sha512-1WgO8hsyHynlx7nhP1kr0OFzsgKz5XDQL+Lfc3b1Q3qIln/n8cKD4m09NJ0+P1Rq7Zgnc7N0+SsMnoD1rEb0kA==",
+ "version": "13.11.0",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-13.11.0.tgz",
+ "integrity": "sha512-uM4mnmsIIPK/yeO+42F2RQhGUIs39K2RFmugcJANppXe6J1nvH87PvzPZYpza7Xhhs8Yn9yIAVdLZ84z61+0xQ==",
"dev": true
},
"@zkochan/cmd-shim": {
diff --git a/package.json b/package.json
index a74967e..0f2a98c 100755
--- a/package.json
+++ b/package.json
@@ -15,7 +15,7 @@
"watch": "parcel watch packages/@servitor/cli/index.ts -d packages/@servitor/cli/bin --target node"
},
"devDependencies": {
- "@types/node": "13.9.8",
+ "@types/node": "13.11.0",
"lerna": "3.20.2"
}
}
diff --git a/packages/@servitor/cli/index.ts b/packages/@servitor/cli/index.ts
index f7c9b6f..d1f6288 100755
--- a/packages/@servitor/cli/index.ts
+++ b/packages/@servitor/cli/index.ts
@@ -6,7 +6,8 @@ import ConfigManager from "../config-manager";
import AddApacheVHostTask from "../tasks/AddApacheVHostTask"
import AddToHostTask from "../tasks/AddToHostTask"
import DownloadRepositoryTask from "../tasks/DownloadRepositoryTask"
-import chalk from "chalk";
+
+import Logger from "../logger";
import Task from "../tasks/Task";
@@ -42,20 +43,22 @@ class CLI {
}
setup(){
- this.prompt().then(this.execute).catch((reject) => console.log(reject));
+ this.prompt().then(() => this.execute()).catch((reject) => console.log(reject));
}
async prompt(){
for(const task of this._tasks) {
task.setup();
- console.log(chalk.gbBlue.black('Task'),chalk.bgGreen.black(task.description));
+ Logger.log(
+ `Task ${task.description}`
+ );
await prompt(task.questions).then((answers) => {
task.answers = answers;
});
}
- },
+ }
- execute(){
+ async execute(){
this._tasks.forEach(task => {
task.execute()
});
diff --git a/packages/@servitor/logger/index.ts b/packages/@servitor/logger/index.ts
new file mode 100644
index 0000000..ab29a97
--- /dev/null
+++ b/packages/@servitor/logger/index.ts
@@ -0,0 +1,30 @@
+import chalk from "chalk";
+class Logger {
+
+ log(message){
+ console.log(
+ chalk.white(message),
+ );
+ }
+
+ success(message){
+ console.log(
+ chalk.green(message),
+ );
+ }
+ warning(message){
+ console.log(
+ chalk.orange(message),
+ );
+ }
+
+ fail(message){
+ console.log(
+ chalk.red(message),
+ );
+ }
+
+}
+
+
+export default new Logger;
\ No newline at end of file
diff --git a/packages/@servitor/logger/package.json b/packages/@servitor/logger/package.json
new file mode 100644
index 0000000..f6fbaf2
--- /dev/null
+++ b/packages/@servitor/logger/package.json
@@ -0,0 +1,12 @@
+{
+ "name": "@servitor/logger",
+ "version": "0.1.0",
+ "description": "Servitor Logger",
+ "main": "index.ts",
+ "dependencies": {
+ "chalk": "3.0.0"
+ },
+ "devDependencies": {
+ "typescript": "3.8.3"
+ }
+}
diff --git a/packages/@servitor/questions/ProjectDirectory.ts b/packages/@servitor/questions/ProjectDirectory.ts
index 1dc42fb..3eb4f93 100755
--- a/packages/@servitor/questions/ProjectDirectory.ts
+++ b/packages/@servitor/questions/ProjectDirectory.ts
@@ -6,7 +6,7 @@ class ProjectDirectory extends Question {
super();
this.name = "directory.project";
this.type = "input";
- this.message = "Where should the project be created?";
+ this.message = "What is the project directory?";
}
}
diff --git a/packages/@servitor/tasks/AddApacheVHostTask.ts b/packages/@servitor/tasks/AddApacheVHostTask.ts
index 4422dad..50ac726 100755
--- a/packages/@servitor/tasks/AddApacheVHostTask.ts
+++ b/packages/@servitor/tasks/AddApacheVHostTask.ts
@@ -1,8 +1,10 @@
///
import fs from "fs-extra";
+
import TaskInterface from "./TaskInterface";
import Task from "./Task";
+
// import hostStub from "../stubs/server/apache/host";
import ProjectDirectory from "./../questions/ProjectDirectory";
@@ -11,31 +13,39 @@ import VirtualHostDirectory from "./../questions/VirtualHostDirectory";
class AddApacheVHostTask extends Task implements TaskInterface {
- private readonly fileName = '';
- private readonly stub;
- private readonly virtualHostDirectory = '/etc/apache2/vhosts';
-
constructor(){
super();
- this.description = "Create apache vhost file";
+ this.description = "Create an apache vhost file";
}
setup(): void {
this.questions = [
- new ProjectUrlQuestion,
new ProjectDirectory,
+ new ProjectUrlQuestion,
new VirtualHostDirectory,
];
}
execute(): Promise {
- this.fileName = `${this.answers.url}.conf`;
+ const fileName = `${this.answers.url}.conf`;
return new Promise((resolve, reject) => {
try {
- fs.accessSync(this.virtualHostDirectory, fs.constants.R_OK | fs.constants.W_OK);
+ fs.accessSync(this.answers.directory.vhost, fs.constants.R_OK | fs.constants.W_OK);
fs.appendFile(
- this.fileName,
- this.stub.compiled,
+ this.answers.directory.vhost + '/' + fileName,
+ `
+
+ ServerAdmin webmaster@localhost
+ ServerAlias ${this.answers.url}
+
+ DocumentRoot ${this.answers.directory.project}
+
+
+ Options Indexes FollowSymLinks MultiViews
+ AllowOverride All
+
+
+ `,
error => {
if (error) return reject(error);
resolve();
diff --git a/packages/@servitor/tasks/AddToHostTask.ts b/packages/@servitor/tasks/AddToHostTask.ts
index ceaefae..95a12d3 100755
--- a/packages/@servitor/tasks/AddToHostTask.ts
+++ b/packages/@servitor/tasks/AddToHostTask.ts
@@ -1,6 +1,9 @@
///
import fs from "fs-extra";
+
+import Logger from "../logger";
+
import TaskInterface from "./TaskInterface";
import Task from "./Task";
@@ -26,14 +29,14 @@ class AddToHostTask extends Task implements TaskInterface {
try {
fs.accessSync(this.answers.file.hostFile, fs.constants.R_OK | fs.constants.W_OK);
fs.appendFile(
- this.hostFile,
- `127.0.0.1 ${this.answers.url}`,
+ this.answers.file.hostFile,
+ `127.0.0.1 ${this.answers.url}\n`,
error => {
if (error) return reject(error);
+ Logger.success(`The URL was successfully added to the host file`);
resolve();
}
);
-
} catch (err) {
return reject(err);
}
diff --git a/packages/@servitor/tasks/Task.ts b/packages/@servitor/tasks/Task.ts
index b7173fa..b232d28 100755
--- a/packages/@servitor/tasks/Task.ts
+++ b/packages/@servitor/tasks/Task.ts
@@ -1,4 +1,5 @@
import Question from "./../questions/Question";
+
abstract class Task{
protected answers;
diff --git a/yarn.lock b/yarn.lock
index 6521b10..5c01cab 100755
--- a/yarn.lock
+++ b/yarn.lock
@@ -896,10 +896,10 @@
resolved "https://registry.yarnpkg.com/@types/node/-/node-13.7.7.tgz#1628e6461ba8cc9b53196dfeaeec7b07fa6eea99"
integrity sha512-Uo4chgKbnPNlxQwoFmYIwctkQVkMMmsAoGGU4JKwLuvBefF0pCq4FybNSnfkfRCpC7ZW7kttcC/TrRtAJsvGtg==
-"@types/node@13.9.8":
- version "13.9.8"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-13.9.8.tgz#09976420fc80a7a00bf40680c63815ed8c7616f4"
- integrity sha512-1WgO8hsyHynlx7nhP1kr0OFzsgKz5XDQL+Lfc3b1Q3qIln/n8cKD4m09NJ0+P1Rq7Zgnc7N0+SsMnoD1rEb0kA==
+"@types/node@13.11.0":
+ version "13.11.0"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-13.11.0.tgz#390ea202539c61c8fa6ba4428b57e05bc36dc47b"
+ integrity sha512-uM4mnmsIIPK/yeO+42F2RQhGUIs39K2RFmugcJANppXe6J1nvH87PvzPZYpza7Xhhs8Yn9yIAVdLZ84z61+0xQ==
"@zkochan/cmd-shim@^3.1.0":
version "3.1.0"