UNPKG

qcobjects-cli

Version:

qcobjects cli command line tool

8 lines (7 loc) 7.02 kB
{ "version": 3, "sources": ["../../src/cli-commands-publish-static.ts"], "sourcesContent": ["/**\n * QCObjects CLI 2.5\n * ________________\n *\n * Author: Jean Machuca <correojean@gmail.com>\n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,<correojean@gmail.com>\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n/*eslint no-unused-vars: \"off\"*/\n/*eslint no-redeclare: \"off\"*/\n/*eslint no-empty: \"off\"*/\n/*eslint strict: \"off\"*/\n/*eslint no-mixed-operators: \"off\"*/\n/*eslint no-undef: \"off\"*/\n\"use strict\";\nimport path from \"node:path\";\nimport fs from \"node:fs\";\n\nimport { Package, InheritClass, _DataStringify, New, CONFIG, logger } from \"qcobjects\";\nconst absolutePath = path.resolve(__dirname, \"./\");\n\nexport class CommandHandler extends InheritClass {\n choiceOption: {\n [x: string]: any; publish_static: (source:string, dest:string, options:any) => void;\n };\n\n constructor({\n switchCommander\n }: { switchCommander: any }) {\n super({ switchCommander });\n this.choiceOption = {\n publish_static(source, dest, options) {\n\n const copyDir = (source:string, dest:string, exclude:string) => {\n source = path.resolve(source);\n dest = path.resolve(dest);\n const dname = path.basename(source);\n const dirExcluded = (exclude.includes(dname));\n \n const isDir = (d:string) => {\n return (fs.existsSync(d) && fs.statSync(d).isDirectory())?(true):(false);\n };\n \n const isFile = (d:string) => {\n return (fs.existsSync(d) && fs.statSync(d).isFile())?(true):(false);\n };\n \n if (isDir(source) && !dirExcluded){\n fs.mkdirSync(dest, {recursive:true});\n const paths = fs.readdirSync(source, {withFileTypes:true});\n const dirs = paths.filter(d=>d.isDirectory());\n const files = paths.filter(f=>f.isFile());\n void ((paths, dirs, files, exclude) => {\n files.forEach((f) => {\n const sourceFile = path.resolve(source, f.name);\n const destFile = path.resolve(dest, f.name);\n const fileExcluded = exclude.includes(f.name);\n if (isFile(sourceFile) && !fileExcluded) {\n logger.debug(`[publish:static] Copying files from ${sourceFile} to ${destFile} excluding ${exclude}...`);\n fs.copyFileSync(sourceFile, destFile);\n logger.debug(`[publish:static] Copying files from ${sourceFile} to ${destFile} excluding ${exclude}...DONE!`);\n }\n });\n dirs.forEach((d) => {\n const sourceDir = path.resolve(source, d.name);\n const destDir = path.resolve(dest, d.name);\n copyDir(sourceDir, destDir, exclude);\n });\n })(paths, dirs, files, exclude);\n }\n \n };\n \n try {\n logger.info(`[publish:static] Copying files from ${source} to ${dest} excluding ${options.exclude}...`);\n copyDir(source, dest, (typeof options.exclude !== \"undefined\") ? (options.exclude) : ([]));\n } catch (e:any) {\n logger.warn(`Something went wrong trying to publish static files: ${e.message}`);\n process.exit(1);\n }\n }\n \n };\n\n const commandHandler = this;\n logger.debug(\"Loading command publish-static...\");\n\n switchCommander.program.command(\"publish:static <source> <dest>\")\n .allowExcessArguments(false)\n .option(\"-e, --exclude <excludePaths...>\", \"Exclude some paths or files\")\n .description(\"Publishes (copy) all files and directories from source to dest\")\n .action(function (source:string, dest:string, options:any) {\n commandHandler.choiceOption.publish_static.call(commandHandler, source, dest, options);\n });\n\n logger.debug(\"Loading command publish-static... DONE.\");\n }\n\n\n}\n\n\nPackage(\"com.qcobjects.cli.commands.jira\", [\n CommandHandler\n]);\n"], "mappings": "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", "names": ["source", "dest", "paths", "dirs", "files", "exclude"] }