diff --git a/bin/update-gitlab b/bin/update-gitlab
index 35cf5106b8c8df3851e7b1d07fdf312d1fbeef57..4295cce09e31be1466e7f5907344100727339859 100755
--- a/bin/update-gitlab
+++ b/bin/update-gitlab
@@ -61,6 +61,7 @@ EOF
 # Parse command options
 flag_dry_run=0
 flag_verbose=0
+flag_quiet=0
 flag_exit_code=0
 while [[ $# -gt 0 ]]; do
     case "$1" in
@@ -70,6 +71,9 @@ while [[ $# -gt 0 ]]; do
         "-v" | "--verbose")
             flag_verbose=1
             ;;
+        "-q" | "--quiet")
+            flag_quiet=1
+            ;;
         "-c" | "--code")
             flag_exit_code=1
             ;;
@@ -86,15 +90,23 @@ done
 
 # Make sure we're running as root
 if [ $(id -u) -ne 0 ]; then
-    echo "This script must be run as root or with sudo"
-    exit 1
+    error_exit "This script must be run as root or with sudo"
+fi
+
+# Make sure we're not quiet and verbose at the same time
+if [ ${flag_verbose} -eq 1 ] && [ ${flag_quiet} -eq 1 ]; then
+    error_exit "Using --verbose and --quiet options together is not supported"
 fi
 
 # Update Apt-Cache if older than 15 minutes
 if [ "$[$(date +%s) - $(stat -c %Z /var/lib/apt/periodic/update-success-stamp)]" -ge 900 ]; then
-    echo "APT cache is stale; updating..."
+    if [ ${flag_quiet} -eq 0 ]; then
+        echo "APT cache is stale; updating..."
+    fi
     apt-get -qq update
-    echo
+    if [ ${flag_quiet} -eq 0 ]; then
+        echo
+    fi
 fi
 
 latest=`apt-cache policy ${package} | sed -n 's/  Candidate: \([0-9]\+\.[0-9]\+\.[^ ]\+\).*/\1/p'`
@@ -110,18 +122,24 @@ if [ ${flag_verbose} -eq 1 ]; then
 fi
 
 if [ "${installed}" == "${target}" ]; then
-    echo "Most recent patch version (${target}) of last minor version is already installed."
+    if [ ${flag_quiet} -eq 0 ]; then
+        echo "Most recent patch version (${target}) of last minor version is already installed."
+    fi
     if [ ${flag_exit_code} -eq 1 ]; then
         exit 64
     fi
 elif [ "${target}" != `echo -e "${installed}\n${target}" | sort -Vr | sed -n 1p` ]; then
-    echo "Installed version (${installed}) is newer than the target version (${target}.*). Not upgrading."
+    if [ ${flag_quiet} -eq 0 ]; then
+        echo "Installed version (${installed}) is newer than the target version (${target}.*). Not upgrading."
+    fi
     if [ ${flag_exit_code} -eq 1 ]; then
         exit 64
     fi
 else
     if [ ${flag_dry_run} -eq 0 ]; then
-        echo "Upgrading from ${installed} to ${target}"
+        if [ ${flag_quiet} -eq 0 ]; then
+            echo "Upgrading from ${installed} to ${target}"
+        fi
         apt-get install ${package}=${target}
     else
         echo "Would upgrade from ${installed} to ${target}"