6 个版本 (3 个破坏性更新)
0.4.0 | 2023 年 7 月 24 日 |
---|---|
0.3.0 | 2023 年 4 月 7 日 |
0.2.0 | 2023 年 2 月 26 日 |
0.1.2 | 2023 年 2 月 19 日 |
#2737 在 命令行工具 中
每月下载量 24 次
550KB
3K SLoC
个人存货管理系统(pinv)
一个简单的 TUI/CLI 工具,用于组织商店或家庭中的零件、工具和材料
作为一名相当不拘小节的电子收藏家,我长期以来一直被房间里闲置的电子设备和零件所困扰。问题是,随着时间的推移,东西会变得越来越乱,我最终决定通过设计自己的个人库存系统来解决这个问题:pinv。
pinv 是一个 CLI/TUI 组织工具,旨在分类和跟踪家庭中的杂物,从电容器的袋子到电脑鼠标,再到危险材料和你的特殊润滑剂收藏。它具有针对普通(技术型)用户优化的界面,并包括一些我认为有用的功能(例如可打印标签生成)。此外,由于它是用 Rust 编写的,因此它是一个设计上非常健壮的程序,具有最少的错误,并且你可以确信你的数据不太可能因简单的编程错误而损坏或无法访问。
用法
命令行参数
以下命令行参数适用于 pinv 的任何子命令
-d <DATABASE>
或--database <DATABASE>
- 指定用于数据库的备用目录-
或--version
- 显示 pinv 的版本-
或--help
- 显示帮助信息
TUI
通过运行带有 "tui" 子命令的 pinv 来启动 TUI,如下所示
pinv tui
从那里开始,你将在分类视图中,并可以访问分类视图模式。
分类视图模式
a
- 添加分类模式f
- 查找模式p
- 填充 SVG 模板模式
此外,您还可以在分类视图中通过按下“Esc”键退出程序,通过按下“Del”键删除一个空分类,或者通过选择一个分类并按下“Enter”或“Return”键进入条目视图。
在条目视图中,屏幕顶部将显示您所在的分类以及该分类中的所有条目(如果没有条目,则将为空)。您还可以访问条目视图模式。
条目视图模式
a
- 添加条目模式f
- 查找模式F
- 过滤模式+
- 给予模式-
- 取走模式m
- 修改模式p
- 填充 SVG 模板模式y
- 复制条目模式
此外,您还可以通过按下“Del”键删除一个条目,通过按下“c”键清除最后应用的约束,通过按下“C”键清除所有约束,或者通过按下“Esc”键返回分类视图。
交互式用户界面模式摘要
您可以通过随时按下“Esc”键退出任何对话框。
添加分类模式
在此模式下,您将看到一个对话框,用于添加分类。除了添加到分类中的字段按钮外,还有一个“名称”字段。您必须至少在分类中有一个字段才能创建它。
当选择添加字段按钮时,您将看到一个对话框,用于指定字段的名称和类型。名称不区分大小写,不能以数字开头,并且只能包含字母数字字符,一些特殊情况如下划线除外。字段的类型决定了可以存储的数据类型,您可以选择“文本”即任何文本字符串,“整数”即任何非十进制数字,以及“实数”即任何包括十进制数字的数字。您还可以通过按下“Del”键删除不需要的字段。
添加完您想要的字段后,您可以选择添加按钮以添加分类。
添加条目模式
在此模式下,您将看到一个对话框,用于添加条目。有许多字段呈现,每个字段都与您创建分类时指定的字段相关联,此外还有三个必填字段:键、位置和数量。 键是您将分配给此条目的base64密钥,应从您打印的标签中提取,并计划附加到您正在清点的任何物品上。 位置是条目的物理位置,例如“抽屉1”或“货架10”。 数量是条目的整数数量,应描述您拥有的特定物品的数量(这不是实际的,不允许有分数或小数)。
填写所有必填字段以及您想要填写的字段后,您可以选择添加按钮以添加条目。所有未填写的字段将设置为NULL,可以在以后修改。
查找模式
在此模式下,您将看到一个对话框,可以快速使用以查找特定的条目,如果您知道它的键。这可以在您想了解库存中某物的特定信息或需要删除它时很有用。
只需在键字段中输入条目的键并选择查找按钮即可找到条目。
过滤模式
在此模式下,您将看到一个对话框,用于应用约束并“过滤”掉您不想看到的任何条目。您只需选择要约束的字段、比较类型以及要比较的值。
填写完约束后,您选择过滤按钮,您的约束应应用于屏幕顶部的可见位置。
给予模式
在此模式下,您将看到一个对话框,允许您向当前选中条目的数量中添加。
只需调整您想要添加的数量,然后选择“添加”按钮。
取模式
在此模式下,您将看到一个对话框,允许您从当前选中条目的数量中减去。
只需调整您想要从数量中减去多少,然后选择“取走”按钮。
修改模式
在此模式下,您将看到一个对话框,允许您修改选中的条目。您将看到条目的所有字段都已填写,并显示当前值,您可以将它们修改为您想要的值。您也可以清空字段,使其变为“空”。
修改完所需字段后,请选择“修改”按钮。
填充模板模式
在此模式下,您将看到一个对话框,允许您从内置模板或模板目录中的模板创建可打印的标签页。只需选择您想要的模板,并指定您要写入的文件名。请注意,支持的唯一输出文件类型是SVG。
填写完所有信息后,您可以选择“填充模板”按钮。
拖拽条目模式
此模式类似于添加条目模式,除了所有字段都填写了选中条目的字段,除了必须提供的键。如果您需要添加许多类似的项目,例如许多不同长度的M3螺钉,这非常有用。
命令行界面
CLI是在TUI不可用或您绝对讨厌TUI的罕见情况下使用的,尽管它与TUI在功能上非常相似。
CLI子命令
tui
启动TUI,见上文
add
向指定类别添加条目。除需指定字段外,还有4个必选项
-c, --catagory <CATAGORY> The catagory to add the entry to.
-k, --key <KEY> The key of the entry to add.
-l, --location <LOCATION> The physical location of the entry.
-q, --quantity <QUANTITY> The quantity of the entry.
add_catagory
向数据库添加类别。除需指定字段外,还有1个必选项
-c, --catagory <CATAGORY> The name of the catagory
delete
根据base64键删除条目
fill_template
使用内置模板或gzip压缩的svg模板文件将svg模板填充到指定的svg文件中
-b, --builtin <BUILTIN> Use a builtin template
-i, --infile <IN> GZ-SVG template to read and fill out
find
根据base64键查找条目
give
使用base64键将给定数量添加到条目的数量中
-k, --key <KEY> The key of the entry to give to
list
列出指定类别中的所有条目,我建议将此命令的输出通过less命令进行管道传输。
-c, --catagory <CATAOGRY> The catagory to list the contents of
list_builtin_templates
列出所有内置标签模板,用于fill_template命令
list_catagories
列出您的pinv数据库中的所有类别
modify
修改指定base64键的条目的所有字段。字段使用field=value
格式。
-k, --key <KEY> The key of the entry to modify.
take
使用base64键从条目的数量中减去给定数量
-k, --key <KEY> The key of the entry to give to
未来的更新会破坏我的数据库吗?
虽然版本非常早期,但我已经在pinv中存储了大量数据,因此我**保证**所有pinv版本至少与之前创建的数据库兼容。
图片
我使用打印的标签来组织电气元件。
在类别视图中。
填写要打印的模板。
将条目添加到电缆类别。
向条目的数量中添加。
依赖关系
~31–43MB
~677K SLoC