| 1306 | } |
| 1307 | |
| 1308 | static int cli_activation_transaction_finalize_close( |
| 1309 | cbm_activation_transaction_t **transaction_io) { |
| 1310 | if (!transaction_io || !*transaction_io) { |
| 1311 | return CLI_ERR; |
| 1312 | } |
| 1313 | cbm_activation_transaction_status_t status = |
| 1314 | cbm_activation_transaction_finalize(*transaction_io); |
| 1315 | if (status != CBM_ACTIVATION_TRANSACTION_OK && status != CBM_ACTIVATION_TRANSACTION_DEFERRED) { |
| 1316 | (void)cli_activation_transaction_abort(transaction_io); |
| 1317 | return CLI_ERR; |
| 1318 | } |
| 1319 | if (status == CBM_ACTIVATION_TRANSACTION_DEFERRED) { |
| 1320 | const char *deferred = cbm_activation_transaction_deferred_path(*transaction_io); |
| 1321 | cbm_log_warn("cli.activation_backup_cleanup_deferred", "path", |
| 1322 | deferred ? deferred : "unknown"); |
| 1323 | (void)fprintf(stderr, |
| 1324 | "warning: old executable cleanup was deferred until " |
| 1325 | "reboot: %s\n", |
| 1326 | deferred ? deferred : "unknown path"); |
| 1327 | } |
| 1328 | return cli_activation_transaction_abort(transaction_io); |
| 1329 | } |
| 1330 | |
| 1331 | static void cli_activation_transaction_finalize_committed_or_fail_stop( |
| 1332 | cbm_activation_transaction_t **transaction_io, const char *component) { |
no test coverage detected