[master] fix patching error by emty build_patches dir

Submitted by Jan-Tarek Butt on July 23, 2016, 7:18 p.m.

Details

Message ID 20160723191824.23595-1-tarek@ring0.de
State Changes Requested
Headers show

Commit Message

Jan-Tarek Butt July 23, 2016, 7:18 p.m.
Signed-off-by: Jan-Tarek Butt <tarek@ring0.de>
---
 buildscript | 2 ++
 1 file changed, 2 insertions(+)

Patch hide | download patch | download mbox

diff --git a/buildscript b/buildscript
index ae75027..53985c4 100755
--- a/buildscript
+++ b/buildscript
@@ -122,9 +122,11 @@  get_source() {
 }
 
 patch_target() {
+  if test "$(ls -A "$PWD""/build_patches/openwrt/")"; then
     for patch in "$PWD"/build_patches/openwrt/*.patch; do
         patch --no-backup-if-mismatch -p0 -d "$target" -i "$patch"
     done
+  fi
 }
 
 prepare() {

Comments

Tim Niemeyer July 23, 2016, 7:36 p.m.
Hi Tarek

Cool ein Patch von dir hier zu sehen.

Am Samstag, den 23.07.2016, 21:18 +0200 schrieb Jan-Tarek Butt:
> Signed-off-by: Jan-Tarek Butt <tarek@ring0.de>
> ---
>  buildscript | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/buildscript b/buildscript
> index ae75027..53985c4 100755
> --- a/buildscript
> +++ b/buildscript
> @@ -122,9 +122,11 @@ get_source() {
>  }
>  
>  patch_target() {
> +  if test "$(ls -A "$PWD""/build_patches/openwrt/")"; then
Du startest drei Programme (oder bash build-in's). Mir würde "if test -d
"$DIR"; then" besser gefallen, als ein Aufruf von test welcher den
Ausdruck eigentlich nur durch reicht. Alternativ: "if [ -d "$DIR" ];
then".

Die Einrückung im Script ist auf den ersten Blick 4 Spaces. Bitte
innerhalb einer Datei drauf achten, dass es konsistent bleibt.

Tim

>      for patch in "$PWD"/build_patches/openwrt/*.patch; do
>          patch --no-backup-if-mismatch -p0 -d "$target" -i "$patch"
>      done
> +  fi
>  }
>  
>  prepare() {
> -- 
> 2.9.0
>
Jan-Tarek Butt July 23, 2016, 9:46 p.m.
Ahoi Tim,

> Cool ein Patch von dir hier zu sehen.

Immer wieder gerne.

> Am Samstag, den 23.07.2016, 21:18 +0200 schrieb Jan-Tarek Butt:
>> Signed-off-by: Jan-Tarek Butt <tarek@ring0.de>
>> ---
>>  buildscript | 2 ++
>>  1 file changed, 2 insertions(+)
>>
>> diff --git a/buildscript b/buildscript
>> index ae75027..53985c4 100755
>> --- a/buildscript
>> +++ b/buildscript
>> @@ -122,9 +122,11 @@ get_source() {
>>  }
>>  
>>  patch_target() {
>> +  if test "$(ls -A "$PWD""/build_patches/openwrt/")"; then
> Du startest drei Programme (oder bash build-in's). Mir würde "if test -d
> "$DIR"; then" besser gefallen, als ein Aufruf von test welcher den
> Ausdruck eigentlich nur durch reicht. Alternativ: "if [ -d "$DIR" ];
> then".

Ja das ist prinzipiell richtig, allerding wird beim meiner Variante nicht
auf die Existenz des dirs geprüft sondern auf Inhalt in einem dir.

> Die Einrückung im Script ist auf den ersten Blick 4 Spaces. Bitte
> innerhalb einer Datei drauf achten, dass es konsistent bleibt.

Pardon, kommt nach obiger klärung in version 2

vg
Tarek
Robert Langhammer July 23, 2016, 10:07 p.m.
Hi,


Am 23.07.2016 um 21:36 schrieb Tim Niemeyer:
> Hi Tarek
>
> Cool ein Patch von dir hier zu sehen.
>
> Am Samstag, den 23.07.2016, 21:18 +0200 schrieb Jan-Tarek Butt:
>> Signed-off-by: Jan-Tarek Butt <tarek@ring0.de>
>> ---
>>  buildscript | 2 ++
>>  1 file changed, 2 insertions(+)
>>
>> diff --git a/buildscript b/buildscript
>> index ae75027..53985c4 100755
>> --- a/buildscript
>> +++ b/buildscript
>> @@ -122,9 +122,11 @@ get_source() {
>>  }
>>  
>>  patch_target() {
>> +  if test "$(ls -A "$PWD"||"/build_patches/openwrt/")"; then
> Du startest drei Programme (oder bash build-in's). Mir würde "if test -d
> "$DIR"; then" besser gefallen, als ein Aufruf von test welcher den
> Ausdruck eigentlich nur durch reicht. Alternativ: "if [ -d "$DIR" ];
> then".
|Ein i||f["$(ls /path/to/dir)"];then ist schon ok. Es soll ja auf "leer"
und nicht auf "exist" geprüft werden.

Problem ist doch, dass der * bei leerem Verzeichnis (oder hier kein
xxxxx.patch) nicht expandiert und ein * bleibt. Könnte man mit einem
shopt -s nullglob ändern, dann braucht man das if nicht. (kann die ash
auf unseren Routern aber nicht)

Darum würde ich gleich auf *.patch prüfen |

if test "$(ls -A "$PWD"||"/build_patches/openwrt/*.patch")"; then

|Sonst läuft er wieder in die patch Zeile rein, wenn irgend eine Datei
existiert.

Robert
|
> Die Einrückung im Script ist auf den ersten Blick 4 Spaces. Bitte
> innerhalb einer Datei drauf achten, dass es konsistent bleibt.
>
> Tim
>
>>      for patch in "$PWD"/build_patches/openwrt/*.patch; do
>>          patch --no-backup-if-mismatch -p0 -d "$target" -i "$patch"
>>      done
>> +  fi
>>  }
>>  
>>  prepare() {
>> -- 
>> 2.9.0
>>
>
>
Jan-Tarek Butt July 23, 2016, 10:54 p.m.
On 07/24/16 00:07, Robert wrote:
> Hi,
> 
> 
> Am 23.07.2016 um 21:36 schrieb Tim Niemeyer:
>> Hi Tarek
>>
>> Cool ein Patch von dir hier zu sehen.
>>
>> Am Samstag, den 23.07.2016, 21:18 +0200 schrieb Jan-Tarek Butt:
>>> Signed-off-by: Jan-Tarek Butt <tarek@ring0.de>
>>> ---
>>>  buildscript | 2 ++
>>>  1 file changed, 2 insertions(+)
>>>
>>> diff --git a/buildscript b/buildscript
>>> index ae75027..53985c4 100755
>>> --- a/buildscript
>>> +++ b/buildscript
>>> @@ -122,9 +122,11 @@ get_source() {
>>>  }
>>>  
>>>  patch_target() {
>>> +  if test "$(ls -A "$PWD"||"/build_patches/openwrt/")"; then
>> Du startest drei Programme (oder bash build-in's). Mir würde "if test -d
>> "$DIR"; then" besser gefallen, als ein Aufruf von test welcher den
>> Ausdruck eigentlich nur durch reicht. Alternativ: "if [ -d "$DIR" ];
>> then".
> |Ein i||f["$(ls /path/to/dir)"];then ist schon ok. Es soll ja auf "leer"
> und nicht auf "exist" geprüft werden.
> 
> Problem ist doch, dass der * bei leerem Verzeichnis (oder hier kein
> xxxxx.patch) nicht expandiert und ein * bleibt. Könnte man mit einem
> shopt -s nullglob ändern, dann braucht man das if nicht. (kann die ash
> auf unseren Routern aber nicht)

Im grunde bezieht sich das nicht auf die ash des Routers sondern in
erster Linie ist das eine build host Funktion.

> 
> Darum würde ich gleich auf *.patch prüfen |

Jop, das ist korrekt. bzgl. der *.patch endung wäre deine Variante die bessere, um
letztlich direkt auf Patches zu prüfen.

> 
> if test "$(ls -A "$PWD"||"/build_patches/openwrt/*.patch")"; then
> 
> |Sonst läuft er wieder in die patch Zeile rein, wenn irgend eine Datei
> existiert.


cheers
Tarek
Robert Langhammer July 23, 2016, 11:36 p.m.
Am 24.07.2016 um 00:54 schrieb Jan-Tarek Butt:
>
> On 07/24/16 00:07, Robert wrote:
>> Hi,
>>
>>
>> Am 23.07.2016 um 21:36 schrieb Tim Niemeyer:
>>> Hi Tarek
>>>
>>> Cool ein Patch von dir hier zu sehen.
>>>
>>> Am Samstag, den 23.07.2016, 21:18 +0200 schrieb Jan-Tarek Butt:
>>>> Signed-off-by: Jan-Tarek Butt <tarek@ring0.de>
>>>> ---
>>>>  buildscript | 2 ++
>>>>  1 file changed, 2 insertions(+)
>>>>
>>>> diff --git a/buildscript b/buildscript
>>>> index ae75027..53985c4 100755
>>>> --- a/buildscript
>>>> +++ b/buildscript
>>>> @@ -122,9 +122,11 @@ get_source() {
>>>>  }
>>>>  
>>>>  patch_target() {
>>>> +  if test "$(ls -A "$PWD"||"/build_patches/openwrt/")"; then
>>> Du startest drei Programme (oder bash build-in's). Mir würde "if test -d
>>> "$DIR"; then" besser gefallen, als ein Aufruf von test welcher den
>>> Ausdruck eigentlich nur durch reicht. Alternativ: "if [ -d "$DIR" ];
>>> then".
>> |Ein i||f["$(ls /path/to/dir)"];then ist schon ok. Es soll ja auf "leer"
>> und nicht auf "exist" geprüft werden.
>>
>> Problem ist doch, dass der * bei leerem Verzeichnis (oder hier kein
>> xxxxx.patch) nicht expandiert und ein * bleibt. Könnte man mit einem
>> shopt -s nullglob ändern, dann braucht man das if nicht. (kann die ash
>> auf unseren Routern aber nicht)
> Im grunde bezieht sich das nicht auf die ash des Routers sondern in
> erster Linie ist das eine build host Funktion.
Ja stimmt, wir sind ja im buildscript. Sollte also auch gehen.

Robert

>
>> Darum würde ich gleich auf *.patch prüfen |
> Jop, das ist korrekt. bzgl. der *.patch endung wäre deine Variante die bessere, um
> letztlich direkt auf Patches zu prüfen.
>
>> if test "$(ls -A "$PWD"||"/build_patches/openwrt/*.patch")"; then
>>
>> |Sonst läuft er wieder in die patch Zeile rein, wenn irgend eine Datei
>> existiert.
>
> cheers
> Tarek
>
>
>