diff --git a/.github/workflows/security.yml b/.github/workflows/security.yml index 8d69815..be5a19e 100644 --- a/.github/workflows/security.yml +++ b/.github/workflows/security.yml @@ -1,4 +1,8 @@ -name: Security Scan +name: Security Scan + +env: + FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true + ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true on: push: @@ -9,3 +13,5 @@ on: jobs: gitleaks: uses: juninmd/base-actions/.github/workflows/reusable-security-scan.yml@main + secrets: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index d3fcf1f..3cb31d2 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -1,4 +1,8 @@ -name: Validate +name: Validate + +env: + FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true + ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true on: pull_request: @@ -12,3 +16,5 @@ concurrency: jobs: check: uses: juninmd/base-actions/.github/workflows/reusable-validate.yml@main + secrets: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/programas/biome/setup.sh b/programas/biome/setup.sh new file mode 100755 index 0000000..d6100b6 --- /dev/null +++ b/programas/biome/setup.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +source "$(dirname "$0")/../common/common.sh" +echo -e "${c}Installing biome...${r}" +curl -L https://github.com/biomejs/biome/releases/download/v1.9.4/biome-linux-x64 -o biome +chmod +x biome +sudo mv biome /usr/local/bin/biome +echo -e "${c}biome setup complete.${r}" diff --git a/programas/broot/setup.sh b/programas/broot/setup.sh new file mode 100755 index 0000000..1251dd3 --- /dev/null +++ b/programas/broot/setup.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +source "$(dirname "$0")/../common/common.sh" +source "$(dirname "$0")/../common/cargo_helper.sh" +echo -e "${c}Installing broot...${r}" +install_cargo_crate broot broot +echo -e "${c}broot setup complete.${r}" diff --git a/programas/cli-tools/setup.sh b/programas/cli-tools/setup.sh index 59c32b2..83ac777 100755 --- a/programas/cli-tools/setup.sh +++ b/programas/cli-tools/setup.sh @@ -332,26 +332,6 @@ install_cargo_crate serpl # --- MORE 2026 APPS --- -# Ruff (Fast Python Linter/Formatter) -if ! command -v ruff &> /dev/null; then - echo -e "${c}Installing ruff...${r}" - pip3 install ruff --break-system-packages 2>/dev/null || pip3 install ruff -else - echo -e "${c}ruff already installed.${r}" -fi - -# Biome (Fast JS/TS Toolchain) -if ! command -v biome &> /dev/null; then - echo -e "${c}Installing biome...${r}" - curl -L https://github.com/biomejs/biome/releases/download/v1.9.4/biome-linux-x64 -o biome - chmod +x biome - sudo mv biome /usr/local/bin/biome -else - echo -e "${c}biome already installed.${r}" -fi - -# Helix (Modern Editor) -install_cargo_crate helix-term hx # Websocat (Netcat for WebSockets) install_cargo_crate websocat @@ -582,9 +562,6 @@ install_cargo_crate monolith # Bottom (System Monitor) install_cargo_crate bottom btm -# Nushell (Modern Shell) -install_cargo_crate nu - # Eget (Easy Binary Downloader) if ! command -v eget &> /dev/null; then echo -e "${c}Installing eget...${r}" @@ -605,14 +582,6 @@ install_go_package github.com/noahgorstein/jqp@latest jqp # --- THE FUTURE IS NOW (New 2026 Apps) --- -# Deno (Modern JS/TS Runtime) -if ! command -v deno &> /dev/null; then - echo -e "${c}Installing Deno...${r}" - curl -fsSL https://deno.land/x/install/install.sh | sh -else - echo -e "${c}deno already installed.${r}" -fi - # Nap (Snippets Manager) install_go_package github.com/charmbracelet/nap@latest nap diff --git a/programas/cline/setup.sh b/programas/cline/setup.sh new file mode 100755 index 0000000..7b3d2fe --- /dev/null +++ b/programas/cline/setup.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +source "$(dirname "$0")/../common/common.sh" +echo -e "${c}Installing cline...${r}" +sudo npm install -g @cline/cli +echo -e "${c}cline setup complete.${r}" diff --git a/programas/deno/setup.sh b/programas/deno/setup.sh new file mode 100755 index 0000000..e7c3be3 --- /dev/null +++ b/programas/deno/setup.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +source "$(dirname "$0")/../common/common.sh" +echo -e "${c}Installing deno...${r}" +curl -fsSL https://deno.land/x/install/install.sh | /usr/bin/env sh +echo -e "${c}deno setup complete.${r}" diff --git a/programas/distrobox/setup.sh b/programas/distrobox/setup.sh new file mode 100755 index 0000000..5e30817 --- /dev/null +++ b/programas/distrobox/setup.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +source "$(dirname "$0")/../common/common.sh" +echo -e "${c}Installing distrobox...${r}" +curl -s https://raw.githubusercontent.com/89luca89/distrobox/main/install | sudo /usr/bin/env sh +echo -e "${c}distrobox setup complete.${r}" diff --git a/programas/helix/setup.sh b/programas/helix/setup.sh new file mode 100755 index 0000000..6e2aba0 --- /dev/null +++ b/programas/helix/setup.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +source "$(dirname "$0")/../common/common.sh" +source "$(dirname "$0")/../common/cargo_helper.sh" +echo -e "${c}Installing helix...${r}" +install_cargo_crate helix-term hx +echo -e "${c}helix setup complete.${r}" diff --git a/programas/hyperfine/setup.sh b/programas/hyperfine/setup.sh new file mode 100755 index 0000000..4784475 --- /dev/null +++ b/programas/hyperfine/setup.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +source "$(dirname "$0")/../common/common.sh" +source "$(dirname "$0")/../common/cargo_helper.sh" +echo -e "${c}Installing hyperfine...${r}" +install_cargo_crate hyperfine hyperfine +echo -e "${c}hyperfine setup complete.${r}" diff --git a/programas/just/setup.sh b/programas/just/setup.sh new file mode 100755 index 0000000..9f29327 --- /dev/null +++ b/programas/just/setup.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +source "$(dirname "$0")/../common/common.sh" +source "$(dirname "$0")/../common/cargo_helper.sh" +echo -e "${c}Installing just...${r}" +install_cargo_crate just just +echo -e "${c}just setup complete.${r}" diff --git a/programas/llm/setup.sh b/programas/llm/setup.sh new file mode 100755 index 0000000..59f0c58 --- /dev/null +++ b/programas/llm/setup.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +source "$(dirname "$0")/../common/common.sh" +echo -e "${c}Installing llm...${r}" +pip3 install llm --break-system-packages 2>/dev/null || pip3 install llm +echo -e "${c}llm setup complete.${r}" diff --git a/programas/mods/setup.sh b/programas/mods/setup.sh new file mode 100755 index 0000000..852f0f3 --- /dev/null +++ b/programas/mods/setup.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +source "$(dirname "$0")/../common/common.sh" +source "$(dirname "$0")/../common/cargo_helper.sh" +echo -e "${c}Installing mods...${r}" +install_go_package github.com/charmbracelet/mods@latest mods +echo -e "${c}mods setup complete.${r}" diff --git a/programas/moon/setup.sh b/programas/moon/setup.sh new file mode 100755 index 0000000..7cc1a27 --- /dev/null +++ b/programas/moon/setup.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +source "$(dirname "$0")/../common/common.sh" +echo -e "${c}Installing moon...${r}" +curl -fsSL https://moonrepo.dev/install/moon.sh | /usr/bin/env sh +echo -e "${c}moon setup complete.${r}" diff --git a/programas/nushell/setup.sh b/programas/nushell/setup.sh new file mode 100755 index 0000000..e6f6964 --- /dev/null +++ b/programas/nushell/setup.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +source "$(dirname "$0")/../common/common.sh" +source "$(dirname "$0")/../common/cargo_helper.sh" +echo -e "${c}Installing nushell...${r}" +install_cargo_crate nu nu +echo -e "${c}nushell setup complete.${r}" diff --git a/programas/opentofu/setup.sh b/programas/opentofu/setup.sh new file mode 100755 index 0000000..4d57eb5 --- /dev/null +++ b/programas/opentofu/setup.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +source "$(dirname "$0")/../common/common.sh" +echo -e "${c}Installing opentofu...${r}" +curl --proto =https --tlsv1.2 -fsSL https://get.opentofu.org/install-opentofu.sh -o install-opentofu.sh +chmod +x install-opentofu.sh +./install-opentofu.sh --install-method standalone +rm install-opentofu.sh +echo -e "${c}opentofu setup complete.${r}" diff --git a/programas/pkgx/setup.sh b/programas/pkgx/setup.sh new file mode 100755 index 0000000..7b6176b --- /dev/null +++ b/programas/pkgx/setup.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +source "$(dirname "$0")/../common/common.sh" +echo -e "${c}Installing pkgx...${r}" +curl -fsS https://pkgx.sh | /usr/bin/env sh +echo -e "${c}pkgx setup complete.${r}" diff --git a/programas/procs/setup.sh b/programas/procs/setup.sh new file mode 100755 index 0000000..b0e918e --- /dev/null +++ b/programas/procs/setup.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +source "$(dirname "$0")/../common/common.sh" +source "$(dirname "$0")/../common/cargo_helper.sh" +echo -e "${c}Installing procs...${r}" +install_cargo_crate procs procs +echo -e "${c}procs setup complete.${r}" diff --git a/programas/pueue/setup.sh b/programas/pueue/setup.sh new file mode 100755 index 0000000..6d6ed64 --- /dev/null +++ b/programas/pueue/setup.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +source "$(dirname "$0")/../common/common.sh" +source "$(dirname "$0")/../common/cargo_helper.sh" +echo -e "${c}Installing pueue...${r}" +install_cargo_crate pueue pueue +echo -e "${c}pueue setup complete.${r}" diff --git a/programas/ruff/setup.sh b/programas/ruff/setup.sh new file mode 100755 index 0000000..f14030f --- /dev/null +++ b/programas/ruff/setup.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +source "$(dirname "$0")/../common/common.sh" +echo -e "${c}Installing ruff...${r}" +pip3 install ruff --break-system-packages 2>/dev/null || pip3 install ruff +echo -e "${c}ruff setup complete.${r}" diff --git a/programas/tealdeer/setup.sh b/programas/tealdeer/setup.sh new file mode 100755 index 0000000..833b4c5 --- /dev/null +++ b/programas/tealdeer/setup.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +source "$(dirname "$0")/../common/common.sh" +source "$(dirname "$0")/../common/cargo_helper.sh" +echo -e "${c}Installing tealdeer...${r}" +install_cargo_crate tealdeer tldr +echo -e "${c}tealdeer setup complete.${r}" diff --git a/setup-2026.sh b/setup-2026.sh index 131cc54..1f92f2f 100755 --- a/setup-2026.sh +++ b/setup-2026.sh @@ -195,13 +195,13 @@ case "$PROFILE" in DEFAULT_MODULES=(cli-tools zsh starship vscode) ;; dev) - DEFAULT_MODULES=(cli-tools zsh starship bun mysql lazygit lazydocker vscode zellij yazi neovim docker uv mise atuin devbox dagger) + DEFAULT_MODULES=(cli-tools zsh starship bun mysql lazygit lazydocker vscode zellij yazi neovim docker uv mise atuin devbox dagger deno biome ruff broot procs pueue) ;; full) - DEFAULT_MODULES=(cli-tools zsh starship bun mysql lazygit lazydocker vscode zellij yazi firefox slack android neovim docker brave discord ghostty obsidian uv zen-browser bruno wezterm dbeaver mise atuin devbox dagger jo k6 television code2prompt jan chatbox inshellisense podman devpod daytona) + DEFAULT_MODULES=(cli-tools zsh starship bun mysql lazygit lazydocker vscode zellij yazi firefox slack android neovim docker brave discord ghostty obsidian uv zen-browser bruno wezterm dbeaver mise atuin devbox dagger jo k6 television code2prompt jan chatbox inshellisense podman devpod daytona just helix nushell distrobox moon pkgx tealdeer hyperfine opentofu deno biome ruff broot procs pueue) ;; ai-dev) - DEFAULT_MODULES=(cli-tools zsh starship bun cursor zed warp lazygit lazydocker zellij yazi neovim docker uv ollama claude-code zen-browser lmstudio bruno wezterm dbeaver windsurf k9s posting superfile aider plandex open-interpreter duckdb harlequin fastfetch lazysql gitingest repomix shell-gpt atac dsq t-rec cbonsai pipes-sh mprocs mise atuin devbox dagger k8sgpt fabric aichat tgpt jo k6 television code2prompt jan chatbox inshellisense podman devpod daytona) + DEFAULT_MODULES=(cli-tools zsh starship bun cursor zed warp lazygit lazydocker zellij yazi neovim docker uv ollama claude-code zen-browser lmstudio bruno wezterm dbeaver windsurf k9s posting superfile aider plandex open-interpreter duckdb harlequin fastfetch lazysql gitingest repomix shell-gpt atac dsq t-rec cbonsai pipes-sh mprocs mise atuin devbox dagger k8sgpt fabric aichat tgpt jo k6 television code2prompt jan chatbox inshellisense podman devpod daytona mods llm cline deno biome ruff broot procs pueue) ;; *) log "Perfil inválido: $PROFILE" @@ -253,6 +253,42 @@ declare -A MOD_DESC=( ["posting"]="📮 Posting (HTTP Client TUI)" ["superfile"]="📁 Superfile (Terminal File Manager)" + ["cline"]="🤖 Cline (Autonomous coding agent)" + + ["deno"]="🦕 Deno (Modern JS/TS runtime)" + + ["biome"]="⚡ Biome (Fast JS/TS Toolchain)" + + ["ruff"]="🐍 Ruff (Fast Python Linter/Formatter)" + + ["nushell"]="🐚 Nushell (Modern Shell)" + + ["helix"]="🧬 Helix (Modern Editor)" + + ["opentofu"]="🏗️ OpenTofu (Infrastructure as Code)" + + ["distrobox"]="📦 Distrobox (Use any Linux distribution inside your terminal)" + + ["moon"]="🌙 Moon (Task runner and monorepo management tool)" + + ["pkgx"]="📦 pkgx (Blazing fast package manager)" + + ["tealdeer"]="🦌 Tealdeer (Fast tldr client)" + + ["hyperfine"]="⏱️ Hyperfine (Command-line benchmarking tool)" + + ["just"]="🤖 Just (A handy way to save and run project-specific commands)" + + ["mods"]="💬 Mods (AI on the command line)" + + ["llm"]="🧠 LLM (Access large language models from the command-line)" + + ["broot"]="🌳 Broot (A new way to see and navigate directory trees)" + + ["pueue"]="⏳ Pueue (Manage your long-running shell commands)" + + ["procs"]="🚀 Procs (A modern replacement for ps)" + ["common"]="⚙️ Scripts compartilhados e helpers" ["plandex"]="🤖 Plandex (AI coding engine)" ["aider"]="🤖 Aider-chat (AI pair programming)"