sha256sum

package
v0.1.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 14, 2026 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Cmd = &cobra.Command{
	Use:   "sha256sum",
	Short: "Compute sha256 for an object and persist it in record metadata",
	RunE: func(cmd *cobra.Command, args []string) error {
		ctx := cmd.Context()
		if strings.TrimSpace(shaDID) == "" {
			return fmt.Errorf("--did is required")
		}

		serverURL, err := cmd.Flags().GetString("server")
		if err != nil {
			return fmt.Errorf("get server flag: %w", err)
		}
		c, err := syclient.New(serverURL)
		if err != nil {
			return err
		}
		did := strings.TrimSpace(shaDID)
		signed, err := c.Data().DownloadURL(ctx, did, 0, false)
		if err != nil {
			return fmt.Errorf("get download url: %w", err)
		}
		downloadURL := strings.TrimSpace((&signed).GetUrl())
		if downloadURL == "" {
			return fmt.Errorf("empty download url for did %s", did)
		}

		data, err := readURLBytes(ctx, downloadURL, c)
		if err != nil {
			return err
		}
		sumArr := sha256.Sum256(data)
		sum := hex.EncodeToString(sumArr[:])

		// Fetch the latest record to preserve authorizations during upsert
		var authz []string
		if rec, err := c.Index().Get(ctx, did); err == nil {
			authz = rec.GetAuthz()
		}

		if err := c.Index().Upsert(ctx, did, "", "", 0, sum, authz); err != nil {
			return fmt.Errorf("persist sha256: %w", err)
		}

		fmt.Fprintln(cmd.OutOrStdout(), sum)
		return nil
	},
}

Functions

This section is empty.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL