Jails management
[fbsd-stable-mgmt.git] / portupgrade.sh
diff --git a/portupgrade.sh b/portupgrade.sh
new file mode 100755 (executable)
index 0000000..bc766e4
--- /dev/null
@@ -0,0 +1,61 @@
+#!/bin/sh
+
+all_jails=`jls jid`
+DO_CLEAN=""
+DO_DIST=""
+
+do_all_jails(){
+
+       echo '---------------------------------------'
+       echo ":: Host ::"
+       echo
+       pkg upgrade
+       echo
+       echo Cleaning host 
+       echo
+       [ -n "${DO_CLEAN}" ] && pkg ${DO_CLEAN}
+       [ -n "${DO_CLEAN}" ] && pkg ${DO_DIST}
+       for j in ${all_jails}
+       do
+               echo '---------------------------------------'
+               echo ":: jail `jls -j ${j} name` [ ${j} ] ::"
+               echo ''
+
+               pkg -j ${j} upgrade
+               echo
+               echo Cleaning 
+               echo
+               [ -n "${DO_CLEAN}" ] && pkg -j ${j} ${DO_CLEAN}
+               echo
+               echo Cleanup distfiles
+               echo
+               [ -n "${DO_CLEAN}" ] && pkg -j ${j} ${DO_DIST}
+       done
+}
+
+echo 
+read -r -p "Would you like to clean up (autoremove) ports ? [Y/n] " yn
+echo 
+
+case "${yn}" in
+       [Yy][eE][sS]|[yY])
+               DO_CLEAN="autoremove"
+               ;;
+       *) 
+               ;;
+esac
+
+
+echo 
+read -r -p "Would you like to remove distfiles ? [Y/n] " yn
+echo 
+
+case "${yn}" in
+       [Yy][eE][sS]|[yY])
+               DO_DIST="clean -a"
+               ;;
+       *) 
+               ;;
+esac
+echo removing distfiles
+do_all_jails