Skip to content

ker0123/use-cli-like-gui

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Use CLI Like GUI

以可视化的方式使用命令行工具.

preview

项目产生原因是: 我写了个命令行工具给别人用, 但是别人连终端都不知道怎么开, 也懒得手敲命令; 正好我自己平时也用 ffmpeg 做一些简单的视频截取, 压缩. 因此, 构思了这个能同时解决这两个问题的项目.

只要写好配置, 能够让不懂命令行的人, 或者觉得一个一个输参数很麻烦的人, 都能在可视化界面上, 轻松使用命令行工具.

这个项目也是我自己学习 rust 的第一个实践.

用法

安装

使用已经编译好的包

从 Release 页面下载可执行文件(目前只编译了 Windows 版本), 将其与配置文件放到同一个目录下. 双击use-cli-like-gui.exe即可运行.

从源码编译

参照 rust 的安装和编译项目方法.

总之就是安装好 cargo, 在项目目录下运行cargo build --release, 编译完成后, 找到target/release目录下的可执行文件use-cli-like-gui.exe, 将其与配置文件放到同一个目录下. 双击use-cli-like-gui.exe即可运行.

配置文件

项目使用 toml 格式的配置文件. 可以直接取项目中的示例配置文件来使用, 也可以参照这些配置文件自行编写.

文件结构非常清晰. 惟一需要注意的是, 请保持文件名与可执行程序同名. 程序更新配置文件时会按照可执行程序生成新文件.

对于选项(Option)和参数(Argument)的解析:

  1. 无等号结尾的选项, 选项和参数将作为两个部分分别传入. 例如
funcs.opt = "-i"
funcs.arg = "input.mp4"
# => -i input.mp4
funcs.opt = "-ss"
funcs.arg = "00:00:00"
# => -ss 00:00:00
funcs.opt = "--no-ff"
funcs.arg = "develop"
# => --no-ff develop
  1. 以等号结尾的选项, 如果是单横开头, 则直接连接参数作为一个选项传入; 如果是双横开头, 则用等号连接参数作为一个选项传入. 例如:
funcs.opt = "-l="
funcs.arg = "curl"
# => -lcurl
funcs.opt = "--split="
funcs.arg = "EN_content.txt"
# => --split=EN_content.txt
  1. 选项或参数为空时, 将会跳过并尝试将另外一部分作为一个选项传入(等于号将被忽略). 例如:
funcs.opt = ""
funcs.arg = "input.mp4"
# => input.mp4
funcs.opt = "-ss"
funcs.arg = ""
# => -ss
funcs.opt = "--no-ff"
funcs.arg = ""
# => --no-ff
funcs.opt = ""
funcs.arg = "curl"
# => curl
funcs.opt = "--split="
funcs.arg = ""
# => --split

运行

在打开程序之前准备好配置文件, 双击运行之后, 从右上角选择想要用到的命令行工具, 然后依次选择功能, 要使用的参数, 然后填入必要的参数值, 最后点击 Start 按钮开始执行. 执行结果会显示在同步打开的终端中.

特性

  • 输入内容的保存时机为: 切换配置文件时; 按下 Start 按钮时. 目前直接关闭程序不会保存输入内容.
  • 组合的命令会提前显示在 Start 按钮右侧, 你可以自行在终端中输入这些命令来运行. 效果一样.
  • 乱写的 toml 文件不会导致崩溃, 反过来说, toml 文件无法加载说明文件格式可能哪里有误.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages