| #include "usb_manager.hpp" |
| |
| #include <CLI/CLI.hpp> |
| #include <phosphor-logging/lg2.hpp> |
| #include <sdeventplus/event.hpp> |
| |
| int main(int argc, char** argv) |
| { |
| namespace fs = std::filesystem; |
| // Dbus constructs |
| auto bus = sdbusplus::bus::new_default(); |
| |
| // Get a default event loop |
| auto event = sdeventplus::Event::get_default(); |
| |
| std::string deviceName{}; |
| |
| CLI::App app{"Update the firmware of OpenBMC via USB app"}; |
| app.add_option("-d,--device", deviceName, |
| "Get the name of the USB device name, eg: sda1, sdb1"); |
| |
| CLI11_PARSE(app, argc, argv); |
| |
| if (deviceName.empty()) |
| { |
| lg2::error("The file name passed in is empty."); |
| return -1; |
| } |
| |
| fs::path devicePath = fs::path{"/dev"} / deviceName; |
| fs::path usbPath = fs::path{"/run/media/usb"} / deviceName; |
| phosphor::usb::USBManager manager(bus, event, devicePath, usbPath); |
| |
| // Attach the bus to sd_event to service user requests |
| bus.attach_event(event.get(), SD_EVENT_PRIORITY_NORMAL); |
| event.loop(); |
| |
| return 0; |
| } |