[arch-releng] [PATCH 5/5] [configs/releng] Rework automated_script() from initscript hooks to /root/.zlogin

Charles ce at vejnar.org
Wed Sep 19 11:55:38 EDT 2012


Le 17/09/2012 14:46, Gerardo Exequiel Pozzi a écrit :
> On 09/17/2012 09:38 AM, Charles wrote:
>> Le 17/09/2012 14:26, Gerardo Exequiel Pozzi a écrit :
>>> On 09/17/2012 09:22 AM, Gerardo Exequiel Pozzi wrote:
>>>> On 09/17/2012 06:42 AM, Charles wrote:
>>>>> Le 17/09/2012 01:12, Gerardo Exequiel Pozzi a écrit :
>>>>>> On 09/16/2012 06:01 PM, Charles wrote:
>>>>>>> Le 12/09/2012 09:10, Gerardo Exequiel Pozzi a écrit :
>>>>>>>> Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386 at yahoo.com.ar>
>>>>>>>> ---
>>>>>>>>   .../releng/root-image/root/.automated_script.sh | 34 
>>>>>>>> ++++++++++++++++++++++
>>>>>>>>   configs/releng/root-image/root/.zlogin | 1 +
>>>>>>>>   2 files changed, 35 insertions(+)
>>>>>>>>   create mode 100755 
>>>>>>>> configs/releng/root-image/root/.automated_script.sh
>>>>>>>>   create mode 100644 configs/releng/root-image/root/.zlogin
>>>>>>>>
>>>>>>>> diff --git 
>>>>>>>> a/configs/releng/root-image/root/.automated_script.sh 
>>>>>>>> b/configs/releng/root-image/root/.automated_script.sh
>>>>>>>> new file mode 100755
>>>>>>>> index 0000000..859452f
>>>>>>>> --- /dev/null
>>>>>>>> +++ b/configs/releng/root-image/root/.automated_script.sh
>>>>>>>> @@ -0,0 +1,34 @@
>>>>>>>> +#!/bin/bash
>>>>>>>> +
>>>>>>>> +script_cmdline ()
>>>>>>>> +{
>>>>>>>> +    local param
>>>>>>>> +    for param in $(< /proc/cmdline); do
>>>>>>>> +        case "${param}" in
>>>>>>>> +            script=*) echo "${param##*=}" ; return 0 ;;
>>>>>>>> +        esac
>>>>>>>> +    done
>>>>>>>> +}
>>>>>>>> +
>>>>>>>> +automated_script ()
>>>>>>>> +{
>>>>>>>> +    local script rt
>>>>>>>> +    script="$(script_cmdline)"
>>>>>>>> +    if [[ -n "${script}" ]]; then
>>>>>>>> +        if [[ "${script}" =~ ^http:// || "${script}" =~ 
>>>>>>>> ^ftp:// ]]; then
>>>>>>>> +            wget "${script}" -q -O /tmp/startup_script >/dev/null
>>>>>>>> +            rt=$?
>>>>>>>> +        else
>>>>>>>> +            cp "${script}" /tmp/startup_script
>>>>>>>> +            rt=$?
>>>>>>>> +        fi
>>>>>>>> +        if [[ ${rt} -eq 0 ]]; then
>>>>>>>> +            chmod +x /tmp/startup_script
>>>>>>>> +            /tmp/startup_script
>>>>>>>> +        fi
>>>>>>>> +    fi
>>>>>>>> +}
>>>>>>>> +
>>>>>>>> +if [[ $(tty) == "/dev/tty1" ]]; then
>>>>>>>> +    automated_script
>>>>>>>> +fi
>>>>>>>> diff --git a/configs/releng/root-image/root/.zlogin 
>>>>>>>> b/configs/releng/root-image/root/.zlogin
>>>>>>>> new file mode 100644
>>>>>>>> index 0000000..f598e43
>>>>>>>> --- /dev/null
>>>>>>>> +++ b/configs/releng/root-image/root/.zlogin
>>>>>>>> @@ -0,0 +1 @@
>>>>>>>> +~/.automated_script.sh
>>>>>>> Hi,
>>>>>>>
>>>>>>> Two problems:
>>>>>>> - when the script is run, the network is not ready, making 
>>>>>>> automated_script to fail. Adding the parameter 
>>>>>>> "--retry-connrefused" to wget will fixed it.
>>>>>> "network ready" issues is a thing that should be fixed in some 
>>>>>> way. For now adding such switch seems to be fine ;)
>>>>>>> - the hook /etc/rc.d/functions.d/automated_script has not been 
>>>>>>> removed.
>>>>>> Is removed, ensure that you are working on clean enviroment 
>>>>>> (remove files from /usr/share/archiso, etc)
>>>>>>
>>>>>> rm -r /usr/lib/initcpio/archiso_* 
>>>>>> /usr/lib/initcpio/hooks/archiso* 
>>>>>> /usr/lib/initcpio/install/archiso* /usr/share/doc/archiso 
>>>>>> /usr/share/archiso /usr/sbin/mkarchiso
>>>>>>>
>>>>>>> Thanks for trying to make this function work. Very useful to me !
>>>>>> Thanks you for testing.
>>>>>>>
>>>>>>> Regards,
>>>>>>>
>>>>>>> Charles
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>> Hi Gerardo,
>>>>>
>>>>> > Is removed, ensure that you are working on clean enviroment 
>>>>> (remove files from /usr/share/archiso, etc)
>>>>>
>>>>> I don't get that. the file 
>>>>> "http://projects.archlinux.org/archiso.git/tree/configs/releng/root-image/etc/rc.d/functions.d/automated_script" 
>>>>> is still there, isn't it ? or is there another patch ?
>>>>>
>>>>> Charles
>>>>>
>>>>>
>>>>
>>>> These RFC patchs are not merged in master and main repo. Only in my 
>>>> repo, inside experimental branch.
>>>>
>>>> https://github.com/djgera/archiso/compare/master...experimental
>>>>
>>>>
>>>>
>>> When you tested this, how do you do? Only applied this patch over 
>>> master?
>>>
>> Yes
>>
> Oooh thats wrong, you need to apply all patches, or just use my 
> experimetal branch. Otherwise non-native systemd things will be used.
>
> I guess this was your problem about no network available... If you 
> have some time, you can build again but using "experimental" branch, 
> and removing --retry-connrefused, at least in my case works, when I 
> made this patch.
>
> Thanks.
>
>
Sorry. I build a new image from your experimental branch. It's working.

The only weird thing are the ton of messages at reboot, which you 
already mentioned.

Thanks

Charles


More information about the arch-releng mailing list