[Spacewalk-list] Code Snippet Question

Josh Preston JoshPreston at dswinc.com
Mon Apr 16 13:29:11 UTC 2012


That should work swimmingly!

-----Original Message-----
From: spacewalk-list-bounces at redhat.com [mailto:spacewalk-list-bounces at redhat.com] On Behalf Of Wojtak, Greg (Superfly)
Sent: Friday, April 13, 2012 2:50 PM
To: spacewalk-list at redhat.com
Subject: Re: [Spacewalk-list] Code Snippet Question

Thanks for the clarification.  Basically all I'm trying to do is run insert a shell case statement using the ksmeta variable as a switch.  It sounds like I can do something like

ENV = $getVar("$env", "")
#raw
switch $ENV in
...
#endraw



On 2012-04-13 2:35 PM, "Josh Preston" <JoshPreston at dswinc.com> wrote:

>Greg,
>
>You won't be able to use ksmeta data inside of a #raw ... #end raw 
>block the way you are trying to...  The #raw block tells cobbler not to 
>process $variables ... use it mainly when there are tons of shell 
>variables that cobbler should not process.  I'd recommend limiting the 
>use of #raw as much as possible and when you do have to use it, use it 
>to avoid a lot of shell variable escaping.  It might help to think of 
>cobbler as the pre/post script GENERATOR, not the shell interpreter.
>
>For example:
>
>    #raw
>    echo $test
>    #end raw
>
>is equivalent to:
>
>    echo \$test
>
>Neither of which cobbler would process and would end up as:
>
>    echo $test
>
>in the kickstart script / snippet
>
>--OR --
>
>You could do something like:
>
>    env = $getVar("$env", "")
>    #raw
>    
>    ...
>    echo $env
>    ...
>    
>    #end raw
>
>This will declare the variable for the shell, so when your script it 
>running, $env is set and cobbler didn't need to do the substitution.
>
>---
>
>For reference, I use this formula in my snippets so that I can use 
>ksmeta, command line options or cobbler system data (notice the minimal 
>use of #raw):
>
># 1. if the system's hostname is not set or equals 
>localhost.localdomain or it's set to ip address
>#   a. configure the hostname using the kernel command line options
>#   b. configure the hostname using cobbler system data
># 2. create our valid /etc/hosts entries
>
>#set $HOSTNAME = $getVar("$hostname", "$hostname") #set $GATEWAY = 
>$getVar("$gateway", "$gateway") #set $IP = $getVar("$ip", "$ip")
>
>HOSTNAME="$HOSTNAME"
>GATEWAY="$GATEWAY"
>IP="$IP"
>
>#if $getVar("$system_name", "") == ""
>    #raw
>for I in $(cat /proc/cmdline); do
>    case "$I" in *=*)
>        eval $I; export $I;
>    esac;
>done
>    #end raw
>#end if
>
>
>Josh Preston
>Shoe Lover & Unix Admin
>
>_______________________________________________
>Spacewalk-list mailing list
>Spacewalk-list at redhat.com
>https://www.redhat.com/mailman/listinfo/spacewalk-list


_______________________________________________
Spacewalk-list mailing list
Spacewalk-list at redhat.com
https://www.redhat.com/mailman/listinfo/spacewalk-list




More information about the Spacewalk-list mailing list