// Copyright 2020 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 <base/command_line.h>
#include <base/logging.h>
#include <brillo/syslog_logging.h>

#include "pciguard/daemon.h"
#include "pciguard/sysfs_utils.h"

int main(int argc, char* argv[]) {
  brillo::InitLog(brillo::kLogToSyslog | brillo::kLogHeader |
                  brillo::kLogToStderrIfTty);

  base::CommandLine::Init(argc, argv);
  base::CommandLine* cl = base::CommandLine::ForCurrentProcess();

  pciguard::SysfsUtils utils;
  // Check if this invocation is for a one time job instead of a daemon.
  if (cl->HasSwitch("deauthorize-all-devs")) {
    LOG(INFO) << " called with --deauthorize-all-devs";
    return utils.DeauthorizeAllDevices();
  } else if (cl->HasSwitch("authorize-all-devs")) {
    LOG(INFO) << " called with --authorize-all-devs";
    return utils.AuthorizeAllDevices();
  }

  LOG(INFO) << "Starting pciguard daemon.\n";
  pciguard::Daemon daemon;

  daemon.Run();
  return 0;
}
