|
1 | 1 | # 命令行工具
|
| 2 | + |
| 3 | + |
| 4 | +## adsb_deku: Rust 实现的终端雷达应用 |
| 5 | + |
| 6 | +基于 tui-rs,实现在终端即可解码 ADS-B 来监视飞越你家的飞机 |
| 7 | + |
| 8 | +> ADS-B : 广播式自动相关监视 |
| 9 | +
|
| 10 | +“ADS-B 是一种空中交通监视应用,用于传递飞行参数,比如,位置,航迹和 |
| 11 | +地速等,通过数据链广播模式,在特定的间隔时间内发送,任何空地用户 |
| 12 | +都可以申请使用这个功能。” (ICAO国际民航组织) |
| 13 | + |
| 14 | +- ADS-B RAD : 广播式自动相关监视 可用于雷达覆盖空域 |
| 15 | +- ADS-B NRA : 广播式自动相关监视 可用于无雷达覆盖空域 |
| 16 | +- ADS-B APP : 广播式自动相关监视 可用于机场地面活动区交通监视 |
| 17 | + |
| 18 | +[https://github.com/rsadsb/adsb_deku](https://github.com/rsadsb/adsb_deku) |
| 19 | + |
| 20 | +## cargo-mobile: 帮助你在 iOS 和 Andriod 上方便地使用 Rust |
| 21 | + |
| 22 | +这个工具是对 “如何在 iOS 和 Andriod 上使用 Rust ?” 问题的回应。 |
| 23 | + |
| 24 | +cargo-mobile 是一个与框架无关的工具,可以生成 Xcode 和 Android Studio 项目文件、在设备上构建和运行、生成项目样板文件以及其他一些事情!目前支持 macOS 和 Linux 。 |
| 25 | + |
| 26 | +该工具在 BrainiumLLC 公司内部已经使用了,可以看其[公司博客介绍](https://dev.brainiumstudios.com/2020/11/24/cargo-mobile.html)。注意,这篇文章是两年前的了,但是工具是刚开源,文章还未来得及更新。 |
| 27 | + |
| 28 | +```sh |
| 29 | +cargo install --git https://github.com/BrainiumLLC/cargo-mobile |
| 30 | +``` |
| 31 | + |
| 32 | +[https://github.com/BrainiumLLC/cargo-mobile](https://github.com/BrainiumLLC/cargo-mobile) |
| 33 | + |
| 34 | +## argc: 一种处理 `sh/bash` 命令参数的便捷方式 |
| 35 | + |
| 36 | +```sh |
| 37 | +# demo.sh |
| 38 | + |
| 39 | +# @describe A demo cli |
| 40 | + |
| 41 | +# @cmd Upload a file |
| 42 | +# @arg target! File to upload |
| 43 | +upload() { |
| 44 | + echo "cmd upload" |
| 45 | + echo "arg: target $argc_target" |
| 46 | +} |
| 47 | + |
| 48 | +# @cmd Download a file |
| 49 | +# @flag -f --force Override existed file |
| 50 | +# @option -t --tries <NUMBER> Set number of retries to NUMBER |
| 51 | +# @arg source! Url to download from |
| 52 | +# @arg target Svae file to |
| 53 | +download() { |
| 54 | + echo "cmd: download" |
| 55 | + echo "flag: --force $argc_force" |
| 56 | + echo "option: --tries $argc_tries" |
| 57 | + echo "arg: source $argc_source" |
| 58 | + echo "arg: target $argc_target" |
| 59 | +} |
| 60 | + |
| 61 | +eval "$(argc -e $0 "$@")" |
| 62 | +``` |
| 63 | + |
| 64 | +用 Argc 编写命令行程序,只需要做两件事: |
| 65 | + |
| 66 | +- 在注释中描述选项、参数和子命令 |
| 67 | +- 调用`eval`命令委托Argc为我们处理命令行参数 |
| 68 | + |
| 69 | +Argc 根据标签(`@`注释中标记的字段)生成解析规则和帮助文档。 |
| 70 | + |
| 71 | + |
| 72 | +[https://github.com/sigoden/argc](https://github.com/sigoden/argc) |
0 commit comments