Note: You are viewing an old version of this page. View the current version.

Differences between version 2 and previous revision of fix-extension-order.sh.

Other diffs: Previous Major Revision, Previous Author

Newer page: version 2 Last edited on Friday, 10 July 2009 5:26:23 by CyberLeo Revert
Older page: version 1 Last edited on Saturday, 4 July 2009 19:05:34 by CyberLeo Revert
@@ -22,9 +22,9 @@
 done 
 filter_regexp="$(echo "${filter_regexp}" | /usr/bin/sed -e 's/|$/)/')" 
 echo -e "\n" 
  
-/usr/bin/egrep -v "${filter_regexp}" "${extini}" > "${exttmp}" 
+/usr/bin/egrep -v "${filter_regexp}" "${extini}" | sort | uniq > "${exttmp}" 
  
 for ext in ${extlist} 
 do 
  var="$(eval echo \${HAS_${ext}})" 

version 2

#!/bin/sh

diff=/usr/bin/diff
[ -x "/usr/local/bin/colordiff" ] && diff="/usr/local/bin/colordiff"

extlist="spl sqlite recode mysqli mysql imap sockets pspell xml"
extini="/usr/local/etc/php/extensions.ini"
extold="${extini}.old"
exttmp="$(mktemp -t extensions.ini)"
trap "rm -f '${exttmp}'" exit hup int term kill

echo -n "
=>"
filter_regexp="("
for ext in ${extlist}
do
  var=HAS_${ext}
  eval $var=$(/usr/bin/egrep -c "^extension=${ext}.so$" ${extini})
  [ "$(eval echo "\${$var}")" -gt 0 ] && echo -n " ${ext}"
  filter_regexp="${filter_regexp}^extension=${ext}.so$|"
done
filter_regexp="$(echo "${filter_regexp}" | /usr/bin/sed -e 's/|$/)/')"
echo -e "\n"

/usr/bin/egrep -v "${filter_regexp}" "${extini}" | sort | uniq > "${exttmp}"

for ext in ${extlist}
do
  var="$(eval echo \${HAS_${ext}})"
  [ "${var}" -gt 0 ] && echo "extension=${ext}.so" >> "${exttmp}"
done

if /usr/bin/cmp -s "${exttmp}" "${extini}"
then
  echo "No changes."
else
  /bin/cp -v "${extini}" "${extold}"
  /bin/cp -v "${exttmp}" "${extini}"
  ${diff} -ur "${extold}" "${extini}" | less -R
fi