Skip to content

Commit b4d8913

Browse files
committed
improve _load_valid_user_project_config_with_default
1 parent fa669f3 commit b4d8913

File tree

1 file changed

+15
-18
lines changed

1 file changed

+15
-18
lines changed

lib/Perl/Dist/APPerl.pm

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -793,7 +793,7 @@ sub Init {
793793
_write_json(PROJECT_FILE, \%jsondata);
794794

795795
# checkout default config
796-
Set($jsondata{defaultconfig});
796+
Checkout($jsondata{defaultconfig});
797797
}
798798

799799
sub NewConfig {
@@ -881,11 +881,6 @@ sub _remove_arr_items_from_arr {
881881
}
882882
}
883883
}
884-
#foreach my $item (@{$toremove}) {
885-
# my $index = 0;
886-
# $index++ until $src->[$index] eq $item;
887-
# splice(@$src, $index, 1);
888-
#}
889884
}
890885

891886
sub Status {
@@ -948,7 +943,7 @@ sub _install_perl_src_files {
948943
}
949944
}
950945

951-
sub Set {
946+
sub Checkout {
952947
my ($cfgname) = @_;
953948
my $UserProjectConfig = _load_user_project_config();
954949
if($UserProjectConfig) {
@@ -1037,16 +1032,15 @@ sub Set {
10371032
$validperl = abs_path($validperl);
10381033
$validperl or die "no valid perl found to use for nobuild config";
10391034
$UserProjectConfig->{nobuild_perl_bin} = $validperl;
1040-
print "Set UserProjectConfig to nobuild_perl-bin to $validperl\n";
1035+
print "Checkout UserProjectConfig to nobuild_perl-bin to $validperl\n";
10411036
}
10421037
_write_user_project_config($UserProjectConfig);
10431038
print "$0: Successfully switched to $cfgname\n";
10441039
}
10451040

10461041
sub Configure {
10471042
my $Configs = _load_apperl_configs();
1048-
my $UserProjectConfig = _load_valid_user_project_config_with_default($Configs) or die "cannot Configure without valid UserProjectConfig";
1049-
my $CurAPPerlName = $UserProjectConfig->{current_apperl};
1043+
my ($UserProjectConfig, $CurAPPerlName) = _load_valid_user_project_config_with_default($Configs) or die "cannot Configure without valid UserProjectConfig";
10501044
! exists $UserProjectConfig->{nobuild_perl_bin} or die "nobuild perl cannot be configured";
10511045
my $perl_build_dir = $UserProjectConfig->{configs}{$CurAPPerlName}{perl_build_dir};
10521046
$perl_build_dir && -d $perl_build_dir or die "$perl_build_dir is not a directory";
@@ -1111,8 +1105,7 @@ sub _find_zip {
11111105
sub Build {
11121106
my ($zippath) = @_;
11131107
my $Configs = _load_apperl_configs();
1114-
my $UserProjectConfig = _load_valid_user_project_config_with_default($Configs) or die "cannot Build without valid UserProjectConfig";
1115-
my $CurAPPerlName = $UserProjectConfig->{current_apperl};
1108+
my ($UserProjectConfig, $CurAPPerlName) = _load_valid_user_project_config_with_default($Configs) or die "cannot Build without valid UserProjectConfig";
11161109
my $itemconfig = _load_apperl_config($Configs->{apperl_configs}, $CurAPPerlName);
11171110
my $startdir = abs_path('./');
11181111

@@ -1423,7 +1416,7 @@ END_USAGE
14231416
elsif($command eq 'checkout') {
14241417
scalar(@_) == 1 or die('bad args');
14251418
my $cfgname = $_[0];
1426-
Perl::Dist::APPerl::Set($cfgname);
1419+
Perl::Dist::APPerl::Checkout($cfgname);
14271420
}
14281421
elsif($command eq 'init') {
14291422
my $usage = <<'END_USAGE';
@@ -1661,17 +1654,21 @@ sub _load_valid_user_project_config {
16611654
if(exists $UserProjectConfig->{current_apperl}) {
16621655
my $CurAPPerlName = $UserProjectConfig->{current_apperl};
16631656
exists $Configs->{apperl_configs}{$CurAPPerlName} or die("non-existent apperl config $CurAPPerlName in user project config");
1664-
return $UserProjectConfig;
1657+
return ($UserProjectConfig, $CurAPPerlName);
16651658
}
16661659
}
1667-
return undef;
1660+
return ();
16681661
}
16691662

16701663
sub _load_valid_user_project_config_with_default {
16711664
my ($Configs) = @_;
1672-
my $UserProjectConfig = _load_valid_user_project_config($Configs);
1673-
return $UserProjectConfig if($UserProjectConfig || !exists $Configs->{defaultconfig});
1674-
Set($Configs->{defaultconfig});
1665+
my ($UserProjectConfig, $CurAPPerlName) = _load_valid_user_project_config($Configs);
1666+
if($UserProjectConfig) {
1667+
return ($UserProjectConfig, $CurAPPerlName);
1668+
} elsif(!exists $Configs->{defaultconfig}) {
1669+
return ();
1670+
}
1671+
Checkout($Configs->{defaultconfig});
16751672
return _load_valid_user_project_config($Configs);
16761673
}
16771674

0 commit comments

Comments
 (0)