From 0b25e870f25ce978df8fe678fce8853a07d68ff2 Mon Sep 17 00:00:00 2001 From: Raja Boujbel Date: Mon, 3 Jun 2024 18:48:46 +0200 Subject: [PATCH] default root to C:\opamroot and ask for path --- src/client/opamClient.ml | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/client/opamClient.ml b/src/client/opamClient.ml index d42cc56f97e..01664d97547 100644 --- a/src/client/opamClient.ml +++ b/src/client/opamClient.ml @@ -1147,15 +1147,17 @@ let init let root = OpamStateConfig.(!r.root_dir) in if Sys.win32 && OpamStd.String.contains_char (OpamFilename.Dir.to_string root) ' ' then - (let new_root_f = - (* TODO: don't keep! *) - Filename.concat - (Filename.get_temp_dir_name ()) - (Printf.sprintf "opam-root-%06x" (Random.int 0xffffff)) + (let default = Filename.concat "C:" "opamroot" in + let new_root_f = + if OpamConsole.confirm ~default:false + "Your opam root path '%s' contains a space, we'll redirect to \ + '%s'.\nDo you want to choose and enter another spaceless folder" + (OpamFilename.Dir.to_string root) default then + match OpamConsole.read "Opam root: " with + | Some r -> r + | None -> default + else default in - OpamConsole.note - "Your opam root path '%s' contains a space, we'll redirect to '%s'" - (OpamFilename.Dir.to_string root) new_root_f; let new_root = OpamFilename.Dir.of_string new_root_f in OpamFilename.write (OpamPath.redirected root) new_root_f; OpamStateConfig.update ~root_dir:new_root ();