take a snapshot before upgrading
[fbsd-stable-mgmt.git] / portupgrade.sh
1 #!/bin/sh
2
3 all_jails=`jls jid`
4
5 DO_CLEAN=""
6 DO_DIST=""
7
8 do_snap()
9 {
10         zfs snap -r zroot/JAILS/master@up || exit 0
11 }
12
13 do_all_jails(){
14
15         echo '---------------------------------------'
16         echo ":: Host ::"
17         echo
18         pkg upgrade
19         echo
20         echo Cleaning host 
21         echo
22         [ -n "${DO_CLEAN}" ] && pkg ${DO_CLEAN}
23         [ -n "${DO_DIST}" ] && pkg ${DO_DIST}
24         echo '---------------------------------------'
25         for j in ${all_jails}
26         do
27                 echo
28                 echo '---------------------------------------'
29                 echo ":: jail `jls -j ${j} name` [ ${j} ] ::"
30                 echo ''
31
32                 pkg -j ${j} upgrade
33                 echo
34                 echo Cleaning 
35                 echo
36                 [ -n "${DO_CLEAN}" ] && pkg -j ${j} ${DO_CLEAN}
37                 echo
38                 echo Cleanup distfiles
39                 echo
40                 [ -n "${DO_DIST}" ] && pkg -j ${j} ${DO_DIST}
41                 echo '---------------------------------------'
42         done
43 }
44
45 echo 
46 read -r -p "Would you like to clean up (autoremove) ports ? [Y/n] " yn
47 echo 
48
49 case "${yn}" in
50         [Yy][eE][sS]|[yY])
51                 DO_CLEAN="autoremove"
52                 ;;
53         *) 
54                 ;;
55 esac
56
57
58 echo 
59 read -r -p "Would you like to remove distfiles ? [Y/n] " yn
60 echo 
61
62 case "${yn}" in
63         [Yy][eE][sS]|[yY])
64                 DO_DIST="clean -a -y"
65                 ;;
66         *) 
67                 ;;
68 esac
69
70 zfs list -H -t snap -r zroot/JAILS/master@up || do_snap
71
72 do_all_jails