// Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include <memory>

#include <base/command_line.h>
#include <base/logging.h>

#include "image-burner/daemon.h"

int main(int argc, char* argv[]) {
  base::CommandLine::Init(argc, argv);

  logging::LoggingSettings settings;
  settings.logging_dest = logging::LOG_TO_ALL;
#if BASE_VER < 780000
  settings.log_file = "/var/log/image_burner.log";
#else
  settings.log_file_path = "/var/log/image_burner.log";
#endif
  settings.lock_log = logging::LOCK_LOG_FILE;
  settings.delete_old = logging::DELETE_OLD_LOG_FILE;
  logging::InitLogging(settings);

  imageburn::Daemon daemon;
  return daemon.Run();
}
