summaryrefslogtreecommitdiff
path: root/src/burn/engine
diff options
context:
space:
mode:
Diffstat (limited to 'src/burn/engine')
-rw-r--r--src/burn/engine/core.cpp10
-rw-r--r--src/burn/engine/core.h1
-rw-r--r--src/burn/engine/engine.cpp4
-rw-r--r--src/burn/engine/plan.cpp3
-rw-r--r--src/burn/engine/plan.h1
-rw-r--r--src/burn/engine/registration.cpp3
-rw-r--r--src/burn/engine/variable.cpp1
7 files changed, 13 insertions, 10 deletions
diff --git a/src/burn/engine/core.cpp b/src/burn/engine/core.cpp
index 37872e52..becece86 100644
--- a/src/burn/engine/core.cpp
+++ b/src/burn/engine/core.cpp
@@ -309,7 +309,7 @@ extern "C" HRESULT CoreDetect(
309 pEngineState->fDetected = FALSE; 309 pEngineState->fDetected = FALSE;
310 pEngineState->fPlanned = FALSE; 310 pEngineState->fPlanned = FALSE;
311 DetectReset(&pEngineState->registration, &pEngineState->packages); 311 DetectReset(&pEngineState->registration, &pEngineState->packages);
312 PlanReset(&pEngineState->plan, &pEngineState->containers, &pEngineState->packages, &pEngineState->layoutPayloads); 312 PlanReset(&pEngineState->plan, &pEngineState->variables, &pEngineState->containers, &pEngineState->packages, &pEngineState->layoutPayloads);
313 313
314 hr = RegistrationSetDynamicVariables(&pEngineState->registration, &pEngineState->variables); 314 hr = RegistrationSetDynamicVariables(&pEngineState->registration, &pEngineState->variables);
315 ExitOnFailure(hr, "Failed to reset the dynamic registration variables during detect."); 315 ExitOnFailure(hr, "Failed to reset the dynamic registration variables during detect.");
@@ -441,6 +441,9 @@ extern "C" HRESULT CorePlan(
441 BURN_PACKAGE* pForwardCompatibleBundlePackage = NULL; 441 BURN_PACKAGE* pForwardCompatibleBundlePackage = NULL;
442 BOOL fContinuePlanning = TRUE; // assume we won't skip planning due to dependencies. 442 BOOL fContinuePlanning = TRUE; // assume we won't skip planning due to dependencies.
443 443
444 hr = PlanSetVariables(action, &pEngineState->variables);
445 ExitOnFailure(hr, "Failed to update action.");
446
444 LogId(REPORT_STANDARD, MSG_PLAN_BEGIN, pEngineState->packages.cPackages, LoggingBurnActionToString(action)); 447 LogId(REPORT_STANDARD, MSG_PLAN_BEGIN, pEngineState->packages.cPackages, LoggingBurnActionToString(action));
445 448
446 fPlanBegan = TRUE; 449 fPlanBegan = TRUE;
@@ -458,7 +461,7 @@ extern "C" HRESULT CorePlan(
458 461
459 // Always reset the plan. 462 // Always reset the plan.
460 pEngineState->fPlanned = FALSE; 463 pEngineState->fPlanned = FALSE;
461 PlanReset(&pEngineState->plan, &pEngineState->containers, &pEngineState->packages, &pEngineState->layoutPayloads); 464 PlanReset(&pEngineState->plan, &pEngineState->variables, &pEngineState->containers, &pEngineState->packages, &pEngineState->layoutPayloads);
462 465
463 // Remember the overall action state in the plan since it shapes the changes 466 // Remember the overall action state in the plan since it shapes the changes
464 // we make everywhere. 467 // we make everywhere.
@@ -472,9 +475,6 @@ extern "C" HRESULT CorePlan(
472 pEngineState->plan.fDisableRollback = pEngineState->fDisableRollback || BOOTSTRAPPER_ACTION_UNSAFE_UNINSTALL == pEngineState->plan.action; 475 pEngineState->plan.fDisableRollback = pEngineState->fDisableRollback || BOOTSTRAPPER_ACTION_UNSAFE_UNINSTALL == pEngineState->plan.action;
473 pEngineState->plan.fPlanPackageCacheRollback = BOOTSTRAPPER_REGISTRATION_TYPE_NONE == pEngineState->registration.detectedRegistrationType; 476 pEngineState->plan.fPlanPackageCacheRollback = BOOTSTRAPPER_REGISTRATION_TYPE_NONE == pEngineState->registration.detectedRegistrationType;
474 477
475 hr = PlanSetVariables(action, &pEngineState->variables);
476 ExitOnFailure(hr, "Failed to update action.");
477
478 // Set resume commandline 478 // Set resume commandline
479 hr = PlanSetResumeCommand(&pEngineState->plan, &pEngineState->registration, &pEngineState->log); 479 hr = PlanSetResumeCommand(&pEngineState->plan, &pEngineState->registration, &pEngineState->log);
480 ExitOnFailure(hr, "Failed to set resume command"); 480 ExitOnFailure(hr, "Failed to set resume command");
diff --git a/src/burn/engine/core.h b/src/burn/engine/core.h
index ff983d60..6ba1aa2a 100644
--- a/src/burn/engine/core.h
+++ b/src/burn/engine/core.h
@@ -37,6 +37,7 @@ const LPCWSTR BURN_COMMANDLINE_SWITCH_PREFIX = L"burn.";
37const LPCWSTR BURN_BUNDLE_LAYOUT_DIRECTORY = L"WixBundleLayoutDirectory"; 37const LPCWSTR BURN_BUNDLE_LAYOUT_DIRECTORY = L"WixBundleLayoutDirectory";
38const LPCWSTR BURN_BUNDLE_ACTION = L"WixBundleAction"; 38const LPCWSTR BURN_BUNDLE_ACTION = L"WixBundleAction";
39const LPCWSTR BURN_BUNDLE_ACTIVE_PARENT = L"WixBundleActiveParent"; 39const LPCWSTR BURN_BUNDLE_ACTIVE_PARENT = L"WixBundleActiveParent";
40const LPCWSTR BURN_BUNDLE_COMMAND_LINE_ACTION = L"WixBundleCommandLineAction";
40const LPCWSTR BURN_BUNDLE_EXECUTE_PACKAGE_CACHE_FOLDER = L"WixBundleExecutePackageCacheFolder"; 41const LPCWSTR BURN_BUNDLE_EXECUTE_PACKAGE_CACHE_FOLDER = L"WixBundleExecutePackageCacheFolder";
41const LPCWSTR BURN_BUNDLE_EXECUTE_PACKAGE_ACTION = L"WixBundleExecutePackageAction"; 42const LPCWSTR BURN_BUNDLE_EXECUTE_PACKAGE_ACTION = L"WixBundleExecutePackageAction";
42const LPCWSTR BURN_BUNDLE_FORCED_RESTART_PACKAGE = L"WixBundleForcedRestartPackage"; 43const LPCWSTR BURN_BUNDLE_FORCED_RESTART_PACKAGE = L"WixBundleForcedRestartPackage";
diff --git a/src/burn/engine/engine.cpp b/src/burn/engine/engine.cpp
index 1f2dac3c..9b94552b 100644
--- a/src/burn/engine/engine.cpp
+++ b/src/burn/engine/engine.cpp
@@ -557,8 +557,8 @@ static HRESULT RunNormal(
557 hr = S_OK; 557 hr = S_OK;
558 558
559 // Set some built-in variables before loading the BA. 559 // Set some built-in variables before loading the BA.
560 hr = PlanSetVariables(pEngineState->command.action, &pEngineState->variables); 560 hr = VariableSetNumeric(&pEngineState->variables, BURN_BUNDLE_COMMAND_LINE_ACTION, pEngineState->command.action, TRUE);
561 ExitOnFailure(hr, "Failed to set action variables."); 561 ExitOnFailure(hr, "Failed to set command line action variable.");
562 562
563 hr = RegistrationSetVariables(&pEngineState->registration, &pEngineState->variables); 563 hr = RegistrationSetVariables(&pEngineState->registration, &pEngineState->variables);
564 ExitOnFailure(hr, "Failed to set registration variables."); 564 ExitOnFailure(hr, "Failed to set registration variables.");
diff --git a/src/burn/engine/plan.cpp b/src/burn/engine/plan.cpp
index 46680636..5e1d2654 100644
--- a/src/burn/engine/plan.cpp
+++ b/src/burn/engine/plan.cpp
@@ -147,6 +147,7 @@ static BOOL ForceCache(
147 147
148extern "C" void PlanReset( 148extern "C" void PlanReset(
149 __in BURN_PLAN* pPlan, 149 __in BURN_PLAN* pPlan,
150 __in BURN_VARIABLES* pVariables,
150 __in BURN_CONTAINERS* pContainers, 151 __in BURN_CONTAINERS* pContainers,
151 __in BURN_PACKAGES* pPackages, 152 __in BURN_PACKAGES* pPackages,
152 __in BURN_PAYLOAD_GROUP* pLayoutPayloads 153 __in BURN_PAYLOAD_GROUP* pLayoutPayloads
@@ -274,6 +275,8 @@ extern "C" void PlanReset(
274 ResetPlannedRollbackBoundaryState(&pPackages->rgRollbackBoundaries[i]); 275 ResetPlannedRollbackBoundaryState(&pPackages->rgRollbackBoundaries[i]);
275 } 276 }
276 } 277 }
278
279 PlanSetVariables(BOOTSTRAPPER_ACTION_UNKNOWN, pVariables);
277} 280}
278 281
279extern "C" void PlanUninitializeExecuteAction( 282extern "C" void PlanUninitializeExecuteAction(
diff --git a/src/burn/engine/plan.h b/src/burn/engine/plan.h
index e73cbcfa..834d2567 100644
--- a/src/burn/engine/plan.h
+++ b/src/burn/engine/plan.h
@@ -306,6 +306,7 @@ typedef struct _BURN_PLAN
306 306
307void PlanReset( 307void PlanReset(
308 __in BURN_PLAN* pPlan, 308 __in BURN_PLAN* pPlan,
309 __in BURN_VARIABLES* pVariables,
309 __in BURN_CONTAINERS* pContainers, 310 __in BURN_CONTAINERS* pContainers,
310 __in BURN_PACKAGES* pPackages, 311 __in BURN_PACKAGES* pPackages,
311 __in BURN_PAYLOAD_GROUP* pLayoutPayloads 312 __in BURN_PAYLOAD_GROUP* pLayoutPayloads
diff --git a/src/burn/engine/registration.cpp b/src/burn/engine/registration.cpp
index 6bae2e7b..a65c30d3 100644
--- a/src/burn/engine/registration.cpp
+++ b/src/burn/engine/registration.cpp
@@ -445,9 +445,6 @@ extern "C" HRESULT RegistrationSetVariables(
445 HRESULT hr = S_OK; 445 HRESULT hr = S_OK;
446 LPWSTR scz = NULL; 446 LPWSTR scz = NULL;
447 447
448 hr = RegistrationSetDynamicVariables(pRegistration, pVariables);
449 ExitOnFailure(hr, "Failed to set the dynamic registration variables.");
450
451 // Ensure the registration bundle name is updated. 448 // Ensure the registration bundle name is updated.
452 hr = GetBundleInProgressName(pRegistration, pVariables, &scz); 449 hr = GetBundleInProgressName(pRegistration, pVariables, &scz);
453 ExitOnFailure(hr, "Failed to initialize bundle name."); 450 ExitOnFailure(hr, "Failed to initialize bundle name.");
diff --git a/src/burn/engine/variable.cpp b/src/burn/engine/variable.cpp
index ae06c1d5..718751e5 100644
--- a/src/burn/engine/variable.cpp
+++ b/src/burn/engine/variable.cpp
@@ -268,6 +268,7 @@ extern "C" HRESULT VariableInitialize(
268 {L"WindowsFolder", InitializeVariableCsidlFolder, CSIDL_WINDOWS}, 268 {L"WindowsFolder", InitializeVariableCsidlFolder, CSIDL_WINDOWS},
269 {L"WindowsVolume", InitializeVariableWindowsVolumeFolder, 0}, 269 {L"WindowsVolume", InitializeVariableWindowsVolumeFolder, 0},
270 {BURN_BUNDLE_ACTION, InitializeVariableNumeric, 0, FALSE, TRUE}, 270 {BURN_BUNDLE_ACTION, InitializeVariableNumeric, 0, FALSE, TRUE},
271 {BURN_BUNDLE_COMMAND_LINE_ACTION, InitializeVariableNumeric, 0, FALSE, TRUE},
271 {BURN_BUNDLE_EXECUTE_PACKAGE_CACHE_FOLDER, InitializeVariableString, NULL, FALSE, TRUE}, 272 {BURN_BUNDLE_EXECUTE_PACKAGE_CACHE_FOLDER, InitializeVariableString, NULL, FALSE, TRUE},
272 {BURN_BUNDLE_EXECUTE_PACKAGE_ACTION, InitializeVariableString, NULL, FALSE, TRUE}, 273 {BURN_BUNDLE_EXECUTE_PACKAGE_ACTION, InitializeVariableString, NULL, FALSE, TRUE},
273 {BURN_BUNDLE_FORCED_RESTART_PACKAGE, InitializeVariableString, NULL, TRUE, TRUE}, 274 {BURN_BUNDLE_FORCED_RESTART_PACKAGE, InitializeVariableString, NULL, TRUE, TRUE},