summaryrefslogtreecommitdiff
path: root/lib/Ultramarine/Model/MusicFile.pm6
blob: 7c3ccd12689ae88b87c18fbe4bb9430991563f62 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
use v6.d.PREVIEW;
use JSON::Fast;
 
class Ultramarine::Model::MusicFile {
    has $.path is required;
    submethod BUILD(IO() :$!path!{}
 
    method metadata() {
        my $proc = run 'avprobe''-show_format','-of''json'$.path.absolute,
        :err,:out;
        CATCH { when X::Proc::Unsuccessful { return %() } }
        my $json-str = $proc.out.slurp(:close);
        $proc.err.close();
        return (from-json $json-str){'format'};
    }
}