diff --git a/src/cli/args.js b/src/cli/args.js index 8283f7f7aa..5b47c800bd 100644 --- a/src/cli/args.js +++ b/src/cli/args.js @@ -1,5 +1,15 @@ const parseArgs = () => { - // Write your code here + const args = process.argv.slice(2); // Հեռացնում ենք առաջին երկու էլեմենտները + const result = {}; + + args.forEach((arg) => { + const [key, value] = arg.split("="); // բաժանել '--name=John' → ['--name', 'John'] + const cleanKey = key.replace(/^--/, ""); // հանել '--' մասը + result[cleanKey] = value || true; // եթե արժեք չկա, դնել true + }); + + console.log(result); + return result; }; -parseArgs(); \ No newline at end of file +parseArgs(); diff --git a/src/cli/env.js b/src/cli/env.js index fe4aa4a8df..f2a8ec81c3 100644 --- a/src/cli/env.js +++ b/src/cli/env.js @@ -1,5 +1,15 @@ const parseEnv = () => { - // Write your code here + const env = process.env; + const result = {}; + + for (const key in env) { + if (Object.hasOwn(env, key)) { + result[key] = env[key]; + } + } + + console.log(result); + return result; }; -parseEnv(); \ No newline at end of file +parseEnv(); diff --git a/src/fs/copy.js b/src/fs/copy.js index bd17fe3991..2845ca11d1 100644 --- a/src/fs/copy.js +++ b/src/fs/copy.js @@ -1,5 +1,28 @@ +import { cp, access } from 'node:fs/promises'; +import { constants } from 'node:fs'; +import path from 'path'; + +const srcFolder = path.join('src', 'fs', 'files'); +const destFolder = path.join('src', 'fs', 'files_copy'); + const copy = async () => { - // Write your code here + try { + // Ստուգել, որ աղբյուրային ֆոլդերը գոյություն ունի + await access(srcFolder, constants.F_OK); + + // Ստուգել, որ նպատակային ֆոլդը դեռ գոյություն չունի + await access(destFolder, constants.F_OK); + + // Եթե արդեն գոյություն ունի, գցել սխալ + throw new Error('FS operation failed'); + } catch { + try { + // Կրկնօրինակել ամբողջ srcFolder → destFolder + await cp(srcFolder, destFolder, { recursive: true }); + } catch { + throw new Error('FS operation failed'); + } + } }; await copy();