/nodejs-caesar-cipher-cli-tool

RSSchool Node.js course. Task: https://github.com/rolling-scopes-school/nodejs-course-template/blob/master/TASKS.md#task-1-caesar-cipher-cli-tool

Primary LanguageJavaScript

Caesar-Cipher CLI tool


Ссылка на описание таска.

Особенности:

  • Основной код находится в папке caesar-cipher-tool, в ветке master (разработка велась в ветке develop).
  • Для работы с ключами командной строки использовался minimist.
  • Варианты ключей:
    • Входные данные могут подаваться из файла (пример файл input.txtв корне), с ключом -i или --input со значением пути к файлу в строковом формате, если данные ключи с их значениями не указаны - то ввод через консоль.
    • Выходные данные могут сохраняться в файл (пример файл output.txtв корне), с ключом -o или --output со значением пути к файлу в строковом формате, если данные ключи с их значениями не указаны - то вывод в консоль.
    • Метод обработка полученной информации задается ключом -a или --action со строковым значением encode (шифрование) или decode (расшифровка). При отсутствии данного ключа и/или его значения будет выведено соответствующее сообщение в консоль и выполнение программы прекратится.
    • Шаг кодирования информации задается ключом -s или --shift со значением в числовом в виде положительного числа. При отсутствии данного ключа и/или его значения, либо его отрицательного значения, будет выведено соответствующее сообщение в консоль и выполнение программы прекратится.
  • Архитектура:
    • Функционал шифрования/дешифрования находится в файле src/TransformCaesarCipher.js.
    • Функционал обработки ошибок и создания потоков находится в файле src/AppTool.js.
    • Корневым (root) элементом программы является файл index.js в корне.

Примеры вариантов запуска

Предварительно нужно зайти в папку с проектом - cd caesar-cipher-tool, и уже находясь в папке запускать команды:

  • node index.js -a encode -s 7 -i input.txt -o output.txt - значит "Закодируй всю информация из файла input.txt с шагом шифрования 7 и сохрани в файл output.txt".
  • node index.js --action decode --shift 3 --input first.txt - значит "Декодируй информацию из файла first.txt с шагом 3 и покажи это в консоли".
  • node index.js -a encode -s 4 -o second.txt - значит "Возьми все что я напишу в консоли и зашифруй с шагом 4, результат сохрани в файл second.txt".