Когда ты последний раз обновлял nuclei, impacket или любимую утилиту на go?
Я - вчера, а до этого ~около года назад
Из этого выходит, что я почти год пользовался устаревшими версиями, всякий раз мирясь со старыми багами и неудобными решениями, ибо было лень вручную обновлять каждый из бинарей
Спрашивая о готовых решениях проблемы обновлений в чатах - находил лишь сборники костылей.
Поресерчив, нашёл кроссплатформенную утилиту (Linux, Windows, MacOS) topgrade, что:
1. запускает пакетные менеджеры за меня
2. сама обновляет локальные github репозитории
Ставь утилиту через cargo, brew, pip, whatever else, либо скачивай из релизов
cargo install topgrade
Как настроить обновление github репозиториев:
1. переносишь все склонированные репы в одну директорию (ex.
~/github)2. ссылаешься на все репы внутри папки через конфиг ~/.config/topgrade.toml
[git]
repos = [
"~/github/*/",
]
Перед обновлением, рекомендую поставить gup для обновления go,
cargo-update для rust и uv для python бинарей (заменит тебе pipx, pyenv, poetry, etc.)
go install github.com/nao1215/gup@latest
cargo install cargo-update
curl -LsSf https://astral.sh/uv/install.sh | sh
Теперь
# dry run чтобы посмотреть список обновляемого
topgrade -n
# запустит обновление
topgrade
Вижу лишь одну проблему этого решения - нет возможности собрать все changelogs и понять "какие новые фичи появились".
Если у тебя есть идеи - пиши в комментарии, сделаем обёртку ⚡
#tool #machineops