This file is indexed.

/usr/share/cli-common/framework-package-install is in cli-common 0.9+nmu1.

This file is owned by root:root, with mode 0o755.

The actual contents of the file can be viewed below.

  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
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#!/usr/bin/perl

#
# Setup
#

# Directives
use strict;
use warnings;

# Modules
use File::Basename;

# This script gets the name of the package as the first parameter.  It
# parses the file given, then installs them as appropriate.
# If there is a second parameter, this is the only CLR installed.

#
# Handle the input file
#

# Get the package
my $pkg = $ARGV[0];
my $use_clr = $ARGV[1];
my $full = "/usr/share/cli-common/packages.d/$pkg";

# Make sure it exists
if ( ! -f "$full.installcliframework" )
{
    print STDERR "! $full.installcliframework doesn't exist!\n";
    exit 1;
}

# Parse the file
unless (open INPUT, "<$full.installcliframework")
{
    print STDERR "! Cannot open $full.installcliframework ($!)\n";
    exit 2;
}

my @files = ();

while (<INPUT>)
{
    # Clean up the line and ignore blanks and comments
    chomp;
    s/^\s+//;
    s/\s+$//;
    next if /^\#/;
    next if /^\s*$/;

    # Split on the space
    my @p = split(/\s+/);

    # Framework version is first...
    my $framework = shift @p;
    # ...then the file to install
    my $file = shift @p;

    if (! -f $file)
    {
	print STDERR "! Assembly $file does not exist\n";
	exit 3;
    }

    push @files, $framework;
    push @files, $file;
}

# Go through the installation targets
foreach my $clr (glob("/usr/share/cli-common/runtimes.d/*"))
{
    # Ignore temporary files
    next if $clr =~ /~$/;
    next if $clr =~ /^\./;

    # Get the "name"
    my $name = basename($clr);

    # Get the formal name
    my $formal = `$clr name`;
    $formal = $name if !defined $formal || $formal =~ /^\s*$/;
    chomp($formal);

    # Only use the one CLR if given
    next if (defined $use_clr && $name ne $use_clr);

    if (! check_framework_install_supported($clr))
    {
	print STDOUT "* Skipping $formal; no support for framework install\n";
	next;
    }

    # Install them
    my $t = (scalar(@files) / 2) . " assemblies";
    $t = "1 assembly" if (@files == 2);

    print STDOUT "* Installing $t from $pkg into $formal framework paths\n";
    system($clr, "install-framework", $pkg, @files) == 0 or die "E: Installation of $pkg with $clr failed\n";
}

sub check_framework_install_supported
{
    my $clr = shift;

    open PIPE, "$clr 2>&1 |" or die "E: Cannot query $clr capabilities";
    while (<PIPE>)
    {
	if (/install-framework/)
	{
	    return 1;
	}
    }
    return 0;
}