debian: Quote parameters to grep.
[febootstrap.git] / src / febootstrap_debian.ml
index 85c9b7e..8d0f75f 100644 (file)
@@ -45,7 +45,7 @@ let get_installed_pkgs () =
 
 let rec debian_resolve_dependencies_and_download names =
   let cmd =
-    sprintf "%s depends --recurse -i %s | grep -v '^[<[:space:]]'"
+    sprintf "%s depends --recurse -i %s | grep -v '^[<[:space:]]' | grep -Ev ':\\w+\\b'"
       Config.apt_cache
       (String.concat " " (List.map Filename.quote names)) in
   let pkgs = run_command_get_lines cmd in
@@ -62,13 +62,16 @@ let rec debian_resolve_dependencies_and_download names =
         not (List.exists (fun re -> Str.string_match re name 0) excludes)
     ) pkgs in
 
-  let present_pkgs, download_pkgs = List.partition (
-    fun pkg -> List.exists ((=) pkg) (get_installed_pkgs ())
-  ) pkgs in
+  let present_pkgs, download_pkgs =
+    if not use_installed then
+      [], pkgs
+    else
+      List.partition (
+       fun pkg -> List.exists ((=) pkg) (get_installed_pkgs ())
+      ) pkgs in
 
-  debug "wanted packages (present / download): %s / %s\n"
-    (String.concat " " present_pkgs)
-    (String.concat " " download_pkgs);
+  debug "packages already present: %s" (String.concat " " present_pkgs);
+  debug "wanted packages to download: %s" (String.concat " " download_pkgs);
 
   (* Download the packages. *)
   if (List.length download_pkgs > 0)