5个版本 (3个破坏性更新)
0.7.0 | 2019年12月21日 |
---|---|
0.6.1 | 2019年12月20日 |
0.6.0 | 2019年12月20日 |
0.5.1 | 2019年12月20日 |
0.3.1 | 2019年12月5日 |
#488 在 压缩
每月 23 次下载
10KB
138 行
budget
这个脚本仍在开发中。它的动机是我试图通过Google Sheets和通过python处理的一些JSON来跟踪财务。
这导致了许多不必要的结构,所以我重新思考了这个问题,并决定我真正需要的是 支出类别、名称 和 值。其他一切都是愉快的,或者只是干扰。
因此,这个工具使用以下类似目录结构来管理财务
.
├── archive
│ ├── carpets.txt
│ ├── coffee-table.txt
│ ├── dishwasher.txt
│ ├── ebooks-2016.txt
│ ├── ebooks-2017.txt
│ ├── ebooks-2018.txt
│ ├── ebooks-2019.txt
│ ├── ...
│ ├── ...
│ └── ...
├── monthly
│ ├── broadband.txt
│ ├── council-tax.txt
│ ├── energy.txt
│ ├── food.txt
│ ├── ...
│ ├── ...
│ └── ...
├── oneoff
│ └── ring2-doorbell.txt
└── yearly
├── dropbox.txt
├── insurance.txt
├── pinboard.txt
└── ...
└── ...
在这里,monthly、yearly 和 oneoff 是类别。它们没有什么特别之处——工具将在每个目录内简单地汇总成本。archive 是特殊的,因为名为 archive 的目录默认隐藏,可以通过命令行标志来显示它。
每个财务条目只有两个字段是必需的: name
和 cost
。例如,yearly/dropbox.txt
name: dropbox
cost: 96
frequency: yearly
在这里,只读取名称和成本。 frequency 只是一个个人关键字,这样,如果在没有脚本的情况下读取txt文件,你可以在其中添加更有用的信息。一个更具代表性的例子可能是一个关于 archive/nintendo-switch-games-2018
的笔记,其中你有一个绝对总数,但在此总数中,你保持购买游戏(为了回顾)的列表。
通过提供 -v
标志,可以显示名称和成本,以及汇总输出。
默认情况下,它会查找环境变量 $BUDGETDIR
。如果没有定义,必须将目录作为第一个参数传递。如果两者都存在,则优先使用传递的目录。
budget -
的示例输出
monthly ~ £449
150 -- food
80 -- energy
80 -- council tax
30 -- water
30 -- factor
27 -- broadband
20 -- boiler cover
9 -- spotify
9 -- netflix
9 -- amazon prime
5 -- twitch critical role
oneoff ~ £180
180 -- ring2 doorbell
yearly ~ £417
157 -- TV license
155 -- insurance
96 -- dropbox
9 -- pinboard
budget -
的示例输出
monthly ~ £449
oneoff ~ £180
yearly ~ £417
archive ~ £9999
依赖关系
~13MB
~108K SLoC