commit 298115f0741752d341d35f9023dac7adbe58b1e7
parent 1416ffeaf40335e3cbe7549105234a7b607baee7
Author: Sivaldo <gxixtx@xsxixvxaxlxdxoxdxaxvxix.xcxoxm>
Date: Sat, 27 Jun 2026 16:02:17 -0300
refactor(install): unificar instalação de ferramentas via código-fonte
- Substitui as funções `install_suckless` e `install_nsxiv` por uma única
função `install_source_tools`.
- Altera a gestão dos repositórios Suckless: agora são clonados e
atualizados individualmente direto no diretório `$SRC_DIR`.
- Modifica a instalação do nsxiv: o código-fonte passa a ser mantido
no `$SRC_DIR` (em vez de usar o `/tmp`), permitindo atualizações
futuras via `git pull`.
- Atualiza o menu de ajuda e o `case`, agrupando os antigos comandos
`suckless` e `nsxiv` na nova opção `ferramentas`.
Diffstat:
| M | .local/bin/install | | | 66 | +++++++++++++++++++++++++++++++++--------------------------------- |
1 file changed, 33 insertions(+), 33 deletions(-)
diff --git a/.local/bin/install b/.local/bin/install
@@ -39,8 +39,7 @@ show_help() {
echo " permissoes - Configura grupos de usuário, doas e X11"
echo " servicos - Ativa serviços essenciais (ex: dbus)"
echo " dotfiles - Clona/Atualiza dotfiles e cria links"
- echo " suckless - Clona e compila as ferramentas suckless"
- echo " nsxiv - Clona e compila o nsxiv isoladamente"
+ echo " ferramentas - Clona e compila ferramentas do código-fonte (Suckless e nsxiv)"
echo " lf - Instala o gerenciador de arquivos lf via go"
echo " vim - Instala o gerenciador e os plugins do Vim"
echo " ffsetup - Clona e executa o ffsetup"
@@ -258,41 +257,44 @@ setup_dotfiles() {
echo "✅ Dotfiles configurados."
}
-install_suckless() {
- echo "Compilando ferramentas Suckless..."
+install_source_tools() {
+ echo "Compilando ferramentas (Suckless + nsxiv)..."
mkdir -p "$SRC_DIR"
- SUCKLESS_DIR="$SRC_DIR/suckless"
-
- if [ -d "$SUCKLESS_DIR" ]; then
- echo "Git: repositório suckless já existe, atualizando..."
- (cd "$SUCKLESS_DIR" && git pull) || echo "Falha ao atualizar repositório suckless."
- else
- git clone "$BASE_URL/suckless.git" "$SUCKLESS_DIR" || die "Falha ao clonar repositório suckless."
- fi
+ # 1. Ferramentas Suckless
for repo in $REPOS; do
- if [ ! -d "$SUCKLESS_DIR/$repo" ]; then
- echo "Diretório '$repo' não encontrado em $SUCKLESS_DIR, pulando."
- continue
+ REPO_DIR="$SRC_DIR/$repo"
+
+ if [ -d "$REPO_DIR" ]; then
+ echo "Git: repositório $repo já existe, atualizando..."
+ (cd "$REPO_DIR" && git pull) || echo "Falha ao atualizar $repo."
+ else
+ echo "Clonando $repo..."
+ git clone "$BASE_URL/$repo.git" "$REPO_DIR" || echo "Falha ao clonar $repo."
fi
- echo "Compilando $repo..."
- (cd "$SUCKLESS_DIR/$repo" && doas make clean install) || echo "Falha ao compilar '$repo'."
- done
- echo "Suckless finalizado."
-}
-install_nsxiv() {
- echo "Clonando e compilando nsxiv..."
- NSXIV_TMP="/tmp/nsxiv_build"
- rm -rf "$NSXIV_TMP"
+ if [ -d "$REPO_DIR" ]; then
+ echo "Compilando $repo..."
+ (cd "$REPO_DIR" && doas make clean install) || echo "Falha ao compilar '$repo'."
+ fi
+ done
- if git clone "https://codeberg.org/nsxiv/nsxiv" "$NSXIV_TMP"; then
- (cd "$NSXIV_TMP" && doas make clean install) || echo "Falha ao compilar 'nsxiv'."
- rm -rf "$NSXIV_TMP"
- echo "'nsxiv' instalado."
+ # 2. nsxiv (do repositório oficial)
+ NSXIV_DIR="$SRC_DIR/nsxiv"
+ if [ -d "$NSXIV_DIR" ]; then
+ echo "Git: repositório nsxiv já existe, atualizando..."
+ (cd "$NSXIV_DIR" && git pull) || echo "Falha ao atualizar nsxiv."
else
- echo "Falha ao clonar o repositório do nsxiv."
+ echo "Clonando nsxiv..."
+ git clone "https://codeberg.org/nsxiv/nsxiv.git" "$NSXIV_DIR" || echo "Falha ao clonar nsxiv."
fi
+
+ if [ -d "$NSXIV_DIR" ]; then
+ echo "Compilando nsxiv..."
+ (cd "$NSXIV_DIR" && doas make clean install) || echo "Falha ao compilar 'nsxiv'."
+ fi
+
+ echo "Ferramentas compiladas com sucesso."
}
install_lf() {
@@ -338,8 +340,7 @@ run_full_installation() {
setup_permissions
setup_services
setup_dotfiles
- install_suckless
- install_nsxiv
+ install_source_tools
install_lf
setup_vim
setup_ffsetup
@@ -383,8 +384,7 @@ case "$1" in
permissoes) setup_permissions ;;
servicos) setup_services ;;
dotfiles) setup_dotfiles ;;
- suckless) install_suckless ;;
- nsxiv) install_nsxiv ;;
+ ferramentas) install_source_tools ;;
lf) install_lf ;;
vim) setup_vim ;;
ffsetup) setup_ffsetup ;;