On Sat, 4 Nov 2023, tlaro...@kergis.com wrote:

- 1) No change to the general form of current syntax;

- 2) Selection can be as presently: by number (index in cfdata), by
name (driver name), but also (NEW) by pattern: a pattern is
between slashes, it is a fix substring, that can be optionnally
anchored at the beginning with `^' and at the end with `$';

- 3) (NEW) If the selector (will this word do?) in 2) is surrounded by
braces `{' `}', the selector is for a group of devices;

- 4) The STAR (existing) is still handled as a suffix.

Examples:

disable i915drmkms      # existing syntax

disable {drmkms}        # NEW: disable devices belonging to group "drmkms"

disable {/^drm/}*       # NEW: disable devices belonging to groups
                        # whose name begins with the substr "drm" if
                        # they are STARred ones.


I think you can simplify things a bit by:

1) Allowing shell-like patterns (not hard to implement):

uc> disable drm*     # all starting with `drm'
uc> disable *drm* *usb$      # all with `drm' anywhere and those ending in `usb'
uc> disable foo              # exact match `foo'
uc> disable 1                # exact match 1 (index)

2) Having an alias facility:

uc> alias drm_disable=disable i915*; disable *radeon*; ...
uc> drm_disable              # executes: RHS text (no recursive expansion)
uc> alias drm_disable=       # remove alias `drm_disable'

-RVP

Reply via email to