-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
4th sournd review commnets #3
Comments
我建议把所有使用场景再梳理一下,避免下次改动还会出现实现不满足需求的情况。 其实就是把所有我们需要支持的 usecase 列一下 |
好的,我再看一下 |
主要用户分两类: 推荐使用方法 cd duo_pkgtool
source ./func.sh
DPT_KERNEL_PATH=a [DPT_BOARD_TYPE=b] [DPT_OUTPUT_PATH=c] ./mkpkg [-a/-l/-b] 默认值: |
老师,按照之前的方案,又重新做了一个版本。还是这个仓库,上次的放在了分支v1.2里,新的在main分支里。 |
Open
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
comment 1
在 duo-pkgtool 目录下导入 env 会失败:
上面出错的原因貌似是 env.sh 中
DPT_SCRIPT_PATH=$(dirname $(readlink -f "$0"))
有问题,无法得到 duo-pkgtool 的 CWD我建议的解决方法是将
env.sh
加上可执行权限,然后直接执行该脚本就好了。另外我希望用户是进入 duo-pkgtool 下执行命令,但看你的 README 写的很奇怪,感觉是要在 duo-pkgtool 同级目录下执行?
comment 2
我上次提的 comment 中说用 prompt,但现在觉得 prompt 的设计没有考虑到以后在 RTT 下替代 cvitek_bootloader 的计划。为了兼容目前 RTT 的使用习惯,打包过程中是不会引入交互的,所以 env.sh 需要支持命令行参数选项模式。而且 env 和 mkpkg 都需要考虑 RTT 下替代 cvitek_bootloader 的计划。
prompt 可能只对另一种用户场景有意义,就是制作版本测试和发行版本的人。
所以综合下来我觉得采用还是用 命令行 选项更好,prompt 或许可以以后作为一种高级特性再考虑,第一期暂时先不需要了吧。如果你觉得需要保留,可以实现成一个新的命令,env 这个命令还是先做成纯命令行+参数选项方式的。
comment 3
基于 prompt 的方式,我发现使用
env.h
过程中发现有一种使用场景会有问题:假设执行env.h
过程中如果配置了 board type 后发现配置错了, ctrl-c 退出,再次执行env.sh
, 就不会允许再配置 board type 了,而是直接进入下一个配置。这个感觉有点不方便。而且我觉得目前的配置操作实现有点复杂了,
env.sh
和change_config
我觉得可以合并为一个,每次都是从头开始配置一遍就好了。本身配置项不多,多个命令没有必要,大部分软件也就一个 configure 或者 menuconfig 就好了。具体实现时,如果用户以前配置过,譬如环境变量中存在对应的值,可以在 prompt 过程中显示当前值,用户如果不修改直接回车即可。如果没有配置过,则提示默认值,用户直接回车即可,否则输入自己的值。以上做法尽可能降低用户的交互难度,方便使用。comment 4
有个问题,为啥要生成
.config
配置文件?有持久性的需要吗?我们的用户使用场景存在反复退出当前 shell 又进入的情况吗?如果不存在用户反复退出当前 shell 会话的情况,我觉得导出环境变量在内存种就足够了。我们只需要基于当前 shell 的内存环境变量就可以,这样也简化实现。comment 5
配置完成后请将导出的环境变量值打印出来,另外输出路径可以是加上了 board type 的完整路径(因为此时已经知道了 board type)
comment 6
rt-thread 的路径我觉得可以只要输入到 rt-thread 就好了。bsp/cvitek 甚至都可以省略,对用户要求越简单越好。
comment 7
输出的默认路径写错了
为啥是 ”..."? 而且同样我们是以 duo-pkgtool 所在路径为 base 描述相对地址,所以应该是
./output
comment 8
env.sh
中这个做成全局变量可好,也许可以复用,譬如我看你提示中会写死,譬如:
那如果以后我们再扩展一个 duo 的 model,怎么办?
comment 9
脚本中打印的格式,例如 “\033[91m” 这些还能做成变量宏形式?
comment 10
mkpkg 命令的实现,参考设计 plctlab/plct-rt-thread#1
你的实现不满足 board_type 的切换需求。
另外,原设计中 ‘-a' 的考虑是否是不够的?按照你的想法,是不是需要支持三种打包
这个问题如果确定下来,原设计需要修改。
The text was updated successfully, but these errors were encountered: