[rhel7/master] Fix page logic in driver selection (#1055333)

Vratislav Podzimek vpodzime at redhat.com
Wed Jan 22 08:33:53 UTC 2014


On Tue, 2014-01-21 at 10:35 -0800, Brian C. Lane wrote:
> Resolves: rhbz#1055333
> ---
>  dracut/driver-updates | 15 +++++++++++----
>  1 file changed, 11 insertions(+), 4 deletions(-)
> 
> diff --git a/dracut/driver-updates b/dracut/driver-updates
> index cdcddc9..2645d64 100755
> --- a/dracut/driver-updates
> +++ b/dracut/driver-updates
> @@ -430,11 +430,18 @@ def select_drivers(drivers):
>      """
>      page_length = 20
>      page = 1
> +    num_pages = len(drivers) / page_length
> +    if len(drivers) % page_length > 0:
> +        num_pages += 1
>      while True:
>          # show a page of drivers
> -        print("\nPage %d of %d" % (page, 1 + (len(drivers) / page_length)))
> +        print("\nPage %d of %d" % (page, num_pages))
>          print("Select drivers to install")
> -        for i in xrange(0, min(len(drivers), page_length)):
> +        if page * page_length <= len(drivers):
> +            num_drivers = page_length
> +        else:
> +            num_drivers = len(drivers) % page_length
> +        for i in xrange(0, num_drivers):
>              driver_idx = ((page-1) * page_length) + i
>              if drivers[driver_idx].selected:
>                  selected = "x"
> @@ -445,13 +452,13 @@ def select_drivers(drivers):
>          # Select driver to toggle, continue or change pages
>          idx = raw_input("\n# to toggle selection, 'n'-next page, 'p'-previous page or 'c'-continue: ")
>          if idx.isdigit():
> -            if int(idx) < 1 or int(idx) > min(len(drivers), page_length):
> +            if int(idx) < 1 or int(idx) > num_drivers:
>                  print("Invalid selection")
>                  continue
>              driver_idx = ((page-1) * page_length) + int(idx) - 1
>              drivers[driver_idx].selected = not drivers[driver_idx].selected
>          elif idx.lower() == 'n':
> -            if page < 1 + (len(drivers) / page_length):
> +            if page < num_pages:
>                  page += 1
>              else:
>                  print("Last page")
Looks good to me. Please rebase it on top of my patch for interactive
selection, I'd really like to get rid of it today so I'm about to push
it ASAP. :) Thanks!

-- 
Vratislav Podzimek

Anaconda Rider | Red Hat, Inc. | Brno - Czech Republic



More information about the anaconda-patches mailing list