-%post
-umask 022
-if [ ! -f /etc/shells ]; then
- echo "/bin/bash" > /etc/shells
- echo "/bin/rbash" >> /etc/shells
-else
- if ! grep -q '^/bin/bash$' /etc/shells; then
- echo "/bin/bash" >> /etc/shells
- fi
- if ! grep -q '^/bin/rbash$' /etc/shells; then
- echo "/bin/rbash" >> /etc/shells
- fi
-fi
-
-[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
-
-%preun
-if [ "$1" = "0" ]; then
- umask 022
- grep -v /bin/bash /etc/shells | grep -v /bin/rbash > /etc/shells.new
- mv -f /etc/shells.new /etc/shells
-fi
-
-%post static
-umask 022
-if [ ! -f /etc/shells ]; then
- echo "/bin/bash.static" > /etc/shells
-else
- if ! grep -q '^/bin/bash.static$' /etc/shells; then
- echo "/bin/bash.static" >> /etc/shells
- fi
-fi
-
-%preun static
-if [ "$1" = "0" ]; then
- umask 022
- grep -v /bin/bash.static /etc/shells > /etc/shells.new
- mv -f /etc/shells.new /etc/shells
-fi
-
-%postun
-[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
-
-%files
+%post -p <lua>
+%lua_add_etc_shells /bin/bash /bin/rbash
+os.execute("/usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1")
+
+%preun -p <lua>
+if arg[2] == 0 then
+ %lua_remove_etc_shells /bin/bash /bin/rbash
+end
+
+%postun -p /sbin/postshell
+-/usr/sbin/fix-info-dir -c %{_infodir}
+
+%post static -p <lua>
+%lua_add_etc_shells /bin/bash.static
+
+%preun static -p <lua>
+if arg[2] == 0 then
+ %lua_remove_etc_shells /bin/bash.static
+end
+
+%files -f %{name}.lang