48

Проект The Fuck

Было очень любопытно, что же скрывается под таким неговорящим названием. Причём явно что-то популярное и полезное, потому что 77.7k звёзд на гитхабе. Оказалось, что это утилита для исправления опечаток или неполностью набранных команд.

Показываю сразу на примерах. Допустим, вы устанавливаете софт через пакетный менеджер и забыли написать sudo:

# apt install mc

Появляется ошибка:

E: Could not open lock file /var/lib/dpkg/lock -

open (13: Permission denied)

Вы расстраиваетесь и материтесь, потому что нервы у айтишников никудышные. Сидячая работа, стрессы, кофе и т.д. Пишите в консоль с досады:

# fuck

TheFuck понимает ошибку и предлагает выполнить команду с учётом исправления.

# sudo apt-get install mc

TheFuck распознаёт популярные ошибки, опечатки, не только в командах, но и в их ключах, параметрах. Например:

# git push

fatal: The current branch master has no upstream branch.

# fuck

# git push --set-upstream origin master

То есть запустили гит пуш, забыли обязательные параметры, fuck добавил дефолтные параметры для этой команды.

Ещё больше примеров можно в репе посмотреть. Все исправления описаны правилами, которые лежат в соответствующей директории. Правила написаны на python, можете изменить готовые или написать свои. Например, есть правило для chmod. Если в консоли запускается скрипт через ./ и в выводе появляется сообщение permission denied, что типично, если у файла нет прав на исполнение, fuck исправляет это, добавяля права через chmod +x.

Больше всего правил написано для git. Судя по всему этот инструмент писался для разработчиков и немного девопсов, поэтому так много звёзд на гитхаб.

Если будете пробовать в Debian, утилита живёт в стандартных репах:

# apt install thefuck

Автор пакет заботливо отключил все правила для sudo. На всякий случай. По умолчанию бинарники ставятся в $HOME/.local/bin, поэтому надо добавить этот путь в PATH:

# export PATH="$PATH:$HOME/.local/bin"

Мы в телеграме!
Книги по программированию бесплатно!

Life-Hack [Жизнь-Взлом]/Хакинг

183 поста2.3K подписчика

Добавить пост

Правила сообщества

Просьба уважать друг друга.

Подробнее