/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;
}
|