| Index: update_engine_client.cc
|
| diff --git a/update_engine_client.cc b/update_engine_client.cc
|
| index 7bbc62f6de5edfc38764409adabe60903260df85..a662242b4e66f89a973085a827768f5f8279881b 100644
|
| --- a/update_engine_client.cc
|
| +++ b/update_engine_client.cc
|
| @@ -27,6 +27,7 @@ DEFINE_bool(check_for_update, false, "Initiate check for updates.");
|
| DEFINE_string(omaha_url, "", "The URL of the Omaha update server.");
|
| DEFINE_bool(reboot, false, "Initiate a reboot if needed.");
|
| DEFINE_bool(status, false, "Print the status to stdout.");
|
| +DEFINE_string(track, "", "Permanently change the update track.");
|
| DEFINE_bool(update, false, "Forces an update and waits for its completion. "
|
| "Exit status is 0 if the update succeeded, and 1 otherwise.");
|
| DEFINE_bool(watch_for_updates, false,
|
| @@ -176,6 +177,21 @@ bool RebootIfNeeded() {
|
| return true;
|
| }
|
|
|
| +void SetTrack(const string& track) {
|
| + DBusGProxy* proxy;
|
| + GError* error = NULL;
|
| +
|
| + CHECK(GetProxy(&proxy));
|
| +
|
| + gboolean rc =
|
| + org_chromium_UpdateEngineInterface_set_track(proxy,
|
| + track.c_str(),
|
| + &error);
|
| + CHECK_EQ(rc, true) << "Error setting the track: "
|
| + << GetGErrorMessage(error);
|
| + LOG(INFO) << "TODO: Track permanently set to: " << track;
|
| +}
|
| +
|
| static gboolean CompleteUpdateSource(gpointer data) {
|
| string current_op;
|
| if (!GetStatus(¤t_op) || current_op == "UPDATE_STATUS_IDLE") {
|
| @@ -218,6 +234,11 @@ int main(int argc, char** argv) {
|
| return 0;
|
| }
|
|
|
| + // First, update the track if requested.
|
| + if (!FLAGS_track.empty()) {
|
| + SetTrack(FLAGS_track);
|
| + }
|
| +
|
| // Initiate an update check, if necessary.
|
| if (FLAGS_check_for_update ||
|
| FLAGS_update ||
|
| @@ -256,6 +277,6 @@ int main(int argc, char** argv) {
|
| return 0;
|
| }
|
|
|
| - LOG(INFO) << "No flags specified. Exiting.";
|
| + LOG(INFO) << "Done.";
|
| return 0;
|
| }
|
|
|