diff --git a/s3cmd b/s3cmd index 2db88f25..204ea9f3 100755 --- a/s3cmd +++ b/s3cmd @@ -923,6 +923,8 @@ def cmd_object_restore(args): warning(u"Exiting now because of --dry-run") return EX_OK + ret = EX_OK + for key in remote_list: item = remote_list[key] @@ -934,11 +936,15 @@ def cmd_object_restore(args): except S3Error as e: if e.code == "RestoreAlreadyInProgress": warning("%s: %s" % (e.message, item['object_uri_str'])) - else: + elif cfg.stop_on_error: raise e + else: + error("restore failed for: '%s' (%s)", item['object_uri_str'], e) + ret = EX_PARTIAL + else: debug(u"Skipping directory since only files may be restored") - return EX_OK + return ret def subcmd_cp_mv(args, process_fce, action_str, message):