mbox

[v2] Improvement of backup iso script

Message ID 1483370228-1118-1-git-send-email-jonatan.schlag@ipfire.org
State Accepted
Commit 391560854f64ad2385adb3ff25dbbcec0ff92668
Headers

Message

Jonatan Schlag Jan. 3, 2017, 2:17 a.m. UTC
  The backup iso script did not check the arch of the host. On x86_64 host
the wrong iso was downloaded.

Furthermore, there were some if clauses which could cause trouble which
I also tried to improve.
(For example: -e is valid if we have a directory or a file, but we want
to check for a file only )

Fixes: 11258

Signed-off-by: Jonatan Schlag <jonatan.schlag@ipfire.org>
---
 src/scripts/backupiso | 24 ++++++++++++++++++++----
 1 file changed, 20 insertions(+), 4 deletions(-)
  

Comments

Michael Tremer Jan. 3, 2017, 6:17 a.m. UTC | #1
Thank you very much for your fixes. Merged.

-Michael

On Mon, 2017-01-02 at 16:17 +0100, Jonatan Schlag wrote:
> The backup iso script did not check the arch of the host. On x86_64 host
> the wrong iso was downloaded.
> 
> Furthermore, there were some if clauses which could cause trouble which
> I also tried to improve.
> (For example: -e is valid if we have a directory or a file, but we want
> to check for a file only )
> 
> Fixes: 11258
> 
> Signed-off-by: Jonatan Schlag <jonatan.schlag@ipfire.org>
> ---
>  src/scripts/backupiso | 24 ++++++++++++++++++++----
>  1 file changed, 20 insertions(+), 4 deletions(-)
> 
> diff --git a/src/scripts/backupiso b/src/scripts/backupiso
> index 014e8e9..1a682d0 100644
> --- a/src/scripts/backupiso
> +++ b/src/scripts/backupiso
> @@ -1,9 +1,25 @@
>  #!/bin/sh
> +arch=$(uname -m)
> +
> +case $arch in
> +	"i?86")
> +		arch="i586"
> +		echo "Your arch is $arch"
> +		;;
> +	"x86_64")
> +		arch="x86_64"
> +		echo "Your arch is $arch"
> +		;;
> +	*)
> +		echo "Arch is not supported"
> +		exit 1
> +		;;
> +esac
>  
>  COREVER=$(cat /opt/pakfire/db/core/mine)
>  # FIXME: edit this lines before release
>  URL="http://download.ipfire.org/releases/ipfire-2.x/2.19-core$COREVER/"
> -ISO="ipfire-2.19.i586-full-core$COREVER.iso"
> +ISO="ipfire-2.19.$arch-full-core$COREVER.iso"
>  
>  if [ -z $1 ]; then
>  	echo usage: $0 backup-file
> @@ -15,7 +31,7 @@ TS=$1
>  mkdir -p /var/tmp/backupiso
>  cd /var/tmp/backupiso
>  
> -if [ ! -e ${ISO} ]
> +if [ ! -f ${ISO} ]
>  then
>  	echo "Fetching ${URL}${ISO}"
>  	wget --quiet -c ${URL}${ISO}
> @@ -26,7 +42,7 @@ wget --quiet -O ${ISO}.md5 ${URL}${ISO}.md5
>  
>  echo "Checking md5 of ${ISO}"
>  md5sum --status -c ${ISO}.md5
> -if [ $? -eq 0 -o $? -eq 24 ]
> +if [ $? -eq 0 ] || [ $? -eq 24 ]
>  then
>  	echo "md5 is OK"
>  else
> @@ -35,7 +51,7 @@ else
>  	wget --quiet -O ${ISO} ${URL}${ISO}
>  	echo "Checking again md5 of ${ISO}"
>  	md5sum --status -c ${ISO}.md5
> -	if [ $? -eq 0 -o $? -eq 24 ]
> +	if [ $? -eq 0 ] || [ $? -eq 24 ]
>  	then
>  		echo "md5 is OK"
>  	else
  
Matthias Fischer Jan. 3, 2017, 6:53 a.m. UTC | #2
Hi,

Tested. But it won't download anything. The scripts creates the IPF-file
and stops.

Old script creates the IPF-file:

"Backup von 20170102-2039.ipf"

Downloads the correct ISO:

"Backup von ipfire-2.19.i586-full-core108.iso"

...and works as usual:

"Backup von ipfire-2.19.i586-full-core108-20170102-2039.iso"

For today, I haven't got the time to look any further - will try again
tomorrow. Perhaps something wrong with...

..."
case $arch in
   "i?86")
..."

"uname -m" says => "i686"

Best,
Matthias

On 02.01.2017 20:17, Michael Tremer wrote:
> Thank you very much for your fixes. Merged.
> 
> -Michael
> 
> On Mon, 2017-01-02 at 16:17 +0100, Jonatan Schlag wrote:
>> The backup iso script did not check the arch of the host. On x86_64 host
>> the wrong iso was downloaded.
>> 
>> Furthermore, there were some if clauses which could cause trouble which
>> I also tried to improve.
>> (For example: -e is valid if we have a directory or a file, but we want
>> to check for a file only )
>> 
>> Fixes: 11258
>> 
>> Signed-off-by: Jonatan Schlag <jonatan.schlag@ipfire.org>
>> ---
>>  src/scripts/backupiso | 24 ++++++++++++++++++++----
>>  1 file changed, 20 insertions(+), 4 deletions(-)
>> 
>> diff --git a/src/scripts/backupiso b/src/scripts/backupiso
>> index 014e8e9..1a682d0 100644
>> --- a/src/scripts/backupiso
>> +++ b/src/scripts/backupiso
>> @@ -1,9 +1,25 @@
>>  #!/bin/sh
>> +arch=$(uname -m)
>> +
>> +case $arch in
>> +	"i?86")
>> +		arch="i586"
>> +		echo "Your arch is $arch"
>> +		;;
>> +	"x86_64")
>> +		arch="x86_64"
>> +		echo "Your arch is $arch"
>> +		;;
>> +	*)
>> +		echo "Arch is not supported"
>> +		exit 1
>> +		;;
>> +esac
>>  
>>  COREVER=$(cat /opt/pakfire/db/core/mine)
>>  # FIXME: edit this lines before release
>>  URL="http://download.ipfire.org/releases/ipfire-2.x/2.19-core$COREVER/"
>> -ISO="ipfire-2.19.i586-full-core$COREVER.iso"
>> +ISO="ipfire-2.19.$arch-full-core$COREVER.iso"
>>  
>>  if [ -z $1 ]; then
>>  	echo usage: $0 backup-file
>> @@ -15,7 +31,7 @@ TS=$1
>>  mkdir -p /var/tmp/backupiso
>>  cd /var/tmp/backupiso
>>  
>> -if [ ! -e ${ISO} ]
>> +if [ ! -f ${ISO} ]
>>  then
>>  	echo "Fetching ${URL}${ISO}"
>>  	wget --quiet -c ${URL}${ISO}
>> @@ -26,7 +42,7 @@ wget --quiet -O ${ISO}.md5 ${URL}${ISO}.md5
>>  
>>  echo "Checking md5 of ${ISO}"
>>  md5sum --status -c ${ISO}.md5
>> -if [ $? -eq 0 -o $? -eq 24 ]
>> +if [ $? -eq 0 ] || [ $? -eq 24 ]
>>  then
>>  	echo "md5 is OK"
>>  else
>> @@ -35,7 +51,7 @@ else
>>  	wget --quiet -O ${ISO} ${URL}${ISO}
>>  	echo "Checking again md5 of ${ISO}"
>>  	md5sum --status -c ${ISO}.md5
>> -	if [ $? -eq 0 -o $? -eq 24 ]
>> +	if [ $? -eq 0 ] || [ $? -eq 24 ]
>>  	then
>>  		echo "md5 is OK"
>>  	else
>
  
Jonatan Schlag Jan. 3, 2017, 8:41 p.m. UTC | #3
Am Mo, 2. Jan, 2017 um 8:53 schrieb Matthias Fischer 
<matthias.fischer@ipfire.org>:
> Hi,
> 
> Tested. But it won't download anything. The scripts creates the 
> IPF-file
> and stops.
> 
> Old script creates the IPF-file:
> 
> "Backup von 20170102-2039.ipf"
> 
> Downloads the correct ISO:
> 
> "Backup von ipfire-2.19.i586-full-core108.iso"
> 
> ...and works as usual:
> 
> "Backup von ipfire-2.19.i586-full-core108-20170102-2039.iso"
> 
> For today, I haven't got the time to look any further - will try again
> tomorrow. Perhaps something wrong with...
> 
> ..."
> case $arch in
>    "i?86")
> ..."

Just remove all "" in the case statement "i?86" => i?68 and it should 
work. I will send a patch later today.
> 
> "uname -m" says => "i686"
> 
> Best,
> Matthias
> 
> On 02.01.2017 20:17, Michael Tremer wrote:
>>  Thank you very much for your fixes. Merged.
>> 
>>  -Michael
>> 
>>  On Mon, 2017-01-02 at 16:17 +0100, Jonatan Schlag wrote:
>>>  The backup iso script did not check the arch of the host. On 
>>> x86_64 host
>>>  the wrong iso was downloaded.
>>> 
>>>  Furthermore, there were some if clauses which could cause trouble 
>>> which
>>>  I also tried to improve.
>>>  (For example: -e is valid if we have a directory or a file, but we 
>>> want
>>>  to check for a file only )
>>> 
>>>  Fixes: 11258
>>> 
>>>  Signed-off-by: Jonatan Schlag <jonatan.schlag@ipfire.org>
>>>  ---
>>>   src/scripts/backupiso | 24 ++++++++++++++++++++----
>>>   1 file changed, 20 insertions(+), 4 deletions(-)
>>> 
>>>  diff --git a/src/scripts/backupiso b/src/scripts/backupiso
>>>  index 014e8e9..1a682d0 100644
>>>  --- a/src/scripts/backupiso
>>>  +++ b/src/scripts/backupiso
>>>  @@ -1,9 +1,25 @@
>>>   #!/bin/sh
>>>  +arch=$(uname -m)
>>>  +
>>>  +case $arch in
>>>  +	"i?86")
>>>  +		arch="i586"
>>>  +		echo "Your arch is $arch"
>>>  +		;;
>>>  +	"x86_64")
>>>  +		arch="x86_64"
>>>  +		echo "Your arch is $arch"
>>>  +		;;
>>>  +	*)
>>>  +		echo "Arch is not supported"
>>>  +		exit 1
>>>  +		;;
>>>  +esac
>>> 
>>>   COREVER=$(cat /opt/pakfire/db/core/mine)
>>>   # FIXME: edit this lines before release
>>>   
>>> URL="http://download.ipfire.org/releases/ipfire-2.x/2.19-core$COREVER/"
>>>  -ISO="ipfire-2.19.i586-full-core$COREVER.iso"
>>>  +ISO="ipfire-2.19.$arch-full-core$COREVER.iso"
>>> 
>>>   if [ -z $1 ]; then
>>>   	echo usage: $0 backup-file
>>>  @@ -15,7 +31,7 @@ TS=$1
>>>   mkdir -p /var/tmp/backupiso
>>>   cd /var/tmp/backupiso
>>> 
>>>  -if [ ! -e ${ISO} ]
>>>  +if [ ! -f ${ISO} ]
>>>   then
>>>   	echo "Fetching ${URL}${ISO}"
>>>   	wget --quiet -c ${URL}${ISO}
>>>  @@ -26,7 +42,7 @@ wget --quiet -O ${ISO}.md5 ${URL}${ISO}.md5
>>> 
>>>   echo "Checking md5 of ${ISO}"
>>>   md5sum --status -c ${ISO}.md5
>>>  -if [ $? -eq 0 -o $? -eq 24 ]
>>>  +if [ $? -eq 0 ] || [ $? -eq 24 ]
>>>   then
>>>   	echo "md5 is OK"
>>>   else
>>>  @@ -35,7 +51,7 @@ else
>>>   	wget --quiet -O ${ISO} ${URL}${ISO}
>>>   	echo "Checking again md5 of ${ISO}"
>>>   	md5sum --status -c ${ISO}.md5
>>>  -	if [ $? -eq 0 -o $? -eq 24 ]
>>>  +	if [ $? -eq 0 ] || [ $? -eq 24 ]
>>>   	then
>>>   		echo "md5 is OK"
>>>   	else
>> 

Jonatan