[ic] Usertag return value

Grant emailgrant at gmail.com
Sun Feb 15 00:52:37 UTC 2009


>>>>>>>>> $return= $image->Write(filename=>'/file/location/'.$name.'_image.jpg')
>>>>>>>>> or return 0;
>>>>>>>>> $Tag->log("1: return=$return error=$!");
>>>>>>>>> $return= chmod(0644,"/file/location/".$name."_image.jpg") or return 0;
>>>>>>>>> $Tag->log("2: return=$return error=$!");
>>>>>>>>>
>>>>>>> Why not write it like this:
>>>>>>>
>>>>>>> return 0
>>>>>>>   if ! $image->Write(filename=>'/file/location/'.$name.'_image.jpg');
>>>>>>>
>>>>>>> return 0
>>>>>>>   if ! chmod(0644,"/file/location/".$name."_image.jpg");
>>>>>>>
>>>>>> I tried this with the same results.  The first 3 commands execute, the
>>>>>> last 3 commands don't execute, and the usertag exits with '0'.  If I
>>>>>> remove:
>>>>>>
>>>>>> return 0
>>>>>>   if !
>>>>>>
>>>>>> everything executes, but I don't get the '0' in case of failure.
>>>>>>
>>>>> So, you want all commands to execute regardless and the tag to return 0
>>>>> if any command fails?
>>>>>
>>>> Thanks Peter, but what I'm after is processing to stop and a return
>>>> value of 0 in case a command fails.  The usertag executes all the way
>>>> through unless I set it up to return 0 in case of failure, in which
>>>> case processing stops halfway through.  I'd also like any error info
>>>> to be printed to the error.log because my app needs a 1 or 0 returned
>>>> by the usertag.
>>>>
>>> Try this then:
>>>
>>> command1 or do {
>>>        ::logError "Error running command1: $!";
>>>        return 0;
>>> }
>>>
>>> command2 or do {
>>>        ::logError "Error running command2: $!";
>>>        return 0;
>>> }
>>>
>>> ...
>>>
>>> commandn or do {
>>>        ::logError "Error running commandn: $!";
>>>        return 0;
>>> }
>>>
>>
>> This is weird.  I changed it to:
>>
>> command or do {
>>   ::logError "Error running command: $!";
>>   return 0;
>> };
>>
>>
>
> try
> oops missed a comma....
>
> command or do {
>  ::logError("Error running command: %s", $!);
>  return 0;
> };

I changed it to this:

chmod(0644,"/file/location/$sku.jpg") or do {
  ::logError("create_image.tag error: %s", $!);
  return 0;
};

but I get the same thing in error.log:

create_image.tag error:

Any idea why this is failing to log anything?

- Grant


>> and the tag fails with this in error.log:
>>
>> Error running command:
>>
>> If I just use the command without the logging or returning 0 it works perfectly.
>>
>> - Grant



More information about the interchange-users mailing list