#nix-package #nix #package #generate #interactive #cli #python-packages

app nix-init

从 URLs 生成 Nix 包,具有哈希预取、依赖推断、许可检测等功能

5 个版本

0.3.0 2023 年 9 月 16 日
0.2.4 2023 年 7 月 7 日
0.2.3 2023 年 4 月 29 日
0.2.1 2023 年 3 月 22 日
0.0.0 2023 年 1 月 18 日

命令行工具 中排名第 2642

每月下载量 34

版权 MPL-2.0 许可

1.5MB
3.5K SLoC

nix-init

matrix release version license ci

从 URLs 生成 Nix 包

注意:生成的包可能需要一些调整才能正常工作,即使它能正常工作,也要记得检查许可证和描述

  • nurl 提供哈希预取功能,支持 cargoHashvendorHash
  • 对 Rust、Go 和 Python 项目的依赖推断
  • 交互式提示,带有模糊制表符补全
  • 许可检测

安装

nix-init 的最新版本已打包在 nixpkgs 中,并在不稳定分支上保持最新

如果您想使用更近期的 nix-init 快照,它也作为 flake 提供。以下命令等效于运行 nix-init --help

nix run github:nix-community/nix-init -- --help

或者如果您没有启用 flakes

nix run --extra-experimental-features "flakes nix-command" github:nix-community/nix-init -- --help

用法

Usage: nix-init [OPTIONS] [OUTPUT]

Arguments:
  [OUTPUT]  The path or directory to output the generated file to

Options:
  -u, --url <URL>          Specify the URL
  -n, --nixpkgs <NIXPKGS>  Path to nixpkgs (in nix)
  -C, --commit[=<COMMIT>]  Commit the changes if the output path is name-based (RFC 140) [possible values: true, false]
  -c, --config <CONFIG>    Specify the config file
  -h, --help               Print help
  -V, --version            Print version

支持的构建器

  • stdenv.mkDerivation
  • buildRustPackage
  • buildPythonApplicationbuildPythonPackage
  • buildGoModule

支持的下载器

  • fetchCrate
  • fetchFromGitHub
  • fetchFromGitLab
  • fetchFromGitea
  • fetchPypi
  • nurl 支持的所有其他下载器也支持,您只需手动输入软件包的标签/修订版本即可

配置

nix-init 将尝试在 XDG 配置目录下查找 nix-init/config.toml

# ~/.config/nix-init/config.toml

# maintainers that will get added to the package meta
maintainers = ["figsoda"]

# path to nixpkgs (in nix), equivalent to `--nixpkgs`
nixpkgs = "<nixpkgs>" # use the nixpkgs from channels (default)
# nixpkgs = 'builtins.getFlake "nixpkgs"' # use the nixpkgs from the flake registry

# commit the changes if the output path is name-based (RFC 140)
# see https://github.com/NixOS/nixpkgs/tree/master/pkgs/by-name for more information
commit = true

# access tokens to access private repositories and avoid rate limits
[access-tokens]
"github.com" = "ghp_blahblahblah..."
"gitlab.com".command = ["secret-tool", "or", "whatever", "you", "use"]
"gitlab.gnome.org".file = "/path/to/api/token"

变更日志

查看 CHANGELOG.md

依赖关系

~68–105MB
~2M SLoC