Server IP : 184.154.167.98 / Your IP : 3.138.120.112 Web Server : Apache System : Linux pink.dnsnetservice.com 4.18.0-553.22.1.lve.1.el8.x86_64 #1 SMP Tue Oct 8 15:52:54 UTC 2024 x86_64 User : puertode ( 1767) PHP Version : 7.2.34 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /scripts/ |
Upload File : |
#!/usr/local/cpanel/3rdparty/bin/perl # cpanel - scripts/gemwrapper Copyright 2022 cPanel, L.L.C. # All rights reserved. # copyright@cpanel.net http://cpanel.net # This code is subject to the cPanel license. Unauthorized copying is prohibited use strict; use Cpanel::FileUtils::Path (); my $hasperlexpect = 0; eval { require IO::Tty; require Expect; $hasperlexpect = 1; }; my $gem = Cpanel::FileUtils::Path::findinpath('gem'); if ( $> != 0 ) { my $homedir = ( getpwuid($>) )[7]; $ENV{'HOME'} = $homedir; # restore HOME (cleansed by saferun_r_cleanenv when called from Cpanel::LangMods) $ENV{'GEM_HOME'} = $homedir . '/ruby/gems/'; } if ( $ARGV[0] =~ m/noexpect/ ) { shift @ARGV; $hasperlexpect = 0; } if ( !$hasperlexpect ) { exec $gem, @ARGV; } $SIG{'ALRM'} = sub { die "Timeout\n"; }; alarm( 20 * 60 ); my $exp = Expect->spawn( $gem, @ARGV ) or die "Cannot spawn gem installer: $!"; my $pid = $exp->pid(); my $number = 0; while ( waitpid( $pid, 1 ) != -1 ) { $exp->expect( 300, [ qr/(.*\(ruby\).*)/, sub { if ( !$number ) { ($number) = $exp->match =~ /\s*(\d+)/; } } ], [ '>', sub { my $temp_number = 1; if ($number) { $temp_number = $number; $number = 0; } $exp->send( $temp_number . "\r" ); } ], [ 'eof', sub { exit; } ], [ 'timeout', sub { $exp->send("\r"); } ], ); } $exp->soft_close();