|
|
|
@ -538,8 +538,8 @@ sub getarg{
|
|
|
|
|
# # printmes(" --mailgroupadd=value\t"); printmes(gettext('create a new email group')."\n");
|
|
|
|
|
# # printmes(" --mailgroupdel=value\t"); printmes(gettext('delete a email group')."\n");
|
|
|
|
|
|
|
|
|
|
printmes("\n".gettext('Updating').":\n");
|
|
|
|
|
printmes(" -u, --update\t\t"); printmes(gettext('download and install latest update available')."\n");
|
|
|
|
|
# printmes("\n".gettext('Updating').":\n");
|
|
|
|
|
# printmes(" -u, --update\t\t"); printmes(gettext('download and install latest update available')."\n");
|
|
|
|
|
|
|
|
|
|
printmes("\n".gettext('Informative output').":\n");
|
|
|
|
|
printmes(" -h, --help\t\t"); printmes(gettext('display this help and exit')."\n");
|
|
|
|
@ -3585,117 +3585,119 @@ sub profile{
|
|
|
|
|
#
|
|
|
|
|
#------------------------------------------------------------------------------
|
|
|
|
|
sub checkupdate{
|
|
|
|
|
printmes(gettext('Checking for updates available')); printmes("\n");
|
|
|
|
|
printmes(gettext('To upgrade Calculate Overlay launch eyx-sync')); printmes(".\n");
|
|
|
|
|
|
|
|
|
|
printmes(" ".gettext('Get available packages list')); printmes("...");
|
|
|
|
|
|
|
|
|
|
#Создадим временную директорию, если ее нет
|
|
|
|
|
if(!-e "$data{tmpdir}"){ system "$data{path} mkdir -p $data{tmpdir}"; }
|
|
|
|
|
|
|
|
|
|
if(system("$data{exec_wget} --cache=off --quiet ftp://ftp.calculate-linux.ru/pub/calculate/calculate/ -O $data{tmpdir}/index")){
|
|
|
|
|
printmes(" ".gettext('error').".\n");
|
|
|
|
|
return "";
|
|
|
|
|
}else{
|
|
|
|
|
printmes(" ".gettext('done').".\n");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#считаем файл имен пакетов Calculate
|
|
|
|
|
open (F,"$data{tmpdir}/index");
|
|
|
|
|
my $tmp = $/; undef $/; my $index=<F>; $/ = $tmp;
|
|
|
|
|
close (F);
|
|
|
|
|
`rm -rf "$data{tmpdir}/index"`;
|
|
|
|
|
|
|
|
|
|
printmes(" ".gettext('Perform updates search')); printmes("...");
|
|
|
|
|
|
|
|
|
|
#определим имя файла пакета Calculate
|
|
|
|
|
my $calcname = "calculate-".$data{"calcver"}.".tar.bz2";
|
|
|
|
|
#первый пробел меняем на тире, остальные убираем (для поддержки написания бета версий)
|
|
|
|
|
$calcname =~s/ /-/; $calcname =~s/ //g;
|
|
|
|
|
|
|
|
|
|
my ($calculate_last);
|
|
|
|
|
foreach(split "\n", $index){
|
|
|
|
|
if(m/\/pub\/calculate\/calculate\/(calculate\-[0-9\.\-beta]+\.tar\.bz2)/){
|
|
|
|
|
if($calculate_last lt $1){
|
|
|
|
|
$calculate_last = $1
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
printmes(" ".gettext('done').".\n");
|
|
|
|
|
|
|
|
|
|
my $flagnew = 0;
|
|
|
|
|
#если найденное обновление не выше существующей версии (<=)
|
|
|
|
|
if($calculate_last le $calcname && !defined $data{arg}{'force'}){
|
|
|
|
|
# printmes("\n".gettext('No updates available')); printmes(".\n");
|
|
|
|
|
# return 1;
|
|
|
|
|
}else{
|
|
|
|
|
printmes("\n".gettext('Update found')); printmes(": $calculate_last\n");
|
|
|
|
|
|
|
|
|
|
printmes("\n".gettext('Perform installation')); printmes("\n");
|
|
|
|
|
printmes(" ".gettext('Downloading update package')); printmes("...");
|
|
|
|
|
|
|
|
|
|
`$data{path} rm -rf "$data{tmpdir}/$calculate_last*"`; #удалим, для избежания возможных ошибок
|
|
|
|
|
if(system("$data{exec_wget} -c --quiet ftp://ftp.calculate-linux.ru/pub/calculate/calculate/$calculate_last -O $data{tmpdir}/$calculate_last && $data{exec_wget} -c --quiet ftp://ftp.calculate-linux.ru/pub/calculate/calculate/${calculate_last}.DIGESTS -O $data{tmpdir}/${calculate_last}.DIGESTS")){
|
|
|
|
|
printmes(" ".gettext('error').".\n");
|
|
|
|
|
return "";
|
|
|
|
|
}else{
|
|
|
|
|
printmes(" ".gettext('done').".\n");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
printmes(" ".gettext('Check the checksum')); printmes("...");
|
|
|
|
|
if(!check_digests("$data{tmpdir}/$calculate_last")){
|
|
|
|
|
printmes(" ".gettext('error').".\n");
|
|
|
|
|
#удалим, т.к. контрольные суммы не совпадают
|
|
|
|
|
printmes(" ".gettext('Delete temporary files')); printmes("...");
|
|
|
|
|
if(`rm -rf "$data{tmpdir}/$calculate_last*"`){
|
|
|
|
|
printmes(" ".gettext('error').".\n");
|
|
|
|
|
}else{
|
|
|
|
|
printmes(" ".gettext('done')); printmes(".\n");
|
|
|
|
|
}
|
|
|
|
|
return "";
|
|
|
|
|
}else{
|
|
|
|
|
printmes(" ".gettext('done').".\n");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
printmes(" ".gettext('Unpack the update')); printmes("...");
|
|
|
|
|
system("$data{path} mkdir install-old && cp -a install/* install-old && rm -rf install/*");
|
|
|
|
|
if(system("$data{path} tar -xjf $data{tmpdir}/$calculate_last -C ..")){
|
|
|
|
|
printmes(" ".gettext('error').".\n");
|
|
|
|
|
system("$data{path} rm -rf install/* && cp -a install-old/* install && rm -rf install-old");
|
|
|
|
|
return "";
|
|
|
|
|
}else{
|
|
|
|
|
system("$data{path} rm -rf install-old");
|
|
|
|
|
printmes(" ".gettext('done').".\n");
|
|
|
|
|
}
|
|
|
|
|
$flagnew ++;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
printmes(" ".gettext('Get')); printmes(" Calculate Overlay"); printmes("...");
|
|
|
|
|
if(
|
|
|
|
|
system("$data{exec_wget} --quiet -r --level=6 --no-parent --reject index.html --directory-prefix=/tmp http://svn.calculate.ru/overlay/") ||
|
|
|
|
|
system("rm -rf /usr/local/overlays/calculate") ||
|
|
|
|
|
system("mv /tmp/svn.calculate.ru/overlay /usr/local/overlays/calculate") ||
|
|
|
|
|
system("rmdir /tmp/svn.calculate.ru")
|
|
|
|
|
){
|
|
|
|
|
printmes(" ".gettext('error').".\n");
|
|
|
|
|
}else{
|
|
|
|
|
printmes(" ".gettext('done').".\n");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(-e "/usr/bin/update-eix"){
|
|
|
|
|
printmes(" ".gettext('Run')); printmes(" update-eix...");
|
|
|
|
|
if(system("/usr/bin/update-eix &>/dev/null")){
|
|
|
|
|
printmes(" ".gettext('error').".\n");
|
|
|
|
|
}else{
|
|
|
|
|
printmes(" ".gettext('done').".\n");
|
|
|
|
|
} }
|
|
|
|
|
|
|
|
|
|
if($flagnew){
|
|
|
|
|
printmes("\n".gettext('Latest update successfully installed')); printmes("!\n");
|
|
|
|
|
}else{
|
|
|
|
|
printmes(gettext('All done')); printmes("!\n");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return 1;
|
|
|
|
|
# printmes(gettext('Checking for updates available')); printmes("\n");
|
|
|
|
|
#
|
|
|
|
|
# printmes(" ".gettext('Get available packages list')); printmes("...");
|
|
|
|
|
#
|
|
|
|
|
# #Создадим временную директорию, если ее нет
|
|
|
|
|
# if(!-e "$data{tmpdir}"){ system "$data{path} mkdir -p $data{tmpdir}"; }
|
|
|
|
|
#
|
|
|
|
|
# if(system("$data{exec_wget} --cache=off --quiet ftp://ftp.calculate-linux.ru/pub/calculate/calculate/ -O $data{tmpdir}/index")){
|
|
|
|
|
# printmes(" ".gettext('error').".\n");
|
|
|
|
|
# return "";
|
|
|
|
|
# }else{
|
|
|
|
|
# printmes(" ".gettext('done').".\n");
|
|
|
|
|
# }
|
|
|
|
|
#
|
|
|
|
|
# #считаем файл имен пакетов Calculate
|
|
|
|
|
# open (F,"$data{tmpdir}/index");
|
|
|
|
|
# my $tmp = $/; undef $/; my $index=<F>; $/ = $tmp;
|
|
|
|
|
# close (F);
|
|
|
|
|
# `rm -rf "$data{tmpdir}/index"`;
|
|
|
|
|
#
|
|
|
|
|
# printmes(" ".gettext('Perform updates search')); printmes("...");
|
|
|
|
|
#
|
|
|
|
|
# #определим имя файла пакета Calculate
|
|
|
|
|
# my $calcname = "calculate-".$data{"calcver"}.".tar.bz2";
|
|
|
|
|
# #первый пробел меняем на тире, остальные убираем (для поддержки написания бета версий)
|
|
|
|
|
# $calcname =~s/ /-/; $calcname =~s/ //g;
|
|
|
|
|
#
|
|
|
|
|
# my ($calculate_last);
|
|
|
|
|
# foreach(split "\n", $index){
|
|
|
|
|
# if(m/\/pub\/calculate\/calculate\/(calculate\-[0-9\.\-beta]+\.tar\.bz2)/){
|
|
|
|
|
# if($calculate_last lt $1){
|
|
|
|
|
# $calculate_last = $1
|
|
|
|
|
# }
|
|
|
|
|
# }
|
|
|
|
|
# }
|
|
|
|
|
# printmes(" ".gettext('done').".\n");
|
|
|
|
|
#
|
|
|
|
|
# my $flagnew = 0;
|
|
|
|
|
# #если найденное обновление не выше существующей версии (<=)
|
|
|
|
|
# if($calculate_last le $calcname && !defined $data{arg}{'force'}){
|
|
|
|
|
# # printmes("\n".gettext('No updates available')); printmes(".\n");
|
|
|
|
|
# # return 1;
|
|
|
|
|
# }else{
|
|
|
|
|
# printmes("\n".gettext('Update found')); printmes(": $calculate_last\n");
|
|
|
|
|
#
|
|
|
|
|
# printmes("\n".gettext('Perform installation')); printmes("\n");
|
|
|
|
|
# printmes(" ".gettext('Downloading update package')); printmes("...");
|
|
|
|
|
#
|
|
|
|
|
# `$data{path} rm -rf "$data{tmpdir}/$calculate_last*"`; #удалим, для избежания возможных ошибок
|
|
|
|
|
# if(system("$data{exec_wget} -c --quiet ftp://ftp.calculate-linux.ru/pub/calculate/calculate/$calculate_last -O $data{tmpdir}/$calculate_last && $data{exec_wget} -c --quiet ftp://ftp.calculate-linux.ru/pub/calculate/calculate/${calculate_last}.DIGESTS -O $data{tmpdir}/${calculate_last}.DIGESTS")){
|
|
|
|
|
# printmes(" ".gettext('error').".\n");
|
|
|
|
|
# return "";
|
|
|
|
|
# }else{
|
|
|
|
|
# printmes(" ".gettext('done').".\n");
|
|
|
|
|
# }
|
|
|
|
|
#
|
|
|
|
|
# printmes(" ".gettext('Check the checksum')); printmes("...");
|
|
|
|
|
# if(!check_digests("$data{tmpdir}/$calculate_last")){
|
|
|
|
|
# printmes(" ".gettext('error').".\n");
|
|
|
|
|
# #удалим, т.к. контрольные суммы не совпадают
|
|
|
|
|
# printmes(" ".gettext('Delete temporary files')); printmes("...");
|
|
|
|
|
# if(`rm -rf "$data{tmpdir}/$calculate_last*"`){
|
|
|
|
|
# printmes(" ".gettext('error').".\n");
|
|
|
|
|
# }else{
|
|
|
|
|
# printmes(" ".gettext('done')); printmes(".\n");
|
|
|
|
|
# }
|
|
|
|
|
# return "";
|
|
|
|
|
# }else{
|
|
|
|
|
# printmes(" ".gettext('done').".\n");
|
|
|
|
|
# }
|
|
|
|
|
#
|
|
|
|
|
# printmes(" ".gettext('Unpack the update')); printmes("...");
|
|
|
|
|
# system("$data{path} mkdir install-old && cp -a install/* install-old && rm -rf install/*");
|
|
|
|
|
# if(system("$data{path} tar -xjf $data{tmpdir}/$calculate_last -C ..")){
|
|
|
|
|
# printmes(" ".gettext('error').".\n");
|
|
|
|
|
# system("$data{path} rm -rf install/* && cp -a install-old/* install && rm -rf install-old");
|
|
|
|
|
# return "";
|
|
|
|
|
# }else{
|
|
|
|
|
# system("$data{path} rm -rf install-old");
|
|
|
|
|
# printmes(" ".gettext('done').".\n");
|
|
|
|
|
# }
|
|
|
|
|
# $flagnew ++;
|
|
|
|
|
# }
|
|
|
|
|
#
|
|
|
|
|
# printmes(" ".gettext('Get')); printmes(" Calculate Overlay"); printmes("...");
|
|
|
|
|
# if(
|
|
|
|
|
# system("$data{exec_wget} --quiet -r --level=6 --no-parent --reject index.html --directory-prefix=/tmp http://svn.calculate.ru/overlay/") ||
|
|
|
|
|
# system("rm -rf /usr/local/overlays/calculate") ||
|
|
|
|
|
# system("mv /tmp/svn.calculate.ru/overlay /usr/local/overlays/calculate") ||
|
|
|
|
|
# system("rmdir /tmp/svn.calculate.ru")
|
|
|
|
|
# ){
|
|
|
|
|
# printmes(" ".gettext('error').".\n");
|
|
|
|
|
# }else{
|
|
|
|
|
# printmes(" ".gettext('done').".\n");
|
|
|
|
|
# }
|
|
|
|
|
#
|
|
|
|
|
# if(-e "/usr/bin/update-eix"){
|
|
|
|
|
# printmes(" ".gettext('Run')); printmes(" update-eix...");
|
|
|
|
|
# if(system("/usr/bin/update-eix &>/dev/null")){
|
|
|
|
|
# printmes(" ".gettext('error').".\n");
|
|
|
|
|
# }else{
|
|
|
|
|
# printmes(" ".gettext('done').".\n");
|
|
|
|
|
# } }
|
|
|
|
|
#
|
|
|
|
|
# if($flagnew){
|
|
|
|
|
# printmes("\n".gettext('Latest update successfully installed')); printmes("!\n");
|
|
|
|
|
# }else{
|
|
|
|
|
# printmes(gettext('All done')); printmes("!\n");
|
|
|
|
|
# }
|
|
|
|
|
#
|
|
|
|
|
# return 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#------------------------------------------------------------------------------
|
|
|
|
|