[PATCH v2 00/12] Add interface for running pb-plugins

Samuel Mendoza-Jonas sam at mendozajonas.com
Tue Jul 25 16:48:58 AEST 2017


With this series Petitboot can discover pb-plugin sources from both
PXE-formatted files and local storage devices, and present them to the user.
>From the new nc-plugin screen the user can request that these plugins be
installed and then run. Changes are made to the UI and process code to allow
processes to be run interactively.

Patches and patch order have changed slightly from v1; notable changes are:
- pb-discover now runs `pb-plugin scan` on each newly discovered storage
  device, and presents these in the UI as well as plugins sourced from the
  network.
- Changes in nc-cui are simplified - 'plugin' type boot_options do not need
  to be handled completely separately from cui_boot_option_add().
- pb-exec now allows the user to optionally drop to a shell after running a
  command.
- A number of minor cleanups, fixes, and improvements.

Samuel Mendoza-Jonas (12):
  lib: Add plugin_option type and protocol
  discover/pxe-parser: Recognise plugin sources
  discover: Handle and track plugin_options
  discover: Add 'plugin' user-event
  lib/process: Add raw stdout mode
  utils: Add pb-exec wrapper
  utils/pb-plugin: Advertise pb-plugins to discover server
  Add pb-plugin and pb-exec to pb_system_apps
  discover/device-handler: Scan devices for plugins
  discover: Handle plugin install request
  ui/ncurses: Update cui_run_cmd() to pass display to command
  ui/ncurses: Add plugin menu and nc-plugin screen

 configure.ac                     |   2 +
 discover/device-handler.c        | 137 ++++++++++++
 discover/device-handler.h        |   7 +
 discover/discover-server.c       |  67 +++++-
 discover/discover-server.h       |   5 +
 discover/event.c                 |   2 +
 discover/event.h                 |   1 +
 discover/pxe-parser.c            |  19 +-
 discover/user-event.c            | 110 ++++++++++
 lib/pb-protocol/pb-protocol.c    | 117 ++++++++++-
 lib/pb-protocol/pb-protocol.h    |   9 +
 lib/process/process.c            |   7 +-
 lib/process/process.h            |   1 +
 lib/system/system.c              |   2 +
 lib/system/system.h              |   2 +
 lib/types/types.h                |  20 ++
 test/parser/Makefile.am          |   1 +
 test/parser/handler.c            |   6 +
 test/parser/user-event.c         |  13 ++
 ui/common/discover-client.c      |  48 +++++
 ui/common/discover-client.h      |  10 +
 ui/ncurses/Makefile.am           |   7 +-
 ui/ncurses/nc-cui.c              | 437 +++++++++++++++++++++++++++++++++++----
 ui/ncurses/nc-cui.h              |  16 +-
 ui/ncurses/nc-menu.c             |  29 ++-
 ui/ncurses/nc-menu.h             |   1 +
 ui/ncurses/nc-plugin-help.c      |   7 +
 ui/ncurses/nc-plugin-menu-help.c |   7 +
 ui/ncurses/nc-plugin.c           | 418 +++++++++++++++++++++++++++++++++++++
 ui/ncurses/nc-plugin.h           |  34 +++
 ui/ncurses/nc-scr.h              |   1 +
 utils/Makefile.am                |   2 +-
 utils/pb-exec                    |  16 ++
 utils/pb-plugin                  |  54 +++--
 34 files changed, 1541 insertions(+), 74 deletions(-)
 create mode 100644 test/parser/user-event.c
 create mode 100644 ui/ncurses/nc-plugin-help.c
 create mode 100644 ui/ncurses/nc-plugin-menu-help.c
 create mode 100644 ui/ncurses/nc-plugin.c
 create mode 100644 ui/ncurses/nc-plugin.h
 create mode 100755 utils/pb-exec

-- 
2.13.3



More information about the Petitboot mailing list