Skip to content

Commit fd72a18

Browse files
authored
Merge pull request #605 from furlongm/module-fixes
fix module parsing
2 parents 920fcf9 + 7aef4ac commit fd72a18

File tree

1 file changed

+28
-24
lines changed

1 file changed

+28
-24
lines changed

client/patchman-client

Lines changed: 28 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,26 @@ check_for_modularity() {
189189
fi
190190
}
191191

192+
parse_module() {
193+
module_info=$(echo -e ${1})
194+
module_arch=$(echo "${module_info}" | grep ^Architecture | cut -d : -f 2 | awk '{$1=$1};1')
195+
module_repo=$(echo "${module_info}" | grep ^Repo | cut -d : -f 2 | awk '{$1=$1};1')
196+
module_stream=$(echo "${module_info}" | grep ^Stream | cut -d : -f 2 | sed -e 's/ \[.*//g' | awk '{$1=$1};1')
197+
module_version=$(echo "${module_info}" | grep ^Version | cut -d : -f 2 | awk '{$1=$1};1')
198+
module_context=$(echo "${module_info}" | grep ^Context | cut -d : -f 2 | awk '{$1=$1};1')
199+
module_packages=$(echo "${module_info}" | sed -n '/Artifacts/,$p' | sed -e 's/Artifacts //' | sed -e 's/^: *//g' | grep -v ^$)
200+
IFS=${NL_IFS}
201+
module_package_str=""
202+
for package in ${module_packages} ; do
203+
module_package_str="${module_package_str} '${package}'"
204+
done
205+
IFS=${FULL_IFS}
206+
if [ ! -z ${CPE_NAME} ] ; then
207+
module_repo="${CPE_NAME}-${module_repo}"
208+
fi
209+
echo "'${module}' '${module_stream}' '${module_version}' '${module_context}' '${module_arch}' '${module_repo}'${module_package_str}" >> ${tmpfile_mod}
210+
}
211+
192212
get_enabled_modules() {
193213
if ${verbose} ; then
194214
echo 'Finding enabled yum modules...'
@@ -197,37 +217,21 @@ get_enabled_modules() {
197217
enabled_modules=$(yum module list --enabled \
198218
| grep "\[e\]" \
199219
| grep -v ^Hint \
200-
| awk {'print $1'})
220+
| awk '{print $1}')
201221

202222
for module in ${enabled_modules} ; do
203223
modules_info=$(yum module info ${module} | grep -v ^Hint)
204224
unset x
205225
while read -r line ; do
206-
if [ -z "$line" ] ; then
207-
echo -e ${x} | grep -q -E "^Stream.*\[e\]" && break || unset x
226+
if [ -z "${line}" ] ; then
227+
echo -e "${x}" | grep -q -E "^Stream.*\[e\]" && parse_module "${x}"
228+
unset x
208229
else
209-
x="$x$line\n"
230+
x="${x}${line}\n"
210231
fi
211-
done < <(echo -n "${modules_info}")
212-
module_info=$(echo -e ${x})
213-
module_arch=$(echo "${module_info}" | grep ^Architecture | cut -d : -f 2 | awk '{$1=$1};1')
214-
module_repo=$(echo "${module_info}" | grep ^Repo | cut -d : -f 2 | awk '{$1=$1};1')
215-
module_stream=$(echo "${module_info}" | grep ^Stream | cut -d : -f 2 | sed -e 's/ \[.*//g' | awk '{$1=$1};1')
216-
module_version=$(echo "${module_info}" | grep ^Version | cut -d : -f 2 | awk '{$1=$1};1')
217-
module_context=$(echo "${module_info}" | grep ^Context | cut -d : -f 2 | awk '{$1=$1};1')
218-
module_packages=$(echo "${module_info}" | sed -n '/Artifacts/,$p' | sed -e 's/.* *: //g' | grep -v ^$)
219-
220-
IFS=${NL_IFS}
221-
module_package_str=""
222-
for package in ${module_packages} ; do
223-
module_package_str="${module_package_str} '${package}'"
224-
done
225-
IFS=${FULL_IFS}
226-
echo "'${module}' '${module_stream}' '${module_version}' '${module_context}' '${module_arch}' '${module_repo}' ${module_package_str}" >> ${tmpfile_mod}
232+
done < <(echo "${modules_info}")
227233
done
228-
if [ ! -z ${CPE_NAME} ] ; then
229-
sed -i -e "s#${module_repo}#${CPE_NAME}-${module_repo}#g" "${tmpfile_mod}"
230-
fi
234+
231235
if ${debug} ; then
232236
cat "${tmpfile_mod}"
233237
fi
@@ -239,7 +243,7 @@ get_installed_rpm_packages() {
239243
echo 'Finding installed rpms...'
240244
fi
241245

242-
rpm -qa --queryformat "'%{NAME}' '%{EPOCH}' '%{version}' '%{RELEASE}' '%{ARCH}' 'rpm'\n" 2>/dev/null \
246+
rpm -qa --queryformat "'%{NAME}' '%{EPOCH}' '%{VERSION}' '%{RELEASE}' '%{ARCH}' 'rpm'\n" 2>/dev/null \
243247
| sed -e 's/(none)//g' \
244248
| sed -e 's/\+/%2b/g' >> "${tmpfile_pkg}"
245249

0 commit comments

Comments
 (0)