Вернуться назад

macchina

Страничка на GitHub: github.com/Macchina-CLI/macchina

Проверим, есть ли у нас Rust и Cargo:

rustc --version
cargo --version

Пробуем собрать программу в текущей папке:

cargo build --release

Без аргумента --release Cargo по умолчанию собирает debug-сборку.

Если не произошло никаких ошибок, то бинарник должен лежать в ./target/release/macchina.

Если всё оk – можно запустить программу:

./target/release/macchina

Установка

Или можно установить в систему:

cargo install --path .

Здесь аргумент --path . указывает на каталог, в котором лежит Cargo.toml.

cargo install --path . создаёт временный каталог, копирует туда исходники проекта, собирает проект заново (всегда в --release, со своим профилем), кладёт бинарник в ~/.cargo/bin/ и удаляет временные файлы. Папка target моего проекта вообще не используется.

Cargo установил бинарник в ~/.cargo/bin/macchina. Если директории $HOME/.cargo/bin ещё нет в нашем PATH, то нужно её добавить:

export PATH="$HOME/.cargo/bin:$PATH"

Теперь система видит macchina и можно запускать его так:

macchina

По умолчанию при установке в систему темы и ascii-логотипы не копируются из папки с исходниками в ~/.config/macchina/. А также не создаётся конфиг ~/.config/macchina/macchina.toml. Поэтому сделаем всё это вручную. А также установим man-странички:

cp -r ~/Downloads/macchina/contrib/themes ~/.config/macchina/
cp -r ~/Downloads/macchina/contrib/ascii ~/.config/macchina/
touch ~/.config/macchina/macchina.toml

mkdir -p ~/.local/share/man/man1 ~/.local/share/man/man7
cp ~/Downloads/macchina/doc/macchina.1 ~/.local/share/man/man1/
cp ~/Downloads/macchina/doc/macchina.7 ~/.local/share/man/man7/

Теперь нам нужно в конфиге указать тему, которую мы хотим использовать:

# ~/.config/macchina/macchina.toml

theme = "Helium"

А в теме отключаем скрытие ascii-лого и указываем путь к нему:

# ~/.config/macchina/themes/Helium.toml
...

hide_ascii = false

...

[custom_ascii]
path = "~/.config/macchina/ascii/archlinux.ascii"

...

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

Проверяем, видит ли man наши странички:

man 1 macchina
  # Нет справочной страницы для macchina в разделе 1

У меня не видит.

Проверим, какие пути видит наша система:

manpath
  # /usr/local/man:/usr/local/share/man:/usr/share/man:/usr/lib/jvm/default/man
echo $MANPATH
   # тут пусто – ничего не выводится

manpath сначала проверяет файл /etc/man_db.conf на наличие путей, а затем проверяет переменную среды $MANPATH. И если эта переменная содержит пути, то manpath тоже добавляет их к списку путей, которые нужно проверить на наличие man-страничек.

export MANPATH="$HOME/.local/share/man:$MANPATH"

manpath
  # manpath: предупреждение: найдена переменная среды $MANPATH, добавляется в конец /etc/man_db.conf
  # /home/mark/.local/share/man:/usr/local/man:/usr/local/share/man:/usr/share/man:/usr/lib/jvm/default/man

Теперь система видит папку ~/.local/share/man и man-странички оттуда доступны для man-db:

man 1 macchina    # выводит первый раздел
man 7 macchina    # выводит седьмой раздел

Удаление

rm ~/.cargo/macchina       # Удаляем бинарник
rm -r ~/.config/macchina   # Удаляем конфиг, темы и лого
# Удаляем документацию:
rm ~/.local/share/man/man1/macchina.1
rm ~/.local/share/man/man7/macchina.7

Итого

# Собираем проект
cargo build --release

# Устанавливаем (пересобрав):
cargo install --path .

# Копируем темы и asci-лого:
cp -r ~/Downloads/macchina/contrib/themes ~/.config/macchina/
cp -r ~/Downloads/macchina/contrib/ascii ~/.config/macchina/
# Создаём конфиг
touch ~/.config/macchina/macchina.toml

# Создаём папки для документации, если их ещё нет:
mkdir -p ~/.local/share/man/man1 ~/.local/share/man/man7
# И копируем туда man-странички:
cp ~/Downloads/macchina/doc/macchina.1 ~/.local/share/man/man1/
cp ~/Downloads/macchina/doc/macchina.7 ~/.local/share/man/man7/

# Удаляем всё, что поставили:
rm ~/.cargo/macchina
rm -r ~/.config/macchina
rm ~/.local/share/man/man1/macchina.1
rm ~/.local/share/man/man7/macchina.7