3 个版本

0.0.3 2023 年 10 月 12 日
0.0.2 2023 年 9 月 3 日
0.0.1 2023 年 9 月 3 日

#1239命令行工具

MIT 许可证

10KB
125 代码行

packy

创建解压缩归档文件的 CLI 工具(最常见的类型)。

它专注于简洁性,例如

  • 自动检测归档类型。
  • 适用于各种平台的便携式二进制文件。
  • 无外部依赖(其他二进制文件或任何动态库)。

但为什么呢?

坦白说,启动此项目的首要原因是

  • 使用 tar 时的挫败感。
    • GNU tar 和 BSD tar 之间的不兼容性。这意味着:Linux 和 macOS 上的 tar 在归档类型支持和 CLI 选项上有所不同。您的 shell 脚本在不同系统上随机失败,这不是很烦人吗?
    • 版本之间的不兼容性 - 例如,旧版本的 tar 无法自动检测归档类型。所以您编写了脚本,然后在某个古老的 Ubuntu 版本上失败。这不是很有趣吗?
    • 运行时依赖项 - 对特定归档类型的支持取决于动态库。
  • 强烈希望用 Rust 重新编写一切。( ͡° ͜ʖ ͡°)

Packy 通过以下方式解决这些问题

  • 跨平台,并提供在 Linux 和 macOS 上轻松开始的一行代码。
  • 支持尽可能多的归档类型。100% 内置在 packy 中。
  • 静态链接,无运行时依赖,无惊喜。
  • 用 Rust 编写!!!111oneone

安装

预构建的二进制文件

发布页面 下载最新二进制文件。

cargo

cargo install packy

使用方法

packy [OPTIONS] <INPUT>

Arguments:
  <INPUT>  Path to the archive to packy

Options:
  -o, --output <OUTPUT>
          Directory to unpack the archive into [default: .]
  -s, --strip-components <STRIP_COMPONENTS>
          Strip the specified number of leading components from the archive [default: 0]
  -v, --verbose
          Verbose output
  -h, --help
          Print help
  -V, --version
          Print version

示例

# Unpack archive.tar.gz into the current directory.
packy archive.tar.gz
# Unpack archive.tar.xz into the directory /tmp/foo.
packy -o /tmp/foo archive.tar.xz
# Unpack archive.tar.bz2 into the directory /tmp/foo, stripping the first component.
packy -o /tmp/foo -s 1 archive.tar.gz

依赖项

~9–19MB
~260K SLoC