Skip to content

Commit e9eaa10

Browse files
committed
Added local env_config access modules to resolve config read write issue
1 parent 7c7b7b2 commit e9eaa10

File tree

5 files changed

+85
-51
lines changed

5 files changed

+85
-51
lines changed

API/addRepoApi.js

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,22 @@
11
const { exec } = require("child_process");
2+
const path = require("path");
23
const util = require("util");
34
const execPromisified = util.promisify(exec);
45
const fs = require("fs");
5-
const {
6-
DATABASE_FILE,
7-
GITCONVEX_PORT,
8-
} = require("../global/envConfigReader").getEnvData();
6+
7+
function getEnvData() {
8+
const envFileData = fs.readFileSync(
9+
path.join(__dirname, "..", "env_config.json")
10+
);
11+
12+
const envContent = envFileData.toString();
13+
let envData = JSON.parse(envContent)[0];
14+
15+
return {
16+
DATABASE_FILE: envData.databaseFile,
17+
GITCONVEX_PORT: envData.port,
18+
};
19+
}
920

1021
async function addRepoHandler(repoName, repoPath, initCheck) {
1122
const timeStamp = new Date().toUTCString();
@@ -35,8 +46,7 @@ async function addRepoHandler(repoName, repoPath, initCheck) {
3546
};
3647
}
3748

38-
const dataStoreFile =
39-
DATABASE_FILE || "./database/repo-datastore.json";
49+
const dataStoreFile = getEnvData().DATABASE_FILE;
4050

4151
let fileData = fs.readFileSync(dataStoreFile);
4252
const repoData = fileData.toString();

API/settingsApi.js

Lines changed: 24 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,31 @@
11
const fs = require("fs");
22
const path = require("path");
3-
const { DATABASE_FILE } = require("../global/envConfigReader").getEnvData();
3+
4+
function getEnvData() {
5+
const envFileData = fs.readFileSync(
6+
path.join(__dirname, "..", "env_config.json")
7+
);
8+
9+
const envContent = envFileData.toString();
10+
let envData = JSON.parse(envContent)[0];
11+
12+
return {
13+
DATABASE_FILE: envData.databaseFile,
14+
GITCONVEX_PORT: envData.port,
15+
};
16+
}
417

518
const fetchDatabaseFile = async () => {
6-
const dbPath = DATABASE_FILE || "NO_DATABASE_FILE";
7-
console.log("Databade File", dbPath);
19+
const dbPath = getEnvData().DATABASE_FILE || "NO_DATABASE_FILE";
20+
console.log("Database File", dbPath);
821
return {
922
settingsDatabasePath: dbPath.toString(),
1023
};
1124
};
1225

1326
const fetchRepoDetails = async () => {
1427
return await fs.promises
15-
.readFile(DATABASE_FILE)
28+
.readFile(getEnvData().DATABASE_FILE)
1629
.then((res) => {
1730
const fileContent = res.toString();
1831
let parsedFileContent = [];
@@ -24,7 +37,7 @@ const fetchRepoDetails = async () => {
2437
parsedFileContent = [];
2538
}
2639
} else {
27-
fs.writeFileSync(DATABASE_FILE, "[]");
40+
fs.writeFileSync(getEnvData().DATABASE_FILE, "[]");
2841

2942
return {
3043
settingsRepoDetails: [],
@@ -45,7 +58,7 @@ const fetchRepoDetails = async () => {
4558
};
4659

4760
const deleteRepo = async (repoId) => {
48-
return await fs.promises.readFile(DATABASE_FILE).then((res) => {
61+
return await fs.promises.readFile(getEnvData().DATABASE_FILE).then((res) => {
4962
console.log(res);
5063
});
5164
};
@@ -57,7 +70,7 @@ const updateDbFile = async (newFileName) => {
5770
.access(newFileName)
5871
.then(async (res) => {
5972
const envContent = fs
60-
.readFileSync(path.relative(".", "env_config.json"))
73+
.readFileSync(path.join(__dirname, "..", "env_config.json"))
6174
.toString();
6275

6376
const parsedEnvContent = JSON.parse(envContent)[0];
@@ -67,7 +80,7 @@ const updateDbFile = async (newFileName) => {
6780

6881
return await fs.promises
6982
.writeFile(
70-
path.relative(".", "env_config.json"),
83+
path.join(__dirname, "..", "env_config.json"),
7184
JSON.stringify([parsedEnvContent])
7285
)
7386
.then(() => {
@@ -85,21 +98,13 @@ const updateDbFile = async (newFileName) => {
8598
};
8699

87100
const getPortDetails = async () => {
88-
const envContent = fs
89-
.readFileSync(path.relative(".", "env_config.json"))
90-
.toString();
91-
92-
const parsedEnvContent = JSON.parse(envContent)[0];
93-
94-
console.log(JSON.stringify(parsedEnvContent));
95-
96-
return { settingsPortDetails: Number(parsedEnvContent.port) };
101+
return { settingsPortDetails: Number(getEnvData().GITCONVEX_PORT) };
97102
};
98103

99104
const updatePortDetails = async (newPort) => {
100105
if (!isNaN(newPort)) {
101106
const envContent = fs
102-
.readFileSync(path.relative(".", "env_config.json"))
107+
.readFileSync(path.join(__dirname, "..", "env_config.json"))
103108
.toString();
104109

105110
const parsedEnvContent = JSON.parse(envContent)[0];
@@ -109,7 +114,7 @@ const updatePortDetails = async (newPort) => {
109114

110115
return await fs.promises
111116
.writeFile(
112-
path.relative(".", "env_config.json"),
117+
path.join(__dirname, "..", "env_config.json"),
113118
JSON.stringify([parsedEnvContent])
114119
)
115120
.then(() => {

global/envConfigReader.js

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,17 @@ const fs = require("fs");
22
const path = require("path");
33

44
function getEnvData() {
5-
try {
6-
const envFileData = fs.readFileSync(
7-
path.join(__dirname, "..", "env_config.json")
8-
);
5+
const envFileData = fs.readFileSync(
6+
path.join(__dirname, "..", "env_config.json")
7+
);
98

10-
const envContent = envFileData.toString();
11-
let envData = JSON.parse(envContent)[0];
9+
const envContent = envFileData.toString();
10+
let envData = JSON.parse(envContent)[0];
1211

13-
return {
14-
DATABASE_FILE: envData.databaseFile,
15-
GITCONVEX_PORT: envData.port,
16-
};
17-
} catch (e) {
18-
return {
19-
DATABASE_FILE: "",
20-
GITCONVEX_PORT: "",
21-
};
22-
}
12+
return {
13+
DATABASE_FILE: envData.databaseFile,
14+
GITCONVEX_PORT: envData.port,
15+
};
2316
}
2417

2518
module.exports.getEnvData = getEnvData;

global/fetchGitRepoPath.js

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,24 @@
11
const fs = require("fs");
22
const path = require("path");
33
const dotenv = require("dotenv").config();
4-
const { DATABASE_FILE } = require("./envConfigReader").getEnvData();
4+
5+
function getEnvData() {
6+
const envFileData = fs.readFileSync(
7+
path.join(__dirname, "..", "env_config.json")
8+
);
9+
10+
const envContent = envFileData.toString();
11+
let envData = JSON.parse(envContent)[0];
12+
13+
return {
14+
DATABASE_FILE: envData.databaseFile,
15+
GITCONVEX_PORT: envData.port,
16+
};
17+
}
518

619
const getRepoPath = (repoId) => {
20+
const { DATABASE_FILE } = getEnvData();
21+
722
const dataEntry = fs.readFileSync(DATABASE_FILE).toString();
823

924
const repoObject = JSON.parse(dataEntry);

server.js

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,29 @@ const express = require("express");
55
const path = require("path");
66
const fs = require("fs");
77
const dotenv = require("dotenv").config();
8+
89
const { updateDbFile } = require("./API/settingsApi");
910
const app = globalAPI;
1011
const log = console.log;
1112
var envConfigFilename = "env_config.json";
1213
var envConfigFilePath = path.join(__dirname, envConfigFilename);
1314

15+
// DATABASE_FILE = path.join(__dirname, ".", DATABASE_FILE);
16+
1417
app.use(express.static(path.join(__dirname, "build")));
1518

19+
function getEnvData() {
20+
const envFileData = fs.readFileSync(path.join(__dirname, "env_config.json"));
21+
22+
const envContent = envFileData.toString();
23+
let envData = JSON.parse(envContent)[0];
24+
25+
return {
26+
DATABASE_FILE: envData.databaseFile,
27+
GITCONVEX_PORT: envData.port,
28+
};
29+
}
30+
1631
log("INFO: Checking for config file");
1732

1833
let configStatus = "";
@@ -35,20 +50,14 @@ try {
3550
});
3651
}
3752

38-
let {
39-
DATABASE_FILE,
40-
GITCONVEX_PORT,
41-
} = require("./global/envConfigReader").getEnvData();
42-
const port = GITCONVEX_PORT;
43-
4453
log("INFO: Config file is present");
4554
log("INFO: Reading from config file " + envConfigFilePath);
4655

4756
app.get("/*", (req, res) => {
4857
res.sendFile(path.join(__dirname, "build", "index.html"));
4958
});
5059

51-
globalAPI.listen(port || 9001, async (err) => {
60+
globalAPI.listen(getEnvData().GITCONVEX_PORT || 9001, async (err) => {
5261
if (err) {
5362
log(err);
5463
}
@@ -57,6 +66,8 @@ globalAPI.listen(port || 9001, async (err) => {
5766

5867
log("\n#Checking data file availability...");
5968

69+
var DATABASE_FILE = getEnvData().DATABASE_FILE;
70+
6071
await fs.promises
6172
.access(DATABASE_FILE)
6273
.then(() => {
@@ -104,9 +115,9 @@ globalAPI.listen(port || 9001, async (err) => {
104115
});
105116

106117
log(
107-
`\n## Gitconvex is running on port ${port}
118+
`\n## Gitconvex is running on port ${getEnvData().GITCONVEX_PORT}
108119
109-
Open http://localhost:${port}/ to access gitconvex
120+
Open http://localhost:${getEnvData().GITCONVEX_PORT}/ to access gitconvex
110121
`
111122
);
112123
});

0 commit comments

Comments
 (0)