Mercurial > hgrepos > FreeBSD > ports > sysutils > local-bsdtools
comparison bin/fpkg @ 95:e8c422379abb
Do package checks only for jails with compatible (i.e. "equal") userland versions with the host
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Thu, 12 Sep 2019 09:34:02 +0200 |
| parents | c95726f83f84 |
| children | 252223b1cff6 |
comparison
equal
deleted
inserted
replaced
| 94:c9fb9e920a32 | 95:e8c422379abb |
|---|---|
| 66 | 66 |
| 67 : ${AUDIT_FLAGS:=-Fr} | 67 : ${AUDIT_FLAGS:=-Fr} |
| 68 : ${UPDATE_FLAGS:=} | 68 : ${UPDATE_FLAGS:=} |
| 69 : ${UPGRADE_FLAGS:=} | 69 : ${UPGRADE_FLAGS:=} |
| 70 : ${SIGN:='===> '} | 70 : ${SIGN:='===> '} |
| 71 : ${SKIPSIGN:='-----> '} | |
| 72 | |
| 73 | |
| 74 has_same_userland_version() { | |
| 75 : 'Check whether the jail `_jail` has the same FreeBSD userland version | |
| 76 as the host the the current process runs. | |
| 77 | |
| 78 Args: | |
| 79 _jail: the running jail to check for | |
| 80 | |
| 81 Returns: | |
| 82 0 if the userland versions match, 1 otherwise | |
| 83 | |
| 84 ' | |
| 85 local _jail _host_version _jail_version | |
| 86 | |
| 87 _jail="$1" | |
| 88 | |
| 89 _host_version=$(/bin/freebsd-version -u) || exit 1 | |
| 90 _jail_version=$(jexec -l "${_jail}" /bin/freebsd-version -u) || exit 1 | |
| 91 if [ "${_host_version%%-*}" = "${_jail_version%%-*}" ]; then | |
| 92 return 0 | |
| 93 fi | |
| 94 return 1 | |
| 95 } | |
| 71 | 96 |
| 72 | 97 |
| 73 command_audit() { | 98 command_audit() { |
| 74 : 'Do a local `pkg audit -Fr` and also for all running jails | 99 : 'Do a local `pkg audit -Fr` and also for all running jails |
| 75 | 100 |
| 77 echo "${SIGN}LOCALHOST:" | 102 echo "${SIGN}LOCALHOST:" |
| 78 pkg audit ${AUDIT_FLAGS} | 103 pkg audit ${AUDIT_FLAGS} |
| 79 for _j in $(jls -N | awk '{if(NR>1)print $1}' | sort); do | 104 for _j in $(jls -N | awk '{if(NR>1)print $1}' | sort); do |
| 80 echo "" | 105 echo "" |
| 81 echo "${SIGN}JAIL: ${_j}" | 106 echo "${SIGN}JAIL: ${_j}" |
| 82 pkg -j "${_j}" audit ${AUDIT_FLAGS} | 107 if has_same_userland_version "${_j}"; then |
| 108 pkg -j "${_j}" audit ${AUDIT_FLAGS} | |
| 109 else | |
| 110 echo "${SKIPSIGN}SKIPPED because of different userland" | |
| 111 fi | |
| 83 done | 112 done |
| 84 } | 113 } |
| 85 | 114 |
| 86 | 115 |
| 87 command_update() { | 116 command_update() { |
| 91 echo "${SIGN}HOST:" | 120 echo "${SIGN}HOST:" |
| 92 pkg update ${UPDATE_FLAGS} | 121 pkg update ${UPDATE_FLAGS} |
| 93 for _j in $(jls -N | awk '{if(NR>1)print $1}' | sort); do | 122 for _j in $(jls -N | awk '{if(NR>1)print $1}' | sort); do |
| 94 echo "" | 123 echo "" |
| 95 echo "${SIGN}JAIL: ${_j}" | 124 echo "${SIGN}JAIL: ${_j}" |
| 96 pkg -j "${_j}" update ${UPDATE_FLAGS} | 125 if has_same_userland_version "${_j}"; then |
| 126 pkg -j "${_j}" update ${UPDATE_FLAGS} | |
| 127 else | |
| 128 echo "${SKIPSIGN}SKIPPED because of different userland" | |
| 129 fi | |
| 97 done | 130 done |
| 98 } | 131 } |
| 99 | 132 |
| 100 | 133 |
| 101 command_upgrade() { | 134 command_upgrade() { |
| 105 echo "${SIGN}HOST:" | 138 echo "${SIGN}HOST:" |
| 106 pkg upgrade ${UPGRADE_FLAGS} | 139 pkg upgrade ${UPGRADE_FLAGS} |
| 107 for _j in $(jls -N | awk '{if(NR>1)print $1}' | sort); do | 140 for _j in $(jls -N | awk '{if(NR>1)print $1}' | sort); do |
| 108 echo "" | 141 echo "" |
| 109 echo "${SIGN}JAIL: ${_j}" | 142 echo "${SIGN}JAIL: ${_j}" |
| 110 pkg -j "${_j}" upgrade ${UPGRADE_FLAGS} | 143 if has_same_userland_version "${_j}"; then |
| 144 pkg -j "${_j}" upgrade ${UPGRADE_FLAGS} | |
| 145 else | |
| 146 echo "${SKIPSIGN}SKIPPED because of different userland" | |
| 147 fi | |
| 111 done | 148 done |
| 112 } | 149 } |
| 113 | 150 |
| 114 | 151 |
| 115 command_upgrade_check() { | 152 command_upgrade_check() { |
| 119 echo "${SIGN}HOST:" | 156 echo "${SIGN}HOST:" |
| 120 pkg upgrade -n ${UPGRADE_FLAGS} | 157 pkg upgrade -n ${UPGRADE_FLAGS} |
| 121 for _j in $(jls -N | awk '{if(NR>1)print $1}' | sort); do | 158 for _j in $(jls -N | awk '{if(NR>1)print $1}' | sort); do |
| 122 echo "" | 159 echo "" |
| 123 echo "${SIGN}JAIL: ${_j}" | 160 echo "${SIGN}JAIL: ${_j}" |
| 124 pkg -j "${_j}" upgrade -n ${UPGRADE_FLAGS} | 161 if has_same_userland_version "${_j}"; then |
| 162 pkg -j "${_j}" upgrade -n ${UPGRADE_FLAGS} | |
| 163 else | |
| 164 echo "${SKIPSIGN}SKIPPED because of different userland" | |
| 165 fi | |
| 125 done | 166 done |
| 126 } | 167 } |
| 127 | 168 |
| 128 | 169 |
| 129 # | 170 # |
