$pdf_mode = 4;
$lualatex =
q{lualatex -shell-escape -interaction=nonstopmode %O %S 2>&1 | perl -pe 's/(^!.*)/\e[1;31m$1\e[0m/; s/([Ww]arning)/\e[1;33m$1\e[0m/'};
$out_dir       = ".out";
$aux_dir       = ".aux";
$bibtex        = "biber %O %S";
$pdf_previewer = "zathura %O %S";

# Color output: https://tex.stackexchange.com/questions/617572/is-it-possible-to-make-latexmk-ouput-with-color
{
    no warnings 'redefine';
    use Term::ANSIColor;

    my $old_warn_running = \&main::warn_running;

    sub color_warn_running {
        print STDERR color('green');
        $old_warn_running->(@_);
        print STDERR color('reset');
    }

    my $old_failure = \&main::failure;

    sub color_failure {
        print STDERR color('bold red');
        $old_failure->(@_);
        print STDERR color('reset');
    }

    my $old_failure_msg = \&main::failure_msg;

    sub color_failure_msg {
        print STDERR color('bold red');
        $old_failure_msg->(@_);
        print STDERR color('reset');
    }

    if ( -t STDERR ) {
        *main::warn_running = \&color_warn_running;
        *main::failure      = \&color_failure;
        *main::failure_msg  = \&color_failure_msg;
    }
}

# https://tex.stackexchange.com/questions/1226/how-to-make-latexmk-use-makeglossaries
add_cus_dep( 'glo', 'gls', 0, 'run_makeglossaries' );
add_cus_dep( 'acn', 'acr', 0, 'run_makeglossaries' );

sub run_makeglossaries {
    my ( $base_name, $path ) =
      fileparse( $_[0] );  #handle -outdir param by splitting path and file, ...
    pushd $path; # ... cd-ing into folder first, then running makeglossaries ...

    if ($silent) {
        system "makeglossaries -q '$base_name'";    #unix
            # system "makeglossaries", "-q", "$base_name"; #windows
    }
    else {
        system "makeglossaries '$base_name'";    #unix
            # system "makeglossaries", "$base_name"; #windows
    }

    popd;    # ... and cd-ing back again
}

push @generated_exts, 'glo', 'gls', 'glg';
push @generated_exts, 'acn', 'acr', 'alg';
$clean_ext .= ' %R.ist %R.xdy';
