This commit is contained in:
塞马
2025-10-09 16:55:49 +08:00
commit 0c93027123
12 changed files with 293 additions and 0 deletions

1
.envrc Normal file
View File

@@ -0,0 +1 @@
use flake

3
.gitignore vendored Normal file
View File

@@ -0,0 +1,3 @@
.direnv
test
result

21
LICENSE Normal file
View File

@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2025 Kilari Teja
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

116
README.md Normal file
View File

@@ -0,0 +1,116 @@
# T-Packs T 老师精选软件
T-Packs 是一个使用 Nix 构建系统管理的精选软件包集合,旨在提供高质量、实用的开发工具和实用程序。
## 🚀 项目特点
- 使用 Nix Flakes 管理依赖和构建过程
- 包含精选的开发工具和实用程序
- 提供统一的配置和安装方式
- 支持 NixOS 模块集成
## 📦 包含的软件包
### ut - 开发者工具盒
`ut` 是一个基于 Rust 开发的开发者工具盒,灵感来自 [it-tools.tech](https://it-tools.tech)。
- 轻量级、高性能的命令行工具
- 提供多种实用功能
- 开源 (MIT 许可证)
## 🛠️ 快速开始
### 前提条件
确保您已安装 Nix 包管理器,并启用了 Flakes 支持。
### 使用方法
#### 作为依赖引入
在您的 flake.nix 中添加:
```nix
{ inputs.t-packs.url = "github:your-username/t-packs";
outputs = { self, nixpkgs, t-packs }: {
# 使用 t-packs 中的包
yourPackage = t-packs.packages.${system}.com.github.ksdme.ut;
};
}
```
#### 在 NixOS 中使用
在您的 NixOS 配置中导入模块:
```nix
{ config, pkgs, ... }:
{
imports = [
t-packs.nixosModules.default
];
# 配置相关服务
}
```
#### 开发环境
进入开发环境:
```bash
nix develop
```
这将提供以下开发工具:
- `tokei` - 代码统计工具
- `nil` - Nix 语言服务器
## 📋 项目结构
```
├── com/ # 软件包定义
│ └── github/ # GitHub 来源的包
│ └── ksdme/ # 作者 ksdme 的包
│ └── ut/ # ut 工具包
├── default.nix # 默认包定义
├── flake.nix # Flake 配置
├── flake.lock # 依赖锁定文件
├── treefmt.nix # 代码格式化配置
└── README.md # 项目说明文档
```
## 📝 开发指南
### 格式化代码
使用 treefmt 格式化项目代码:
```bash
nix fmt
```
### 添加新软件包
1. 在适当的目录下创建新的 Nix 文件
2. 在 default.nix 或 flake.nix 中添加相应的导入和配置
3. 运行 `nix flake update` 更新依赖
## 📄 许可证
[MIT License](LICENSE)
## 👨‍🏫 关于 T 老师
T 老师精选软件 (T-Packs) 是由 T 老师精心挑选和维护的实用软件集合,旨在为开发者提供高质量、易于使用的工具。
## 🤝 贡献指南
欢迎提交 Issue 和 Pull Request 来改进这个项目!
---
*使用 Nix让软件管理更简单*

4
com/default.nix Normal file
View File

@@ -0,0 +1,4 @@
{ pkgs, ... }:
{
github = import ./github { inherit pkgs; };
}

4
com/github/default.nix Normal file
View File

@@ -0,0 +1,4 @@
{ pkgs, ... }:
{
ksdme = import ./ksdme { inherit pkgs; };
}

View File

@@ -0,0 +1,4 @@
{ pkgs, ... }:
{
ut = pkgs.callPackage ./ut/package.nix { };
}

View File

@@ -0,0 +1,26 @@
{
rustPlatform,
fetchFromGitHub,
lib,
...
}:
rustPlatform.buildRustPackage rec {
pname = "ut";
version = "0.2.0";
src = fetchFromGitHub {
owner = "ksdme";
repo = "ut";
tag = "v${version}";
hash = "sha256-+dKDLBgmwhc9LnXTDgtqGxcFxgu4cdkauY6X5FpE3+8=";
};
cargoHash = "sha256-jWSp0NzeXQu38fAaZ8eTqVN+uvpn6v5xgoi3N5SCQoc=";
meta = with lib; {
description = "A Rust based utilty toolbox for developers. Inspired from https://it-tools.tech";
homepage = "https://github.com/ksdme/ut";
license = licenses.mit;
platforms = platforms.all;
};
}

1
default.nix Normal file
View File

@@ -0,0 +1 @@
{ }

62
flake.lock generated Normal file
View File

@@ -0,0 +1,62 @@
{
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1759917807,
"narHash": "sha256-WoSazth5EXIJmveWf0zbTMycrgpbLYOth6KhmltMuv0=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "fb5cf53218b987f2703a5bbc292a030c0fe33443",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1754340878,
"narHash": "sha256-lgmUyVQL9tSnvvIvBp7x1euhkkCho7n3TMzgjdvgPoU=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "cab778239e705082fe97bb4990e0d24c50924c04",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"nixpkgs": "nixpkgs",
"treefmt-nix": "treefmt-nix"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1758728421,
"narHash": "sha256-ySNJ008muQAds2JemiyrWYbwbG+V7S5wg3ZVKGHSFu8=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "5eda4ee8121f97b218f7cc73f5172098d458f1d1",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

47
flake.nix Normal file
View File

@@ -0,0 +1,47 @@
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
treefmt-nix.url = "github:numtide/treefmt-nix";
};
outputs =
{
self,
nixpkgs,
treefmt-nix,
...
}:
let
system = "x86_64-linux";
pkgs = import nixpkgs { inherit system; };
treefmtEval = treefmt-nix.lib.evalModule pkgs ./treefmt.nix;
inherit (pkgs) mkShell;
in
{
formatter.${system} = treefmtEval.config.build.wrapper;
devShell."${system}" = mkShell {
nativeBuildInputs = with pkgs; [
tokei
nil
];
};
packages."${system}" = {
com = import ./com { inherit pkgs; };
};
nixosModules =
let
t-packs = self.packages."${system}";
in
rec {
t-packs =
{ config, lib, ... }:
{
imports = [];
};
default = t-packs;
};
};
}

4
treefmt.nix Normal file
View File

@@ -0,0 +1,4 @@
{
projectRootFile = "flake.nix";
programs.nixfmt.enable = true;
}