From 2771e56357bd738a2c9735d7c8cfa9df5b9d97a0 Mon Sep 17 00:00:00 2001 From: Benjamin Gamard Date: Mon, 5 Mar 2018 14:36:30 +0100 Subject: [PATCH] Closes #188: Quiet mode for the file importer --- .gitignore | 3 ++ docs-importer/README.md | 5 +++ docs-importer/main.js | 58 +++++++++++++++++++++++++-------- docs-importer/package-lock.json | 15 ++++++--- docs-importer/package.json | 3 +- 5 files changed, 65 insertions(+), 19 deletions(-) diff --git a/.gitignore b/.gitignore index 4f52e0fa..06a670ab 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,6 @@ *.iml node_modules import_test +docs-importer-linux +docs-importer-macos +docs-importer-win.exe \ No newline at end of file diff --git a/docs-importer/README.md b/docs-importer/README.md index 344a746c..68afac71 100644 --- a/docs-importer/README.md +++ b/docs-importer/README.md @@ -17,6 +17,11 @@ docs-importer-win.exe (for Windows) A wizard will ask you for the import configuration and write it in `~/.config/preferences/com.sismics.docs.importer.pref` +For the next start, pass the `-d` argument to skip the wizard: +```console +./docs-importer-linux -d +``` + Daemon mode ----------- The daemon mode scan the input directory every 30 seconds for new files. Once a file is found and imported, it is **deleted**. diff --git a/docs-importer/main.js b/docs-importer/main.js index 1a358f98..13979332 100644 --- a/docs-importer/main.js +++ b/docs-importer/main.js @@ -5,6 +5,7 @@ const ora = require('ora'); const inquirer = require('inquirer'); const preferences = require('preferences'); const fs = require('fs'); +const argv = require('minimist')(process.argv); const request = require('request').defaults({ jar: true }); @@ -55,7 +56,6 @@ const askBaseUrl = () => { }); }); }; -askBaseUrl(); // Ask for credentials const askCredentials = () => { @@ -162,24 +162,42 @@ const askDaemon = () => { // Save daemon prefs.importer.daemon = answers.daemon; + // Save all preferences in case the program is sig-killed + prefs.save(); + start(); }); }; -// Start the import +// Start the importer const start = () => { - if (prefs.importer.daemon) { - console.log('\nPolling the input folder for new files...'); + request.post({ + url: prefs.importer.baseUrl + '/api/user/login', + form: { + username: prefs.importer.username, + password: prefs.importer.password, + remember: true + } + }, function (error, response) { + if (error || !response || response.statusCode !== 200) { + console.error('\nUsername or password incorrect'); + return; + } - let resolve = () => { - importFiles(true, () => { - setTimeout(resolve, 30000); - }); - }; - resolve(); - } else { - importFiles(false, () => {}); - } + // Start the actual import + if (prefs.importer.daemon) { + console.log('\nPolling the input folder for new files...'); + + let resolve = () => { + importFiles(true, () => { + setTimeout(resolve, 30000); + }); + }; + resolve(); + } else { + importFiles(false, () => {}); + } + }); }; // Import the files @@ -227,4 +245,16 @@ const importFile = (file, remove, resolve) => { } resolve(); }); -}; \ No newline at end of file +}; + +// Entrypoint: daemon mode or wizard +if (argv.hasOwnProperty('d')) { + console.log('Starting in quiet mode with the following configuration:\n' + + 'Base URL: ' + prefs.importer.baseUrl + '\n' + + 'Username: ' + prefs.importer.username + '\n' + + 'Password: ***********\n' + + 'Daemon mode: ' + prefs.importer.daemon); + start(); +} else { + askBaseUrl(); +} \ No newline at end of file diff --git a/docs-importer/package-lock.json b/docs-importer/package-lock.json index 847fe7c5..c5879649 100644 --- a/docs-importer/package-lock.json +++ b/docs-importer/package-lock.json @@ -1,6 +1,6 @@ { "name": "docs-importer", - "version": "1.0.0", + "version": "1.5.1", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -476,9 +476,9 @@ } }, "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" }, "mkdirp": { "version": "0.5.1", @@ -486,6 +486,13 @@ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "requires": { "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + } } }, "mute-stream": { diff --git a/docs-importer/package.json b/docs-importer/package.json index 1eadb98f..6bc29dc9 100644 --- a/docs-importer/package.json +++ b/docs-importer/package.json @@ -1,6 +1,6 @@ { "name": "docs-importer", - "version": "1.0.0", + "version": "1.5.1", "description": "Import files to Sismics Docs", "bin": "main.js", "scripts": { @@ -18,6 +18,7 @@ "homepage": "https://github.com/sismics/docs#readme", "dependencies": { "inquirer": "^5.1.0", + "minimist": "^1.2.0", "ora": "^2.0.0", "preferences": "^1.0.2", "recursive-readdir": "^2.2.2",