From a13ba4e8a1bf9d9dfc02605cb6e4fc3000a87d33 Mon Sep 17 00:00:00 2001 From: Mario Limonciello Date: Fri, 20 Nov 2020 13:47:25 -0600 Subject: [PATCH] trivial: simple_client: add a refresh metadata function --- contrib/firmware_packager/meson.build | 11 +++++++++-- contrib/firmware_packager/simple_client.py | 14 +++++++++++++- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/contrib/firmware_packager/meson.build b/contrib/firmware_packager/meson.build index d9d4c1446..9e8bf27fc 100644 --- a/contrib/firmware_packager/meson.build +++ b/contrib/firmware_packager/meson.build @@ -1,10 +1,17 @@ if get_option('firmware-packager') install_data('firmware_packager.py', install_dir : 'share/fwupd') - install_data('simple_client.py', - install_dir : 'share/fwupd') install_data('add_capsule_header.py', install_dir : 'share/fwupd') install_data('install_dell_bios_exe.py', install_dir : 'share/fwupd') + con2 = configuration_data() + con2.set('FWUPD_VERSION', fwupd_version) + configure_file( + input : 'simple_client.py', + output : 'simple_client.py', + configuration : con2, + install: true, + install_dir: 'share/fwupd', + ) endif diff --git a/contrib/firmware_packager/simple_client.py b/contrib/firmware_packager/simple_client.py index f48d15e36..a1a2811af 100755 --- a/contrib/firmware_packager/simple_client.py +++ b/contrib/firmware_packager/simple_client.py @@ -62,13 +62,23 @@ def parse_args(): help="Reinstall payloads(default False)", ) parser.add_argument( - "command", choices=["get-devices", "get-details", "install"], help="What to do" + "command", choices=["get-devices", "get-details", "install", "refresh"], help="What to do" ) parser.add_argument('cab', nargs='?', help='CAB file') parser.add_argument('deviceid', nargs='?', help='DeviceID to operate on(optional)') args = parser.parse_args() return args +def refresh(client): + """Uses fwupd client to refresh metadata""" + remotes = client.get_remotes() + client.set_user_agent_for_package("simple_client", "@FWUPD_VERSION@") + for remote in remotes: + if not remote.get_enabled(): + continue + if remote.get_kind() != Fwupd.RemoteKind.DOWNLOAD: + continue + client.refresh_remote(remote) def get_devices(client): """Use fwupd client to fetch devices""" @@ -140,6 +150,8 @@ if __name__ == '__main__': elif ARGS.command == "get-details": check_exists(ARGS.cab) get_details(CLIENT, ARGS.cab) + elif ARGS.command == "refresh": + refresh(CLIENT) elif ARGS.command == "install": check_exists(ARGS.cab) install(CLIENT, ARGS.cab, ARGS.deviceid, ARGS.allow_older, ARGS.allow_reinstall)