has $min_song_interval :reader = parse_duration('13d');
has $min_artist_interval :reader = parse_duration('1h 15m');
has $skip_db_update :reader = 0;
+has $initial_reconnect_delay :reader = parse_duration('3 seconds');
+has $max_reconnect_delay :reader = parse_duration('2 minutes');
method parse_command_line {
Getopt::Long::GetOptions(
say "[mpd]";
say "host = " . ( $mpd_host // '' );
say "port = " . ( $mpd_port // '' );
+ say "initial-reconnect-delay = "
+ . duration_exact($initial_reconnect_delay);
+ say "max-reconnect-delay = " . duration_exact($max_reconnect_delay);
say "";
say "[queue]";
say "target-length = $target_queue_length";
handle_config_option( $ini => mpd => host => \$mpd_host );
handle_config_option( $ini => mpd => port => \$mpd_port );
+ handle_config_option(
+ $ini => mpd => 'initial-reconnect-delay' => \$initial_reconnect_delay,
+ \&parse_duration
+ );
+ handle_config_option(
+ $ini => mpd => 'max-reconnect-delay' => \$max_reconnect_delay,
+ \&parse_duration
+ );
handle_config_option( $ini => 'mpd-feeder' => log_level => \$log_level );