func TestSha1sum(t *testing.T) { r := NewRun(t) defer r.Finalise() file1 := r.WriteBoth("potato2", "------------------------------------------------------------", t1) file2 := r.WriteBoth("empty space", "", t2) fstest.CheckItems(t, r.fremote, file1, file2) var buf bytes.Buffer err := fs.Sha1sum(r.fremote, &buf) if err != nil { t.Fatalf("List failed: %v", err) } res := buf.String() if !strings.Contains(res, "da39a3ee5e6b4b0d3255bfef95601890afd80709 empty space\n") && !strings.Contains(res, " UNSUPPORTED empty space\n") && !strings.Contains(res, " empty space\n") { t.Errorf("empty space missing: %q", res) } if !strings.Contains(res, "9dc7f7d3279715991a22853f5981df582b7f9f6d potato2\n") && !strings.Contains(res, " UNSUPPORTED potato2\n") && !strings.Contains(res, " potato2\n") { t.Errorf("potato2 missing: %q", res) } }
package sha1sum import ( "os" "github.com/ncw/rclone/cmd" "github.com/ncw/rclone/fs" "github.com/spf13/cobra" ) func init() { cmd.Root.AddCommand(commandDefintion) } var commandDefintion = &cobra.Command{ Use: "sha1sum remote:path", Short: `Produces an sha1sum file for all the objects in the path.`, Long: ` Produces an sha1sum file for all the objects in the path. This is in the same format as the standard sha1sum tool produces. `, Run: func(command *cobra.Command, args []string) { cmd.CheckArgs(1, 1, command, args) fsrc := cmd.NewFsSrc(args) cmd.Run(false, false, command, func() error { return fs.Sha1sum(fsrc, os.Stdout) }) }, }
Produces an md5sum file for all the objects in the path. This is in the same format as the standard md5sum tool produces.`, Run: func(fdst, fsrc fs.Fs) error { return fs.Md5sum(fdst, os.Stdout) }, MinArgs: 1, MaxArgs: 1, }, { Name: "sha1sum", ArgsHelp: "remote:path", Help: ` Produces an sha1sum file for all the objects in the path. This is in the same format as the standard sha1sum tool produces.`, Run: func(fdst, fsrc fs.Fs) error { return fs.Sha1sum(fdst, os.Stdout) }, MinArgs: 1, MaxArgs: 1, }, { Name: "size", ArgsHelp: "remote:path", Help: ` Returns the total size of objects in remote:path and the number of objects.`, Run: func(fdst, fsrc fs.Fs) error { objects, size, err := fs.Count(fdst) if err != nil { return err }