diff --git a/docs-importer/Dockerfile b/docs-importer/Dockerfile index 8133bd78..450fb2f5 100644 --- a/docs-importer/Dockerfile +++ b/docs-importer/Dockerfile @@ -5,7 +5,7 @@ RUN npm install && npm install -g pkg RUN pkg -t node14-alpine-x64 . FROM alpine -ENV TEEDY_TAG= TEEDY_ADDTAGS=false TEEDY_LANG=eng TEEDY_URL='http://localhost:8080' TEEDY_USERNAME=username TEEDY_PASSWORD=password TEEDY_COPYFOLDER= +ENV TEEDY_TAG= TEEDY_ADDTAGS=false TEEDY_LANG=eng TEEDY_URL='http://localhost:8080' TEEDY_USERNAME=username TEEDY_PASSWORD=password TEEDY_COPYFOLDER= TEEDY_FILEFILTER= RUN apk add --no-cache \ libc6-compat \ libstdc++ diff --git a/docs-importer/README.md b/docs-importer/README.md index e8424d25..0f272373 100644 --- a/docs-importer/README.md +++ b/docs-importer/README.md @@ -37,7 +37,7 @@ docker build -t teedy-import . docker run --name teedy-import -d -v /path/to/preferencefile:/root/.config/preferences/com.sismics.docs.importer.pref -v /path/to/import/folder:/import teedy-import ``` ### Environment variables -Instead of mounting the preferences file, the options can also be set by setting the environment variables `TEEDY_TAG`, `TEEDY_ADDTAGS`, `TEEDY_LANG`, `TEEDY_COPYFOLDER`, `TEEDY_URL`, `TEEDY_USERNAME` and `TEEDY_PASSWORD`. +Instead of mounting the preferences file, the options can also be set by setting the environment variables `TEEDY_TAG`, `TEEDY_ADDTAGS`, `TEEDY_LANG`, `TEEDY_COPYFOLDER`, `TEEDY_FILEFILTER`, `TEEDY_URL`, `TEEDY_USERNAME` and `TEEDY_PASSWORD`. The latter three have to be set for the importer to work. The value of `TEEDY_TAG` has to be set to the UUID of the tag, not the name (The UUID can be found by visiting `baseUrl/api/tag/list` in your browser). Example usage: diff --git a/docs-importer/env.sh b/docs-importer/env.sh index f5124010..0e8771f7 100755 --- a/docs-importer/env.sh +++ b/docs-importer/env.sh @@ -7,4 +7,5 @@ sed -i "s,env4,$TEEDY_URL,g" $file sed -i "s/env5/$TEEDY_USERNAME/g" $file sed -i "s/env6/$TEEDY_PASSWORD/g" $file sed -i "s,env7,$TEEDY_COPYFOLDER,g" $file +sed -i "s,env8,$TEEDY_FILEFILTER,g" $file echo "Environment variables replaced" \ No newline at end of file diff --git a/docs-importer/main.js b/docs-importer/main.js index 20600f5c..96ea17eb 100644 --- a/docs-importer/main.js +++ b/docs-importer/main.js @@ -1,6 +1,7 @@ 'use strict'; const recursive = require('recursive-readdir'); +const minimatch = require("minimatch"); const ora = require('ora'); const inquirer = require('inquirer'); const preferences = require('preferences'); @@ -142,13 +143,32 @@ const askPath = () => { recursive(answers.path, function (error, files) { spinner.succeed(files.length + ' files in this directory'); - askTag(); + askFileFilter(); }); }); }); }); }; +// Ask for the file filter +const askFileFilter = () => { + console.log(''); + + inquirer.prompt([ + { + type: 'input', + name: 'fileFilter', + message: 'What pattern do you want to use to match files? (eg. *.+(pdf|txt|jpg))', + default: prefs.importer.fileFilter || "*" + } + ]).then(answers => { + // Save fileFilter + prefs.importer.fileFilter = answers.fileFilter; + + askTag(); + }); +}; + // Ask for the tag to add const askTag = () => { console.log(''); @@ -344,6 +364,8 @@ const start = () => { // Import the files const importFiles = (remove, filesImported) => { recursive(prefs.importer.path, function (error, files) { + + files = files.filter(minimatch.filter(prefs.importer.fileFilter ?? "*", {matchBase: true})); if (files.length === 0) { filesImported(); return; @@ -471,7 +493,8 @@ if (argv.hasOwnProperty('d')) { 'Add tags given #: ' + prefs.importer.addtags + '\n' + 'Language: ' + prefs.importer.lang + '\n' + 'Daemon mode: ' + prefs.importer.daemon + '\n' + - 'Copy folder: ' + prefs.importer.copyFolder + 'Copy folder: ' + prefs.importer.copyFolder + '\n' + + 'File filter: ' + prefs.importer.fileFilter ); start(); } else { diff --git a/docs-importer/package.json b/docs-importer/package.json index 1234c034..a4f3c5e0 100644 --- a/docs-importer/package.json +++ b/docs-importer/package.json @@ -26,6 +26,7 @@ "preferences": "^1.0.2", "qs": "^6.9.4", "recursive-readdir": "^2.2.2", + "minimatch": "^3.0.4", "request": "^2.83.0", "underscore": "^1.8.3" } diff --git a/docs-importer/pref b/docs-importer/pref index 4e8707b0..99830062 100644 --- a/docs-importer/pref +++ b/docs-importer/pref @@ -7,4 +7,5 @@ importer: baseUrl: 'env4' username: 'env5' password: 'env6' - copyFolder: 'env7' \ No newline at end of file + copyFolder: 'env7' + fileFilter: 'env8' \ No newline at end of file