我开发了一个可缓存多个程序包的应用程序。此应用程序的CLI界面如下

submit -z pkg1.zip -c pkgChecksum1 -t pkgType1 -s pkgSize1 -z pkg2.zip -c pkgChecksum2 -t pkgType2 -s pkgSize2


因此,这将提交2个软件包pkg1.zip和pkg2.zip,它们分别具有校验和pkgChecksum1和pkgChecksum2,软件包类型为pkgType1和pkgType2,大小分别为pkgSize1和pkgSize2。

我们还向应用程序提供基于XML的输入,如下所示

submit --script an.xml


an.xml在哪里

<?xml version="1.0" encoding="ISO-8859-1"?>
<packages>
<package name="pkg1.zip" checksum="pkgChecksum1" type="pkgType1" size="pkgSize1" />
<package name="pkg2.zip" checksum="pkgChecksum2" type="pkgType2" size="pkgSize2" />
</packages>


这与第一个CLI方法的功能等效。

我们正计划使它变得更加用户友好,还有什么要改进的想法吗?

最佳答案

是否需要所有选项?还是默认类型,大小和校验和?
如果没有默认值,则可以删除标签,而只需要四个一组的参数即可。

submit pkg1.zip pkg1Cksum pkg1type pkg1sz pkg2.zip pkg2Cksum pkg2type pkg2sz


在这种情况下,另一种选择是使用标签,但提示用户输入缺少的值。

如果有默认值(可以自动计算校验和和大小吗?),请允许选择覆盖:

submit pkg1.zip -t pkg1type pkg2.zip -t pkg2type -s pkg2szOverride


另一个可能有用的选项是-a existingCache,它会追加到现有文件中(如果不存在,则创建它)。这将使用户分为几个
可操作的命令行

   submit -a mycache pkg1.zip -t pkg1type -s pkg1sz
   submit -a mycache pkg2.zip -t pkg2type -s pkg2sz


根据评论,还有一个选择:

  submit -x pkg1.zip:2034 0x232D -y pkg2.zip pkg3.zip:123


其中-x,-y等是不同支持的“类型”的标志。因此,此行提交大小为2034,类型X和校验和的pkg1。类型为y的pkg2,未指定大小或校验和;和pkg3,大小为123,未指定类型或校验和。

09-25 20:40