root@wguilherme:~$ cat ~/projects/makez/README.md

MakeZ

#make #bash #shell

Activev1.0.0

Coleção de Makefiles portáteis para agilizar seu workflow de desenvolvimento. Execute tarefas comuns de qualquer diretório mantendo seus Makefiles de projeto limpos e focados.

A ideia é você expandir com seus próprios scripts e módulos. O projeto é uma caixa de ferramentas modular, pronta para receber customizações. Os módulos incluídos servem como exemplos e ponto de partida.

Features

  • Comandos Globais: Execute comandos de qualquer lugar do sistema
  • Estrutura Modular: Organizado em módulos .mk por categoria
  • Não-invasivo: Funciona junto com seus Makefiles de projeto existentes
  • Extensível: Fácil de adicionar seus próprios comandos customizados
  • Versionado: Mantenha seus comandos sincronizados entre máquinas

Install

bash
# Clone o repositório
git clone https://github.com/wguilherme/makez.git ~/makez

# Adicione o alias ao seu shell
echo "alias makez='make -f ~/makez/Makefile'" >> ~/.zshrc
source ~/.zshrc

# Teste a instalação
makez help

Criando seu primeiro módulo

Crie makefiles/meu-modulo.mk:

makefile
.PHONY: greet greet-script

greet: ## Diz olá (inline)
	@echo "Hello from MakeZ!"

greet-script: ## Diz olá (usando script)
	@$(SCRIPTS_DIR)greet.sh

Crie scripts/greet.sh:

bash
#!/bin/bash
echo "Hello from MakeZ script!"

Pronto! O Makefile principal inclui automaticamente todos os .mk da pasta makefiles/. Use de qualquer lugar:

bash
makez greet
makez greet-script

Convenção de nomenclatura

Use o padrão modulo-comando para agrupar comandos relacionados no help:

makefile
# makefiles/docker.mk
docker-ps: ## Lista containers
docker-clean: ## Remove containers parados
docker-prune: ## Limpeza completa

Como makez help ordena alfabeticamente, comandos com prefixo ficam agrupados.

🔌 Plugins

Instale módulos de comandos de repositórios remotos sem comitá-los ao seu projeto:

bash
# Instalar plugin
makez plugin-install URL=https://github.com/user/makez-plugin.git

# Listar plugins
makez plugin-list

# Atualizar plugin
makez plugin-update NAME=plugin-name

# Remover plugin
makez plugin-remove NAME=plugin-name

Criar seu próprio plugin:

Crie um repositório git com arquivo plugin.mk:

makefile
.PHONY: myplugin-hello

myplugin-hello: ## Say hello from plugin
    @echo "Hello from my plugin!"

Plugins são carregados automaticamente e aparecem no makez help. Perfeito para compartilhar comandos entre times.

Módulos incluídos

  • example.mk: Comandos de exemplo (hello, hello-script)
  • docker.mk: Utilitários Docker (docker-ps, docker-clean, docker-prune, docker-stats, docker-stop-all)

Esses módulos servem como ponto de partida. Delete ou modifique conforme sua necessidade.