Index: biocLite.R
===================================================================
--- biocLite.R	(revision 57640)
+++ biocLite.R	(working copy)
@@ -90,10 +90,16 @@
         suppressUpdates <- FALSE
     }
     oldPkgs <- getUpdatablePackages(pkgsToUpdate)
+    
     if (nrow(oldPkgs)) {
         pkgList <- paste(oldPkgs[,"Package"], collapse="' '")
-        .message("Updating packages '%s'", pkgList)
-        update.packages(repos=repos, oldPkgs=oldPkgs, ask=ask)
+        .message("The following packages are outdated: '%s'", pkgList)
+        answer <- getAnswer("Would you like to update all/some/none? [a/s/n]: ",
+                            allowed = c("a", "A", "s", "S", "n", "N"))
+        switch(answer,
+               a = update.packages(repos=repos, oldPkgs=oldPkgs, ask=FALSE),
+               s = update.packages(repos=repos, oldPkgs=oldPkgs, ask=TRUE),
+               n = invisible(pkgs))
     }
 
     invisible(pkgs)
@@ -215,4 +221,14 @@
         "weaver",
         "yeastExpData"
     )
-}
\ No newline at end of file
+}
+
+getAnswer <- function(msg, allowed){
+ repeat {
+        cat(msg)
+        answer <- readLines(n = 1)
+        if (answer %in% allowed)
+            break
+    }
+    tolower(answer)
+}
