defined $opt_uid
);
-my %version = get_version();
+my %version = get_version $opt_distribution_label;
print_format "<|BOLD Configuring InspIRCd $version{FULL} on $^O.|>\n";
our %config;
}
}
-# If the user has specified a distribution label then we use it in
-# place of the label from src/version.sh or Git.
-if (defined $opt_distribution_label) {
- $version{LABEL} = $opt_distribution_label;
-}
-
if (defined $opt_system) {
$config{BASE_DIR} = $opt_prefix // '/var/lib/inspircd';
$config{BINARY_DIR} = $opt_binary_dir // '/usr/sbin';
system './tools/genssl', 'auto';
}
+# Cache the distribution label so that its not lost when --update is run.
+$config{DISTRIBUTION} = $opt_distribution_label if $opt_distribution_label;
+
write_configure_cache %config;
parse_templates \%config, \%compiler, \%version;
$version{LABEL} = $4 if defined $4;
}
+ # If the user has specified a distribution label then we use it in
+ # place of the label from src/version.sh or Git.
+ $version{LABEL} = shift // $version{LABEL};
+
# If any of these fields are missing then the user has deleted the
# version file and is not running from Git. Fill in the fields with
# dummy data so we don't get into trouble with undef values later.
--socketengine=[name] Sets the socket engine to be used. Possible
values are $SELIST.
--uid=[id|name] Sets the user to run InspIRCd as.
- --update Updates the build environment.
+ --update Updates the build environment with the settings
+ from the cache.
FLAGS
say 'Updating...';
my %config = read_configure_cache();
my %compiler = get_compiler_info($config{CXX});
- my %version = get_version();
+ my %version = get_version $config{DISTRIBUTION};
parse_templates(\%config, \%compiler, \%version);
say 'Update complete!';
exit 0;