blob: 143125d231612cbb08a857b1a0fa39695abcd869 [file] [log] [blame]
George Liu073a6532021-10-25 14:40:03 +08001#include "usb_manager.hpp"
2
George Liucc742332021-10-20 16:25:55 +08003#include <CLI/CLI.hpp>
George Liu073a6532021-10-25 14:40:03 +08004#include <phosphor-logging/lg2.hpp>
George Liucc742332021-10-20 16:25:55 +08005
6int main(int argc, char** argv)
7{
George Liu073a6532021-10-25 14:40:03 +08008 namespace fs = std::filesystem;
9
George Liucc742332021-10-20 16:25:55 +080010 std::string fileName{};
11
12 CLI::App app{"Update the firmware of OpenBMC via USB app"};
13 app.add_option("-f,--fileName", fileName,
George Liu073a6532021-10-25 14:40:03 +080014 "Get the name of the USB mount folder, eg: sda1, sdb1");
George Liucc742332021-10-20 16:25:55 +080015
16 CLI11_PARSE(app, argc, argv);
17
George Liu073a6532021-10-25 14:40:03 +080018 if (fileName.empty())
19 {
20 lg2::error("The file name passed in is empty.");
21 return -1;
22 }
23
24 fs::path usbPath = fs::path{"/run/media/usb"} / fileName;
25 phosphor::usb::USBManager manager(usbPath);
26
27 if (!manager.run())
28 {
29 lg2::error("Failed to FW Update via USB, usbPath:{USBPATH}", "USBPATH",
30 usbPath);
31 return -1;
32 }
33
George Liucc742332021-10-20 16:25:55 +080034 return 0;
35}