From f6d481a9e2e5df260f8d6bd13969036114dbc9c7 Mon Sep 17 00:00:00 2001 From: azivner Date: Wed, 27 Dec 2017 16:44:15 -0500 Subject: [PATCH] fix resource path bug --- services/config.js | 3 ++- services/migration.js | 15 ++++----------- services/resource_dir.js | 25 +++++++++++++++++++++++++ services/sql.js | 8 ++++---- 4 files changed, 35 insertions(+), 16 deletions(-) create mode 100644 services/resource_dir.js diff --git a/services/config.js b/services/config.js index d7d04c5eb..29f5d83bb 100644 --- a/services/config.js +++ b/services/config.js @@ -4,8 +4,9 @@ const ini = require('ini'); const fs = require('fs'); const dataDir = require('./data_dir'); const path = require('path'); +const resource_dir = require('./resource_dir'); -const configSampleFilePath = path.resolve(__dirname, "..", "config-sample.ini"); +const configSampleFilePath = path.resolve(resource_dir.RESOURCE_DIR, "config-sample.ini"); const configFilePath = dataDir.TRILIUM_DATA_DIR + '/config.ini'; diff --git a/services/migration.js b/services/migration.js index ea60769e6..22faebe4c 100644 --- a/services/migration.js +++ b/services/migration.js @@ -3,14 +3,7 @@ const sql = require('./sql'); const options = require('./options'); const fs = require('fs-extra'); const log = require('./log'); -const path = require('path'); - -const MIGRATIONS_DIR = path.resolve(__dirname, "..", "migrations"); - -if (!fs.existsSync(MIGRATIONS_DIR)) { - log.error("Could not find migration directory: " + MIGRATIONS_DIR); - process.exit(1); -} +const resource_dir = require('./resource_dir'); async function migrate() { const migrations = []; @@ -20,7 +13,7 @@ async function migrate() { const currentDbVersion = parseInt(await options.getOption('db_version')); - fs.readdirSync(MIGRATIONS_DIR).forEach(file => { + fs.readdirSync(resource_dir.MIGRATIONS_DIR).forEach(file => { const match = file.match(/([0-9]{4})__([a-zA-Z0-9_ ]+)\.(sql|js)/); if (match) { @@ -53,7 +46,7 @@ async function migrate() { await sql.doInTransaction(async () => { if (mig.type === 'sql') { - const migrationSql = fs.readFileSync(MIGRATIONS_DIR + "/" + mig.file).toString('utf8'); + const migrationSql = fs.readFileSync(resource_dir.MIGRATIONS_DIR + "/" + mig.file).toString('utf8'); console.log("Migration with SQL script: " + migrationSql); @@ -62,7 +55,7 @@ async function migrate() { else if (mig.type === 'js') { console.log("Migration with JS module"); - const migrationModule = require("../" + MIGRATIONS_DIR + "/" + mig.file); + const migrationModule = require("../" + resource_dir.MIGRATIONS_DIR + "/" + mig.file); await migrationModule(db); } else { diff --git a/services/resource_dir.js b/services/resource_dir.js new file mode 100644 index 000000000..bb9bd029b --- /dev/null +++ b/services/resource_dir.js @@ -0,0 +1,25 @@ +const log = require('./log'); +const path = require('path'); +const fs = require('fs'); + +const RESOURCE_DIR = path.resolve(__dirname, ".."); + +const MIGRATIONS_DIR = path.resolve(RESOURCE_DIR, "migrations"); + +if (!fs.existsSync(MIGRATIONS_DIR)) { + log.error("Could not find migration directory: " + MIGRATIONS_DIR); + process.exit(1); +} + +const DB_INIT_DIR = path.resolve(RESOURCE_DIR, "db"); + +if (!fs.existsSync(DB_INIT_DIR)) { + log.error("Could not find DB initialization directory: " + DB_INIT_DIR); + process.exit(1); +} + +module.exports = { + RESOURCE_DIR, + MIGRATIONS_DIR, + DB_INIT_DIR +}; \ No newline at end of file diff --git a/services/sql.js b/services/sql.js index 6e2c1b8ef..9b3108008 100644 --- a/services/sql.js +++ b/services/sql.js @@ -4,8 +4,8 @@ const log = require('./log'); const dataDir = require('./data_dir'); const fs = require('fs'); const sqlite = require('sqlite'); -const utils = require('./utils'); const app_info = require('./app_info'); +const resource_dir = require('./resource_dir'); async function createConnection() { return await sqlite.open(dataDir.DOCUMENT_PATH, {Promise}); @@ -28,9 +28,9 @@ const dbReady = new Promise((resolve, reject) => { if (tableResults.length !== 1) { log.info("Connected to db, but schema doesn't exist. Initializing schema ..."); - const schema = fs.readFileSync('db/schema.sql', 'UTF-8'); - const notesSql = fs.readFileSync('db/main_notes.sql', 'UTF-8'); - const notesTreeSql = fs.readFileSync('db/main_notes_tree.sql', 'UTF-8'); + const schema = fs.readFileSync(resource_dir.DB_INIT_DIR + '/schema.sql', 'UTF-8'); + const notesSql = fs.readFileSync(resource_dir.DB_INIT_DIR + '/main_notes.sql', 'UTF-8'); + const notesTreeSql = fs.readFileSync(resource_dir.DB_INIT_DIR + '/main_notes_tree.sql', 'UTF-8'); await doInTransaction(async () => { await executeScript(schema);