[arch-releng] [RFC] [PATCH] [configs/releng] Replace rc.d/archiso with initscripts hooks.
Gerardo Exequiel Pozzi
vmlinuz386 at yahoo.com.ar
Thu Aug 18 18:15:06 EDT 2011
On 08/17/2011 10:19 PM, Gerardo Exequiel Pozzi wrote:
> In this way:
> * Prepare locales requested by boot param mostly early possible.
> * Setup special console at end of rc.sysinit
>
> Remove unneded include from automated_script (already included by rc.conf)
>
> Signed-off-by: Gerardo Exequiel Pozzi<vmlinuz386 at yahoo.com.ar>
> ---
> configs/releng/root-image/etc/rc.conf | 2 +-
> configs/releng/root-image/etc/rc.d/archiso | 45 --------------------
> .../etc/rc.d/functions.d/automated_script | 2 -
> .../etc/rc.d/functions.d/prepare_locale_gen | 11 +++++
> .../etc/rc.d/functions.d/setup_special_console | 25 +++++++++++
> 5 files changed, 37 insertions(+), 48 deletions(-)
> delete mode 100755 configs/releng/root-image/etc/rc.d/archiso
> create mode 100644 configs/releng/root-image/etc/rc.d/functions.d/prepare_locale_gen
> create mode 100644 configs/releng/root-image/etc/rc.d/functions.d/setup_special_console
>
> diff --git a/configs/releng/root-image/etc/rc.conf b/configs/releng/root-image/etc/rc.conf
> index 42084f6..a3e3d8a 100644
> --- a/configs/releng/root-image/etc/rc.conf
> +++ b/configs/releng/root-image/etc/rc.conf
> @@ -30,4 +30,4 @@ USELVM="no"
>
> HOSTNAME="archiso"
>
> -DAEMONS=(hwclock syslog-ng archiso)
> +DAEMONS=(hwclock syslog-ng)
> diff --git a/configs/releng/root-image/etc/rc.d/archiso b/configs/releng/root-image/etc/rc.d/archiso
> deleted file mode 100755
> index cc930f6..0000000
> --- a/configs/releng/root-image/etc/rc.d/archiso
> +++ /dev/null
> @@ -1,45 +0,0 @@
> -# vim: set ft=sh:
> -. /etc/rc.conf
> -. /etc/rc.d/functions
> -
> -do_locale_gen ()
> -{
> - if [[ ${LOCALE} != "en_US.UTF-8" ]]; then
> - stat_busy "Generating locales..."
> - sed -i "s/#\(${LOCALE/[@.]*}\)/\1/" /etc/locale.gen
> - /usr/sbin/locale-gen> /dev/null
> - stat_done
> - fi
> -}
> -
> -# If an alternate console was specified on the kernel command line,
> -# start agetty on it too.
> -do_special_console()
> -{
> - local cmdline_console
> - if cmdline_console=$(kernel_cmdline console); then
> - stat_busy "Starting agetty on console: ${cmdline_console}"
> - local port options baud rts
> - port=${cmdline_console%%,*}
> - options=${cmdline_console#${port}}
> - options=${options#,}
> - baud=${options%%[neo]*}
> - [[ ${options} =~ r$ ]]&& rts="-h"
> - if ! grep -q "^${port}" /etc/securetty; then
> - echo ${port}>> /etc/securetty
> - fi
> - if ! grep -q "^z0:" /etc/inittab; then
> - echo "z0:2345:respawn:/sbin/agetty -8 -s ${rts} ${baud:-9600} ${port} linux">> /etc/inittab
> - fi
> - /sbin/telinit q
> - stat_done
> - fi
> -}
> -
> -case "$1" in
> - start)
> - do_locale_gen
> - do_special_console
> - ;;
> -esac
> -exit 0
> diff --git a/configs/releng/root-image/etc/rc.d/functions.d/automated_script b/configs/releng/root-image/etc/rc.d/functions.d/automated_script
> index edb8ea3..7a35acb 100644
> --- a/configs/releng/root-image/etc/rc.d/functions.d/automated_script
> +++ b/configs/releng/root-image/etc/rc.d/functions.d/automated_script
> @@ -1,5 +1,3 @@
> -. /etc/archiso/functions
> -
> automated_script ()
> {
> script="$(kernel_cmdline script)"
> diff --git a/configs/releng/root-image/etc/rc.d/functions.d/prepare_locale_gen b/configs/releng/root-image/etc/rc.d/functions.d/prepare_locale_gen
> new file mode 100644
> index 0000000..47ed79d
> --- /dev/null
> +++ b/configs/releng/root-image/etc/rc.d/functions.d/prepare_locale_gen
> @@ -0,0 +1,11 @@
> +prepare_locale_gen ()
> +{
> + if [[ ${LOCALE} != "en_US.UTF-8" ]]; then
> + stat_busy "Generating locales..."
> + sed -i "s/#\(${LOCALE/[@.]*}\)/\1/" /etc/locale.gen
> + /usr/sbin/locale-gen> /dev/null
> + stat_done
> + fi
> +}
> +
> +add_hook sysinit_postmount prepare_locale_gen
> diff --git a/configs/releng/root-image/etc/rc.d/functions.d/setup_special_console b/configs/releng/root-image/etc/rc.d/functions.d/setup_special_console
> new file mode 100644
> index 0000000..93553a6
> --- /dev/null
> +++ b/configs/releng/root-image/etc/rc.d/functions.d/setup_special_console
> @@ -0,0 +1,25 @@
> +# If an alternate console was specified on the kernel command line,
> +# start agetty on it too.
> +setup_special_console()
> +{
> + local cmdline_console
> + if cmdline_console=$(kernel_cmdline console); then
> + stat_busy "Starting agetty on console: ${cmdline_console}"
> + local port options baud rts
> + port=${cmdline_console%%,*}
> + options=${cmdline_console#${port}}
> + options=${options#,}
> + baud=${options%%[neo]*}
> + [[ ${options} =~ r$ ]]&& rts="-h"
> + if ! grep -q "^${port}" /etc/securetty; then
> + echo ${port}>> /etc/securetty
> + fi
> + if ! grep -q "^z0:" /etc/inittab; then
> + echo "z0:2345:respawn:/sbin/agetty -8 -s ${rts} ${baud:-9600} ${port} linux">> /etc/inittab
> + fi
> + /sbin/telinit q
> + stat_done
> + fi
> +}
> +
> +add_hook sysinit_end setup_special_console
Pushed this to master, (changed [[ ${options} =~ r$ ]] to [[ ${options}
== *r ]]) Thanks Dave :P
--
Gerardo Exequiel Pozzi
\cos^2\alpha + \sin^2\alpha = 1
More information about the arch-releng
mailing list