Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Bower components Debian packages RPM packages NuGet packages

beebox / crossover   deb

Repository URL to install this package:

Version: 18.5.0-1 

/ opt / cxoffice / lib / perl / CXAssocDebian.pm

# (c) Copyright 2005, 2010, 2014. CodeWeavers, Inc.
package CXAssocDebian;
use warnings;
use strict;

use CXLog;
use CXUtils;
use CXAssocMcap;
use base "CXAssocMcap";


#####
#
# Main
#
#####

sub read_mailcap($)
{
    my ($self)=@_;
    if (!$self->{rwmcap})
    {
        cxlog("Reading '$self->{mailcap}'\n");
        $self->{rwmcap}=CXRWBlob->new($self->{tag}, $self->{mailcap},
                                      "mailcap", $self->{multiline});
    }
    return $self->{rwmcap};
}

sub detect($$$$)
{
    my ($class, $cxoptions, $cxconfig, $gui_info)=@_;
    return () if (!$gui_info->{debian_mime_on} or
                  !$gui_info->{debian_preferred_assoc} or
                  # Debian associations are for root only
                  $> != 0);

    my $self=CXAssocMcap->new("deb", $cxoptions, $cxconfig, $gui_info);
    $self->{assoc} = "$cxoptions->{destdir}$gui_info->{debian_preferred_assoc}";
    $self->{mailcap} = "$self->{assoc}/cxassoc-$self->{tag}" if (defined $self->{tag});
    bless $self, $class;
    return ($self);
}

sub id($)
{
    my ($self)=@_;
    my $id="CXAssocDebian/$self->{assoc}";
    $id =~ s%/+%/%g;
    return $id;
}

sub get_association_files($$$$)
{
    my ($self, $massoc, $adata, $state)=@_;
    return -f $self->{mailcap} ? [$self->{mailcap}] : [];
}

sub get_files($$)
{
    my ($self, $massoc)=@_;
    return $self->action($self->{mimes}, $massoc, "getfiles");
}

sub removeall($$)
{
    my ($self, $pattern)=@_;
    $self->{mimes}->removeall($self->{domain}, $pattern);

    if ($pattern eq "legacy")
    {
        $pattern="^" . CXUtils::get_product_id() . "\$";
    }
    else
    {
        $pattern="^cxassoc-$pattern";
    }
    CXUtils::delete_files($self->{assoc}, $pattern);

    return 1;
}

sub finalize($)
{
    my ($self)=@_;

    my $rc=$self->SUPER::finalize();
    cxsystem("update-mime") if (!$self->{destdir});
    return $rc;
}

return 1;