From 9aabc9f7f3e07ebb07537b6c95fb954af4c3a9a0 Mon Sep 17 00:00:00 2001 From: James Williams Date: Sun, 16 Jul 2023 09:20:41 +0100 Subject: nix-generate-from-cpan: generate SRI hashes --- maintainers/scripts/nix-generate-from-cpan.pl | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'maintainers/scripts/nix-generate-from-cpan.pl') diff --git a/maintainers/scripts/nix-generate-from-cpan.pl b/maintainers/scripts/nix-generate-from-cpan.pl index ce0599dda0e71..6754f79009ec9 100755 --- a/maintainers/scripts/nix-generate-from-cpan.pl +++ b/maintainers/scripts/nix-generate-from-cpan.pl @@ -6,6 +6,7 @@ use warnings; use CPAN::Meta(); use CPANPLUS::Backend(); +use MIME::Base64; use Module::CoreList; use Getopt::Long::Descriptive qw( describe_options ); use JSON::PP qw( encode_json ); @@ -354,6 +355,11 @@ sub render_license { return $license_line; } +sub sha256_to_sri { + my ($sha256) = @_; + return "sha256-" . encode_base64(pack("H*", $sha256), ''); +} + my ( $opt, $module_name ) = handle_opts(); Log::Log4perl->easy_init( @@ -380,8 +386,9 @@ INFO( "package: ", $module->package, " (", "$pkg_name-$pkg_version", ", ", $attr INFO( "path: ", $module->path ); my $tar_path = $module->fetch(); +my $sri_hash = sha256_to_sri($module->status->checksum_value); INFO( "downloaded to: ", $tar_path ); -INFO( "sha-256: ", $module->status->checksum_value ); +INFO( "hash: ", $sri_hash ); my $pkg_path = $module->extract(); INFO( "unpacked to: ", $pkg_path ); @@ -436,7 +443,7 @@ print < 0; -- cgit 1.4.1