File: PkgCache.pm

package info (click to toggle)
dh-make-raku 0.8
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 184 kB
  • sloc: perl: 595; makefile: 4
file content (40 lines) | stat: -rw-r--r-- 1,004 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package PkgCache;

use v5.20;
use Path::Tiny;

use Config::Model::Dpkg::Dependency;

my $cache_file = path('t/dependency-cache.txt')->absolute;

$Config::Model::Dpkg::Dependency::use_test_cache = 1;
untie %Config::Model::Dpkg::Dependency::cache;
%Config::Model::Dpkg::Dependency::cache = ();

say "Loading cache";

foreach my $line ($cache_file->lines) {
    chomp $line;
    next unless $line;
    my ($k,$v) = split m/ => /, $line ;
    $Config::Model::Dpkg::Dependency::cache{$k} = time . ' '. $v ;
}

END {
    return if $::DebianDependencyCacheWritten ;
    my %h = %Config::Model::Dpkg::Dependency::cache ;
    do { s/^\d+ //;} for values %h ; # remove time stamp
    my $str = join ("\n", map { "$_ => $h{$_}" ;} sort keys %h) ;

    if ( -w $cache_file ) {
        say "writing back cache file";
        # not a big deal if cache cannot be written back
        $cache_file->spew($str);
        $::DebianDependencyCacheWritten=1;
    }
    else {
        say "can't write cache file";
    }
}

1;