ffe: File/Folder Extensible manipulator
可轻松地用 Python 来写插件的文件操作工具
最开始,我只是想写一个 "调换两个文件名" 的脚本,写好了又想写 "压缩加密上传一条龙" 的脚本,然后我就想,写一大堆脚本看起来一盘散沙,不整齐,而且对命令行的处理、对 TOML 文件的处理又有很多可以共用的代码。
于是我就想把这些脚本集合起来变成一个多功能软件,很自然就想到采用插件的方式比较合理,就这样做出了一个命令行插件工具,第一版是用 Go 语言做的 (看这里 https://v2ex.com/t/820116 ), 后来觉得还是用 Python 做比较合理,就有了这个项目。
ffe 解决什么问题
在日常使用电脑的过程中,总有一些关于文件 /文件夹的操作是有规律、有重复性的,比如:
- 对调两个文件的文件名
- 批量修改文件名
- 把指定文件备份到指定文件夹,并自动改名
- 把指定文件移动到指定文件夹,并自动删除超过 n 天的旧文件
- 复制文件并且在复制结束后校验文件完整性
- 压缩、加密、上传文件
- 按你喜欢的方式单向 /双向同步两个文件夹(具体就看扩展代码怎样写了)
- ……等等
ffe 本身的功能
ffe 本身不解决任何具体问题,比如对文件进行改名、复制、移动等操作全部交给插件去做。
ffe 为你提供以下服务:
- install: 你只需要把插件代码放在 github 或 gitee 之类的仓库中,任何人都能使用 ffe install 命令来安装你写的插件。
- download: 正式安装插件前可先下载代码,审查后再安装。
- peek: 下载或安装插件前阅读插件的简单介绍。
- info: 查看插件的帮助文档。
- dump: 在执行任务前查看任务计划,并且可生成 toml 文件。
- dry run: 在正式执行任务前,安全地(不修改文件)预测运行结果。
- toml: 通过 toml 文件来输入参数,一个 toml 文件可包含多个任务,用
ffe run -f <recipe.toml>命令即可一次性按顺序执行多个任务。 - proxy: 涉及网络操作时,可设置代理。
对于插件作者来说,只需要专注于具体的业务逻辑即可,按照套路填写一些信息后就能获得以上全部功能。
对于用户来说,可以在安装前查看插件简介,可批量安装插件,不同的插件可以组合使用。
另外, CLI 与 TOML 的配合效果很不错, TOML 很直观,容易编辑,比纯 CLI 更直观,又比 GUI 更容易编程开发。(参考: toml.io)