#chrome-os #nix #chromebook #homebrew #docker #linux-distro #cli-tool

crosup-nix

一个简单的 CLI 工具,用于快速在 Chromebook (ChromeOS) 或任何 Linux 发行版上设置您的开发环境

2 个版本

0.1.1 2023 年 6 月 18 日
0.1.0 2023 年 6 月 16 日

#2951命令行工具


3 个包中(2 个直接)使用

MIT 许可

19KB
474

Crosup 🐧 💻 🚀 ✨

release License: MIT

Crosup 是一个 CLI 工具,帮助您快速在新的 Chromebook (ChromeOS) 或任何 Linux 发行版上设置开发环境。它设计得简单易用。

✨ 特点

  • 兼容 ChromeOS、基于 Debian 的 Linux、OpenSUSE、Fedora、RedHat、CentOS、Alpine 等!
  • 检测您的操作系统并安装适当的工具
  • HCL/TOML 配置文件
  • 安装开发者工具,如 docker、nix、devbox、homebrew、floxFish、vscode、ble.sh、atuin、tig、fzf、httpie、kubectl、minikube、tilt、zellij、ripgrep、fd、exa、bat、glow、devenv 等!

🚚 安装

bash <(curl -sSL https://raw.githubusercontent.com/tsirysndr/crosup/master/install.sh)

从源代码编译

git clone https://github.com/tsirysndr/crosup.git
cd crosup
nix develop --experimental-features "nix-command flakes"
cargo install --path crates/cli

📦 支持的操作系统

  • ChromeOS (Debian 容器)
  • 基于 Debian 的 Linux
  • OpenSUSE
  • Fedora
  • RedHat
  • CentOS
  • Alpine
  • Arch
  • Gentoo
  • Slackware

🚀 使用方法

             ______                __  __
            / ____/________  _____/ / / /___
           / /   / ___/ __ \/ ___/ / / / __ \
          / /___/ /  / /_/ (__  ) /_/ / /_/ /
          \____/_/   \____/____/\____/ .___/
                                    /_/

Quickly install your development tools on your new Chromebook or any Linux distribution

USAGE:
    crosup [SUBCOMMAND]

OPTIONS:
    -h, --help       Print help information
    -V, --version    Print version information

SUBCOMMANDS:
    add        Add a new tool to the configuration file
    diff       Show the difference between the current configuration and the previous one
    help       Print this message or the help of the given subcommand(s)
    history    Show the change history of the configuration file
    init       Generate a default configuration file
    install    Install developer tools, e.g. docker, nix, devbox, homebrew, fish, vscode, ble.sh
                   ...
    search     Search for a package in the nixpkgs repository

🛠️ 最小配置

这是一个用于安装 vim 和 git 的最小配置文件

# Crosfile.toml
packages = [
  "vim",
  "git"
]

当您运行 crosup install 时,它将检测您的操作系统,并在您的系统上使用 nix home-manager 安装适当的工具。

📝 高级配置

Crosup 使用配置文件来确定要安装哪些工具。默认配置嵌入在二进制文件中,但您可以使用 crosup init 子命令生成默认配置文件(Crosfile.hcl),您可以使用 --toml 标志指定默认格式。

Crosfile.toml 的示例(crosup init --toml)用于基于 Debian 的系统

# Crosfile.toml
[brew.install.pkg.minikube]
preinstall = "sudo apt-get install -y qemu-system libvirt-clients libvirt-daemon-system"
postinstall = """
sudo sed -i 's/#user = \"root\"/user = \"root\"/g' /etc/libvirt/qemu.conf
            sudo sed -i 's/#group = \"root\"/group = \"root\"/g' /etc/libvirt/qemu.conf
            sudo sed -i 's/#dynamic_ownership = 1/dynamic_ownership = 0/g' /etc/libvirt/qemu.conf
            sudo sed -i 's/#remember_owner = 1/remember_owner = 0/g' /etc/libvirt/qemu.conf"""

[brew.install.pkg.tilt]

[brew.install.pkg.kubernetes-cli]
version_check = "kubectl"

[brew.install.pkg.bat]

[brew.install.pkg.direnv]

[brew.install.pkg.exa]

[brew.install.pkg.fd]

[brew.install.pkg.fzf]

[brew.install.pkg.fish]

[brew.install.pkg.glow]

[brew.install.pkg.httpie]
version_check = "http"

[brew.install.pkg.tig]

[brew.install.pkg.zellij]

[brew.install.pkg.zoxide]

[brew.install.pkg.ripgrep]
version_check = "rg"

[brew.install.pkg.neovim]
version_check = "nvim"

[git.install.repo.blesh]
url = "https://github.com/akinomyoga/ble.sh.git"
install = "make -C ble.sh install PREFIX=~/.local"
preinstall = "sudo apt-get install -y gawk build-essential"
postinstall = "echo 'source ~/.local/share/blesh/ble.sh' >> ~/.bashrc"
install_check = "~/.local/share/blesh/ble.sh"
recursive = true
depth = 1
shallow_submodules = true

[nix.install.pkg.flox]
impure = true
experimental_features = "nix-command flakes"
accept_flake_config = true
preinstall = "echo 'extra-trusted-substituters = https://cache.floxdev.com' | sudo tee -a /etc/nix/nix.conf && echo 'extra-trusted-public-keys = flox-store-public-0:8c/B+kjIaQ+BloCmNkRUKwaVPFWkriSAd0JJvuDu4F0=' | sudo tee -a /etc/nix/nix.conf"
flake = "github:flox/floxpkgs#flox.fromCatalog"

[nix.install.pkg.cachix]
flake = "github:cachix/cachix"

[nix.install.pkg.devenv]
accept_flake_config = true
preinstall = """
echo \"trusted-users = root $USER\" | sudo tee -a /etc/nix/nix.conf
sudo pkill nix-daemon
cachix use devenv"""
flake = "github:cachix/devenv/latest"
depends_on = ["cachix"]

[curl.install.script.devbox]
url = "https://get.jetpack.io/devbox"
shell = "bash"
depends_on = ["nix"]

[curl.install.script.devbox.env]
FORCE = "1"

[curl.install.script.atuin]
url = "https://raw.githubusercontent.com/ellie/atuin/main/install.sh"
shell = "bash"

[curl.install.script.nix]
url = "https://install.determinate.systems/nix"
enable_sudo = true
args = "install --no-confirm"

[curl.install.script.homebrew]
url = "https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh"
postinstall = "echo 'eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)' >> ~/.bashrc"
version_check = "brew"
shell = "bash"

[curl.install.script.homebrew.env]
NONINTERACTIVE = "true"

[apt.install.pkg.docker]
gpg_key = "https://download.docker.com/linux/debian/gpg"
gpg_path = "/etc/apt/keyrings/docker.gpg"
setup_repository = "echo \"deb [arch=\"$(dpkg --print-architecture)\" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \"$(. /etc/os-release && echo \"$VERSION_CODENAME\")\" stable\" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null"
apt_update = true
packages = [
    "docker-ce",
    "docker-ce-cli",
    "containerd.io",
    "docker-buildx-plugin",
    "docker-compose-plugin",
]
depends_on = [
    "ca-certificates",
    "curl",
    "gnupg",
]
postinstall = "sudo usermod -aG docker $USER && newgrp docker"

[apt.install.pkg.vscode]
url = "https://vscode.js.cn/sha/download?build=stable&os=linux-deb-x64"
version_check = "code"

🚀 作为 GitHub Action

您可以将 crosup 用作 GitHub Action,以在 CI/CD 管道上安装开发者工具。

name: Setup Crosup
on:
  push:
    branches:
      - master
  pull_request:
    branches:
      - master
  workflow_dispatch:

jobs:
  setup-crosup:
    runs-on: ubuntu-latest
    continue-on-error: true
    steps:
      - name: Install Nix
        uses: DeterminateSystems/nix-installer-action@v4
      - name: Setup Crosup
        uses: tsirysndr/setup-crosup@v1
        with:
          version: 'v0.5.0'
          # Add packages to install here
          packages: |
            deno
            zig
      - name: Verify Crosup
        run: crosup --version
      - name: Verify Deno
        run: deno --version
      - name: Verify Zig
        run: zig version

请参阅 action.yml 了解此操作的输入和输出的完整文档。

🤝 贡献

欢迎贡献、问题和功能请求!有关更多信息,请参阅CONTRIBUTING

📝 许可证

MIT

依赖项

~26–41MB
~766K SLoC