From e2ec89bbb06583c782098842f1830d7ea123d235 Mon Sep 17 00:00:00 2001 From: Etienne Marais Date: Wed, 5 Feb 2025 16:47:37 +0100 Subject: [PATCH] fix: apply @Leonidas-from-XIV suggestion Signed-off-by: Etienne Marais --- src/dune_pkg/mount.ml | 16 ++++++++-------- src/dune_pkg/opamUrl0.ml | 6 ++++-- src/dune_pkg/source.ml | 14 ++++++++------ test/blackbox-tests/test-cases/pkg/pin-depends.t | 6 +++--- 4 files changed, 23 insertions(+), 19 deletions(-) diff --git a/src/dune_pkg/mount.ml b/src/dune_pkg/mount.ml index 2be44060b1b..fc1b195de6c 100644 --- a/src/dune_pkg/mount.ml +++ b/src/dune_pkg/mount.ml @@ -29,14 +29,14 @@ let of_opam_url loc url = >>= (function | Error message_opt -> let message = - match message_opt with - | Some message -> message - | None -> - User_message.make - [ Pp.textf - "Failed to retrieve source archive from: %s" - (OpamUrl.to_string url) - ] + Option.value + ~default: + (User_message.make + [ Pp.textf + "Failed to retrieve source archive from: %s" + (OpamUrl.to_string url) + ]) + message_opt in raise (User_error.E message) | Ok output -> diff --git a/src/dune_pkg/opamUrl0.ml b/src/dune_pkg/opamUrl0.ml index 64834899d87..9391311c7dc 100644 --- a/src/dune_pkg/opamUrl0.ml +++ b/src/dune_pkg/opamUrl0.ml @@ -31,8 +31,10 @@ let is_version_control t = let is_local t = String.equal t.transport "file" let is_tarball t = - let supported_compress_format = [ "tar.gz"; "tgz"; "tar.bz2"; "tbz" ] in - List.exists ~f:(fun suffix -> String.is_suffix ~suffix t.path) supported_compress_format + let supported_compress_format = [ ".tar"; ".tar.gz"; ".tgz"; ".tar.bz2"; ".tbz" ] in + List.exists + ~f:(fun suffix -> Filename.check_suffix t.path suffix) + supported_compress_format ;; let local_or_git_or_tar_only url loc = diff --git a/src/dune_pkg/source.ml b/src/dune_pkg/source.ml index b4d62e6495b..773692cfa05 100644 --- a/src/dune_pkg/source.ml +++ b/src/dune_pkg/source.ml @@ -45,12 +45,14 @@ let fetch_and_hash_archive_cached (url_loc, url) = | Ok target -> Some (Dune_digest.file target |> Checksum.of_dune_digest) | Error message_opt -> let message = - match message_opt with - | Some message -> message - | None -> - User_message.make - [ Pp.textf "Failed to retrieve source archive from: %s" (OpamUrl.to_string url) - ] + Option.value + ~default: + (User_message.make + [ Pp.textf + "Failed to retrieve source archive from: %s" + (OpamUrl.to_string url) + ]) + message_opt in User_warning.emit_message message; None diff --git a/test/blackbox-tests/test-cases/pkg/pin-depends.t b/test/blackbox-tests/test-cases/pkg/pin-depends.t index 96d5472f0b6..26843863cbc 100644 --- a/test/blackbox-tests/test-cases/pkg/pin-depends.t +++ b/test/blackbox-tests/test-cases/pkg/pin-depends.t @@ -181,10 +181,10 @@ Pin to an HTTP archive work $ cat > _source/bar.opam << EOF > opam-version: "2.0" > EOF - $ tar -czf tarball.tgz -C _source bar.opam - $ echo tarball.tgz > fake-curls + $ tar cf tarball.tar -C _source bar.opam + $ echo tarball.tar > fake-curls $ PORT=1 - $ runtest "http://0.0.0.0:$PORT/tarball.tgz" + $ runtest "http://0.0.0.0:$PORT/tarball.tar" Solution for dune.lock: - bar.1.0.0 (version 1.0.0)