Pular para o conteúdo principal
Versão: 0.1.0-alpha.3

Filter e File

Componentes de busca e seleção de arquivos.

Filter

Filtrar fuzzy através de uma lista de opções.

Uso Básico

# From arguments
invowk tui filter "apple" "banana" "cherry" "date"

# From stdin
ls | invowk tui filter

Opções

OpçãoDescrição
--titlePrompt do filtro
--placeholderPlaceholder de busca
--widthLargura do filtro
--heightAltura da lista
--limitMáximo de seleções (padrão: 1)
--no-limitSeleções ilimitadas
--reverseExibir lista em ordem reversa
--fuzzyHabilitar fuzzy matching

Exemplos

# Filter files
FILE=$(ls | invowk tui filter --title "Select file")

# Multi-select filter
FILES=$(ls *.go | invowk tui filter --no-limit --title "Select Go files")

# With placeholder
ITEM=$(invowk tui filter --placeholder "Type to search..." opt1 opt2 opt3)

Exemplos do Mundo Real

Selecionar Branch Git

BRANCH=$(git branch --list | tr -d '* ' | invowk tui filter --title "Checkout branch")
git checkout "$BRANCH"

Selecionar Container Docker

CONTAINER=$(docker ps --format "{{.Names}}" | invowk tui filter --title "Select container")
docker logs -f "$CONTAINER"

Selecionar Processo para Matar

PID=$(ps aux | invowk tui filter --title "Select process" | awk '{print $2}')
if [ -n "$PID" ]; then
kill "$PID"
fi

Filtrar Comandos

CMD=$(invowk cmd 2>/dev/null | grep "^  " | invowk tui filter --title "Run command")
# Extract command name and run it

File

Seletor de arquivos e diretórios com navegação.

Uso Básico

# Pick any file from current directory
invowk tui file

# Start in specific directory
invowk tui file /home/user/documents

Opções

OpçãoDescrição
--titleTítulo exibido acima do seletor
--descriptionDescrição abaixo do título
--directoryMostrar apenas diretórios
--fileMostrar apenas arquivos
--hiddenMostrar arquivos ocultos
--allowedFiltrar por extensões
--heightAltura do seletor

Exemplos

# Pick a file
FILE=$(invowk tui file)
echo "Selected: $FILE"

# Only directories
DIR=$(invowk tui file --directory)

# Show hidden files
FILE=$(invowk tui file --hidden)

# Filter by extension
FILE=$(invowk tui file --allowed ".go,.md,.txt")

# Multiple extensions
CONFIG=$(invowk tui file --allowed ".yaml,.yml,.json,.toml")

No seletor de arquivos:

  • Cima/Baixo: Navegar
  • Enter: Selecionar arquivo ou entrar no diretório
  • Backspace: Ir para diretório pai
  • Esc/Ctrl+C: Cancelar

Exemplos do Mundo Real

Selecionar Arquivo de Configuração

CONFIG=$(invowk tui file --allowed ".yaml,.yml,.json" /etc/myapp)
echo "Using config: $CONFIG"
./myapp --config "$CONFIG"

Selecionar Diretório de Projeto

PROJECT=$(invowk tui file --directory ~/projects)
cd "$PROJECT"
code .

Selecionar Script para Executar

SCRIPT=$(invowk tui file --allowed ".sh,.bash" ./scripts)
if [ -n "$SCRIPT" ]; then
chmod +x "$SCRIPT"
"$SCRIPT"
fi

Selecionar Arquivo de Log

LOG=$(invowk tui file --allowed ".log" /var/log)
less "$LOG"

Em Scripts

{
name: "edit-config"
description: "Edit a configuration file"
implementations: [{
script: """
CONFIG=$(invowk tui file --allowed ".yaml,.yml,.json,.toml" ./config)

if [ -z "$CONFIG" ]; then
echo "No file selected."
exit 0
fi

# Open in default editor
${EDITOR:-vim} "$CONFIG"
"""
runtimes: [{name: "native"}]
platforms: [{name: "linux"}, {name: "macos"}]
}]
}

Padrões Combinados

Buscar e Editar

# Find file by content, then pick from results
FILE=$(grep -l "TODO" *.go 2>/dev/null | invowk tui filter --title "Select file with TODOs")
if [ -n "$FILE" ]; then
vim "$FILE"
fi

Diretório e Depois Arquivo

# First pick directory
DIR=$(invowk tui file --directory ~/projects)

# Then pick file in that directory
FILE=$(invowk tui file "$DIR" --allowed ".go")

echo "Selected: $FILE"

Próximos Passos