Skip to content

Latest commit

 

History

History
139 lines (84 loc) · 3.87 KB

File metadata and controls

139 lines (84 loc) · 3.87 KB

Описание

Утилита, выполняющая функционал ls -l

Зависимости для запуска

  • libc >= 6

Зависимости для сборки

  • cmake >= 3.15

  • gcc >= 11.4.0

Дополнительные зависимости

  • ls == 8.32

  • doxygen >= 1.9.1

  • valgrind >= 3.18.1

  • meld >= 3.20.4

  • /usr/bin/time

Сборка

Для сборки выполните:

mkdir build && \
cd    build && \
cmake ..    && \
make

Установка

Для установки утилиты выполните:

sudo make install

Утилита будет установлена в ${CMAKE_PREFIX}/bin

Использование

  • Список поддерживаемых опций:

    • -c | --color-mode - включает цветной режим вывода имен файлов.

    • -C | --colorless-mode - включает бесцветный режим вывода имен файлов.

    • -s | --safe-mode - включает безопасный режим вывода имен файлов. Подробнее: jlsMakeStringSafe()

    • -S | --unsafe-mode - включает небезопасный режим вывода имен файлов.

    • -t | --test-mode - включает тестовый режим работы. Тестовый режим работы нужен для полного соответствия вывода jls и ls

  • Код возврата при успешном выполнении: 0

  • Код возврата при возникновении ошибки: 1

Пример использования:

# jls [OPTIONS] FILES_LIST
jls /
jls --safe-mode /usr/bin
jls -t /compare/with/ls/test
jls /usr/bin /home nonexistent.file /usr/bin/jls

Удаление

Для удаления утилиты выполните:

sudo make uninstall

Документация

Для генерации документации по коду выполните:

make doc

Откройте documentation.html в любом браузере

Необходимо наличие пакета doxygen

Тестирование

Для создания тестовой среды выполните:

sudo ../scripts/makeTestEnv

Наличие root прав необходимо для создания некоторых тестовых сценариев.

Для запуска тестирования утилиты выполните:

make tests

Для тестов на утечки памяти необходимо наличие пакета valgrind

Также можно вызвать скрипт тестирования самостоятельно:

./scripts/makeTests ./jls

Если необходимо выполнить только определенный/е тесты, их названия можно передать в качестве аргументов:

./scripts/makeTests ./jls UsrBinTerminalCompare

Если в системе установлен пакет meld и один или несколько Compare тестов провалились, откроется окно meld с выводом ls и jls

BUGS

  • Вывод ls -l и jls не совпадает символ в символ. Разница в выводе \033[K.
  • Выравнивание владельца и группы работает некорректно, если владелец или группа файла не имеет строкового вида. Обнаружено под ls версии 9.1 на Debian 12

TODO

  • Сделать вывод \033[K идентичным ls.