Make '**' implicit
Default to copying all entries in the input zip to the output zip.
Test: zip2zip_test
Change-Id: I0d70620c621bfeee2b7fe2a64b350b4866ad2877
diff --git a/cmd/zip2zip/zip2zip.go b/cmd/zip2zip/zip2zip.go
index fb2fa62..815059c 100644
--- a/cmd/zip2zip/zip2zip.go
+++ b/cmd/zip2zip/zip2zip.go
@@ -47,15 +47,17 @@
fmt.Fprintln(os.Stderr, " <glob>:<out_dir>/")
fmt.Fprintln(os.Stderr, "")
fmt.Fprintln(os.Stderr, "<glob> uses the rules at https://golang.org/pkg/path/filepath/#Match")
- fmt.Fprintln(os.Stderr, "As a special exception, '**' is supported to specify all files in the input zip")
+ fmt.Fprintln(os.Stderr, "As a special exception, '**' is supported to specify all files in the input zip.")
fmt.Fprintln(os.Stderr, "")
fmt.Fprintln(os.Stderr, "Files will be copied with their existing compression from the input zipfile to")
- fmt.Fprintln(os.Stderr, "the output zipfile, in the order of filespec arguments")
+ fmt.Fprintln(os.Stderr, "the output zipfile, in the order of filespec arguments.")
+ fmt.Fprintln(os.Stderr, "")
+ fmt.Fprintln(os.Stderr, "If no filepsec is provided all files are copied (equivalent to '**').")
}
flag.Parse()
- if flag.NArg() == 0 || *input == "" || *output == "" {
+ if *input == "" || *output == "" {
flag.Usage()
os.Exit(1)
}
@@ -93,6 +95,10 @@
}
func zip2zip(reader *zip.Reader, writer *zip.Writer, sortGlobs, sortJava, setTime bool, args []string) error {
+ if len(args) == 0 {
+ // If no filespec is provided, default to copying everything
+ args = []string{"**"}
+ }
for _, arg := range args {
var input string
var output string
diff --git a/cmd/zip2zip/zip2zip_test.go b/cmd/zip2zip/zip2zip_test.go
index 2b5b562..53c8ce2 100644
--- a/cmd/zip2zip/zip2zip_test.go
+++ b/cmd/zip2zip/zip2zip_test.go
@@ -117,6 +117,31 @@
},
},
{
+ name: "sort all implicit",
+
+ inputFiles: []string{
+ "RADIO/a",
+ "IMAGES/system.img",
+ "IMAGES/b.txt",
+ "IMAGES/recovery.img",
+ "IMAGES/vendor.img",
+ "OTA/b",
+ "OTA/android-info.txt",
+ },
+ sortGlobs: true,
+ args: nil,
+
+ outputFiles: []string{
+ "IMAGES/b.txt",
+ "IMAGES/recovery.img",
+ "IMAGES/system.img",
+ "IMAGES/vendor.img",
+ "OTA/android-info.txt",
+ "OTA/b",
+ "RADIO/a",
+ },
+ },
+ {
name: "sort jar",
inputFiles: []string{