| 466 | | my $flavors = $self->_collect_flavors; |
| 467 | | $self->_show_flavors_list($flavors); |
| 468 | | |
| 469 | | my $selected = $self->dialog( 'Select flavor:', 1 ); |
| 470 | | $flavors->[ $selected - 1 ] || 'default'; |
| 471 | | } |
| 472 | | |
| 473 | | sub _collect_flavors { |
| 474 | | my $self = shift; |
| 475 | | my $flavors_dir = $self->module_setup_dir('flavors'); |
| 476 | | my $flavors = []; |
| 477 | | for my $flavor ( $flavors_dir->children ) { |
| 478 | | if ( $flavor->is_dir ) { |
| 479 | | my $flavor_name = pop @{ $flavor->{dirs} }; |
| 480 | | push @$flavors, $flavor_name; |
| 481 | | } |
| 482 | | } |
| 483 | | $flavors; |
| 484 | | } |
| 485 | | |
| 486 | | sub _show_flavors_list { |
| 487 | | my ( $self, $flavors ) = @_; |
| 488 | | for ( 1 .. @$flavors ) { |
| 489 | | my $flavor = $flavors->[ $_ - 1 ]; |
| 490 | | print sprintf "[%d]: %s", $_, $flavor . "\n"; |
| 491 | | } |
| 492 | | } |
| | 466 | my $num = 1; |
| | 467 | my @flavors; |
| | 468 | for my $flavor ( $self->module_setup_dir('flavors')->children ) { |
| | 469 | next unless $flavor->is_dir; |
| | 470 | |
| | 471 | my $name = $flavor->dir_list(-1); |
| | 472 | push @flavors, $name; |
| | 473 | |
| | 474 | $self->log( sprintf "[%d]: %s", $num++, $name ); |
| | 475 | } |
| | 476 | |
| | 477 | my $selected = $self->dialog( 'Select flavor:', 1 ) || 1; |
| | 478 | $flavors[ $selected - 1 ] || 'default'; |
| | 479 | } |
| | 480 | |