summaryrefslogtreecommitdiff
path: root/scripts/vyatta-image-tools.pl
diff options
context:
space:
mode:
authorAlex Harpin <development@landsofshadow.co.uk>2014-10-09 20:50:12 +0100
committerAlex Harpin <development@landsofshadow.co.uk>2014-10-09 20:50:12 +0100
commit167c2e9c13550ee4867df56344ef3fa6d2fb6bcb (patch)
treedd3b9e2c2fc0cc103e068319f2e6b38c411acac7 /scripts/vyatta-image-tools.pl
parent99bd18da9a6c1c91f5b2847840888b9d3e889903 (diff)
downloadvyatta-op-167c2e9c13550ee4867df56344ef3fa6d2fb6bcb.tar.gz
vyatta-op-167c2e9c13550ee4867df56344ef3fa6d2fb6bcb.zip
vyatta-op: formatting changes for style consistency
Update scripts/vyatta-image-tools.pl to have consistent identation levels and style throughout.
Diffstat (limited to 'scripts/vyatta-image-tools.pl')
-rwxr-xr-xscripts/vyatta-image-tools.pl544
1 files changed, 273 insertions, 271 deletions
diff --git a/scripts/vyatta-image-tools.pl b/scripts/vyatta-image-tools.pl
index 657aae3..8afeccf 100755
--- a/scripts/vyatta-image-tools.pl
+++ b/scripts/vyatta-image-tools.pl
@@ -9,330 +9,332 @@ my ($show, $delete, $updateone);
my @copy;
my @update;
-GetOptions("show=s" => \$show,
- "delete=s" => \$delete,
- "update=s{2}" => \@update,
- "updateone=s" => \$updateone,
- "copy=s{2}" => \@copy);
+GetOptions(
+ "show=s" => \$show,
+ "delete=s" => \$delete,
+ "update=s{2}" => \@update,
+ "updateone=s" => \$updateone,
+ "copy=s{2}" => \@copy
+);
if (defined $show){
- show($show);
+ show($show);
}
if (defined $delete){
- delete_file($delete);
+ delete_file($delete);
}
if (@update){
- update(@update);
+ update(@update);
}
if (defined($updateone)){
- update($updateone, "running");
+ update($updateone, "running");
}
if (@copy){
- copy(@copy);
+ copy(@copy);
}
sub conv_file {
- my $file = " ";
- my $filein = pop(@_);
- $file = $filein;
- my $topdir;
- if ($file =~ /(.+?):\/\/(.*)/){
- $topdir = $1;
- $file = $2;
- } elsif ($file =~ /^\//) {
- $topdir = "running";
- } else {
- print "File: $filein not found \n";
- exit 1;
- }
- if ( $topdir eq "running" ) {
- $file = "/$file";
- } elsif ( lc($topdir) eq 'disk-install' ) {
- $file = "/live/image/$file";
- } elsif ( lc($topdir) eq 'tftp') {
+ my $file = " ";
+ my $filein = pop(@_);
$file = $filein;
- $topdir = 'url';
- } elsif ( lc($topdir) eq 'http') {
- $file = $filein;
- $topdir = 'url';
- } elsif ( lc($topdir) eq 'ftp') {
- $file = $filein;
- $topdir = 'url';
- } elsif ( lc($topdir) eq 'scp') {
- $file = $filein;
- $topdir = 'url';
- } else {
- if (! -d "/live/image/boot/$topdir/live-rw"){
- print "Image $topdir not found!\n";
- exit 1;
+ my $topdir;
+ if ($file =~ /(.+?):\/\/(.*)/){
+ $topdir = $1;
+ $file = $2;
+ } elsif ($file =~ /^\//) {
+ $topdir = "running";
+ } else {
+ print "File: $filein not found \n";
+ exit 1;
}
- $file = "/live/image/boot/$topdir/live-rw/$file";
- }
- return ($topdir, $file);
+ if ($topdir eq "running") {
+ $file = "/$file";
+ } elsif (lc($topdir) eq 'disk-install') {
+ $file = "/live/image/$file";
+ } elsif (lc($topdir) eq 'tftp') {
+ $file = $filein;
+ $topdir = 'url';
+ } elsif (lc($topdir) eq 'http') {
+ $file = $filein;
+ $topdir = 'url';
+ } elsif (lc($topdir) eq 'ftp') {
+ $file = $filein;
+ $topdir = 'url';
+ } elsif (lc($topdir) eq 'scp') {
+ $file = $filein;
+ $topdir = 'url';
+ } else {
+ if (!-d "/live/image/boot/$topdir/live-rw"){
+ print "Image $topdir not found!\n";
+ exit 1;
+ }
+ $file = "/live/image/boot/$topdir/live-rw/$file";
+ }
+ return ($topdir, $file);
}
sub conv_file_to_rel {
- my ($topdir, $filename) = @_;
- if ($topdir eq "running"){
- $filename =~ s?/?$topdir://?;
- } elsif ($topdir eq "disk-install") {
- $filename =~ s?/live/image/?$topdir://?;
- } else {
- $filename =~ s?/live/image/boot/$topdir/live-rw/?$topdir://?;
- }
- return $filename;
+ my ($topdir, $filename) = @_;
+ if ($topdir eq "running"){
+ $filename =~ s?/?$topdir://?;
+ } elsif ($topdir eq "disk-install") {
+ $filename =~ s?/live/image/?$topdir://?;
+ } else {
+ $filename =~ s?/live/image/boot/$topdir/live-rw/?$topdir://?;
+ }
+ return $filename;
}
sub delete_file {
- my ($file) = @_;
- (my $topdir, $file) = conv_file($file);
- if ($topdir eq 'url'){
- print "Cannot delete files from a url\n";
- exit 1;
- }
- if (-d $file){
- my $print_dir = conv_file_to_rel($topdir,$file);
- if (y_or_n("Do you want to erase the entire $print_dir directory?")){
- system("rm -rf $file");
- print("Directory erased\n");
+ my ($file) = @_;
+ (my $topdir, $file) = conv_file($file);
+ if ($topdir eq 'url'){
+ print "Cannot delete files from a url\n";
+ exit 1;
}
- } elsif (-f $file) {
- my $print_file = conv_file_to_rel($topdir,$file);
- if (y_or_n("Do you want to erase the $print_file file?")){
- system("rm -rf $file");
- print("File erased\n");
+ if (-d $file){
+ my $print_dir = conv_file_to_rel($topdir,$file);
+ if (y_or_n("Do you want to erase the entire $print_dir directory?")){
+ system("rm -rf $file");
+ print("Directory erased\n");
+ }
+ } elsif (-f $file) {
+ my $print_file = conv_file_to_rel($topdir,$file);
+ if (y_or_n("Do you want to erase the $print_file file?")){
+ system("rm -rf $file");
+ print("File erased\n");
+ }
}
- }
}
sub url_copy {
- my ($from, $to) = @_;
- my ($f_topdir, $t_topdir);
- ($f_topdir, $from) = conv_file($from);
- ($t_topdir, $to) = conv_file($to);
- if ($t_topdir eq 'url' && $f_topdir eq 'url'){
- print "Cannot copy a url to a url\n";
- exit 1;
- } elsif($t_topdir eq 'url') {
- if (-d $from){
- print "Cannot upload an entire directory to url\n";
- exit 1;
- } elsif ($to =~ /http/){
- print "Cannot upload to http url\n";
- exit 1;
- }
- curl_to($from, $to);
- } elsif ($f_topdir eq 'url') {
- if (-d $to){
- $from =~ /.*\/(.*)/;
- my $from_file = $1;
- $to = "$to/$from_file";
- if (-f "$to") {
- if (!y_or_n("This file exists; overwrite if needed?")){
- exit 0;
+ my ($from, $to) = @_;
+ my ($f_topdir, $t_topdir);
+ ($f_topdir, $from) = conv_file($from);
+ ($t_topdir, $to) = conv_file($to);
+ if ($t_topdir eq 'url' && $f_topdir eq 'url'){
+ print "Cannot copy a url to a url\n";
+ exit 1;
+ } elsif($t_topdir eq 'url') {
+ if (-d $from){
+ print "Cannot upload an entire directory to url\n";
+ exit 1;
+ } elsif ($to =~ /http/){
+ print "Cannot upload to http url\n";
+ exit 1;
}
- }
+ curl_to($from, $to);
+ } elsif ($f_topdir eq 'url') {
+ if (-d $to){
+ $from =~ /.*\/(.*)/;
+ my $from_file = $1;
+ $to = "$to/$from_file";
+ if (-f "$to") {
+ if (!y_or_n("This file exists; overwrite if needed?")){
+ exit 0;
+ }
+ }
+ }
+ curl_from($from, $to);
}
- curl_from($from, $to);
- }
- exit 0;
+ exit 0;
}
sub copy {
- my ($from, $to) = @_;
- my ($f_topdir, $t_topdir);
- ($f_topdir, $from) = conv_file($from);
- if ($f_topdir eq 'url'){
- url_copy($from, $to);
- }
- ($t_topdir, $to) = conv_file($to);
- if ($t_topdir eq 'url'){
- url_copy($from, $to);
- }
- $from =~ /.*\/(.*)/;
- my $from_file = $1;
- if ( -d $from && -e $to && !( -d $to ) ){
- print "Cannot copy a directory to a file.\n";
- return 1;
- } elsif ( -f $to || (-d $to && -f "$to/$from_file") ) {
- if (y_or_n("This file exists; overwrite if needed?")){
- rsync($from, $to);
+ my ($from, $to) = @_;
+ my ($f_topdir, $t_topdir);
+ ($f_topdir, $from) = conv_file($from);
+ if ($f_topdir eq 'url'){
+ url_copy($from, $to);
}
- } elsif ( -d $to && -d $from ){
- if (y_or_n("This directory exists; would you like to merge?")){
- rsync($from, $to);
+ ($t_topdir, $to) = conv_file($to);
+ if ($t_topdir eq 'url'){
+ url_copy($from, $to);
+ }
+ $from =~ /.*\/(.*)/;
+ my $from_file = $1;
+ if (-d $from && -e $to && !(-d $to)){
+ print "Cannot copy a directory to a file.\n";
+ return 1;
+ } elsif (-f $to || (-d $to && -f "$to/$from_file")) {
+ if (y_or_n("This file exists; overwrite if needed?")){
+ rsync($from, $to);
+ }
+ } elsif (-d $to && -d $from){
+ if (y_or_n("This directory exists; would you like to merge?")){
+ rsync($from, $to);
+ }
+ } else {
+ rsync($from, $to);
}
- } else {
- rsync($from, $to);
- }
}
sub update {
- my ($to, $from) = @_;
- my ($t_topdir, $f_topdir);
- ($f_topdir, $from) = conv_file("$from://");
- if ($f_topdir eq 'url'){
- print "Cannot clone from a url\n";
- exit 1;
- }
- ($t_topdir, $to) = conv_file("$to://");
- if ($t_topdir eq 'running'){
- print "Cannot clone to running\n";
- exit 1;
- }
- if ($t_topdir eq 'disk-install'){
- print "Cannot clone to disk-install\n";
- exit 1;
- }
- if ($t_topdir eq 'url'){
- print "Cannot clone to a url\n";
- exit 1;
- }
- my $print_from = conv_file_to_rel($f_topdir, $from);
- my $print_to = conv_file_to_rel($t_topdir, $to);
- my $msg = "WARNING: This is a destructive copy of the /config directories\n"
- . "This will erase all data in the ".$print_to."config directory\n"
- . "This data will be replaced with the data from ".$print_from."config\n"
- . "The current config data will be backed up in ".$print_to."config.preclone\n"
- . "Do you wish to continue?";
- if (y_or_n("$msg")){
- system("rm -rf $to/config.preclone");
- system("mv $to/config $to/config.preclone") if ( -d "$to/config" );
- my $confdir="config";
- $confdir="opt/vyatta/etc/config" if ( $f_topdir eq "disk-install" );
- if (rsync("$from/$confdir", $to) > 0){
- print "Clone Failed!\nRestoring old config\n";
- system("mv $to/config.preclone $to/config");
+ my ($to, $from) = @_;
+ my ($t_topdir, $f_topdir);
+ ($f_topdir, $from) = conv_file("$from://");
+ if ($f_topdir eq 'url'){
+ print "Cannot clone from a url\n";
+ exit 1;
+ }
+ ($t_topdir, $to) = conv_file("$to://");
+ if ($t_topdir eq 'running'){
+ print "Cannot clone to running\n";
+ exit 1;
+ }
+ if ($t_topdir eq 'disk-install'){
+ print "Cannot clone to disk-install\n";
+ exit 1;
+ }
+ if ($t_topdir eq 'url'){
+ print "Cannot clone to a url\n";
+ exit 1;
+ }
+ my $print_from = conv_file_to_rel($f_topdir, $from);
+ my $print_to = conv_file_to_rel($t_topdir, $to);
+ my $msg = "WARNING: This is a destructive copy of the /config directories\n".
+ "This will erase all data in the ".$print_to."config directory\n".
+ "This data will be replaced with the data from ".$print_from."config\n".
+ "The current config data will be backed up in ".$print_to."config.preclone\n".
+ "Do you wish to continue?";
+ if (y_or_n("$msg")){
+ system("rm -rf $to/config.preclone");
+ system("mv $to/config $to/config.preclone") if (-d "$to/config");
+ my $confdir="config";
+ $confdir="opt/vyatta/etc/config" if ($f_topdir eq "disk-install");
+ if (rsync("$from/$confdir", $to) > 0){
+ print "Clone Failed!\nRestoring old config\n";
+ system("mv $to/config.preclone $to/config");
+ }
}
- }
}
sub rsync {
- my ($from,$to) = @_;
- system("rsync -a --progress --exclude '.wh.*' $from $to");
- return $?;
+ my ($from,$to) = @_;
+ system("rsync -a --progress --exclude '.wh.*' $from $to");
+ return $?;
}
sub curl_to {
- my ($from, $to) = @_;
- my $rc = system("curl -# -T $from $to");
- if ($to =~ /scp/ && ($rc >> 8) == 51){
- $to =~ m/scp:\/\/(.*?)\//;
- my $host = $1;
- if ($host =~ m/.*@(.*)/) {
- $host = $1;
- }
- my $rsa_key = `ssh-keyscan -t rsa $host 2>/dev/null`;
- print "The authenticity of host '$host' can't be established.\n";
- my $fingerprint = `ssh-keygen -lf /dev/stdin <<< \"$rsa_key\" | awk {' print \$2 '}`;
- chomp $fingerprint;
- print "RSA key fingerprint is $fingerprint.\n";
- if (prompt("Are you sure you want to continue connecting (yes/no) [Yes]? ", -tynd=>"y")) {
- mkdir "~/.ssh/";
- open(my $known_hosts, ">>", "$ENV{HOME}/.ssh/known_hosts")
- or die "Cannot open known_hosts: $!";
- print $known_hosts "$rsa_key\n";
- close($known_hosts);
- $rc = system("curl -# -T $from $to");
- print "\n";
- }
- }
- print "\n";
+ my ($from, $to) = @_;
+ my $rc = system("curl -# -T $from $to");
+ if ($to =~ /scp/ && ($rc >> 8) == 51){
+ $to =~ m/scp:\/\/(.*?)\//;
+ my $host = $1;
+ if ($host =~ m/.*@(.*)/) {
+ $host = $1;
+ }
+ my $rsa_key = `ssh-keyscan -t rsa $host 2>/dev/null`;
+ print "The authenticity of host '$host' can't be established.\n";
+ my $fingerprint = `ssh-keygen -lf /dev/stdin <<< \"$rsa_key\" | awk {' print \$2 '}`;
+ chomp $fingerprint;
+ print "RSA key fingerprint is $fingerprint.\n";
+ if (prompt("Are you sure you want to continue connecting (yes/no) [Yes]? ", -tynd=>"y")) {
+ mkdir "~/.ssh/";
+ open(my $known_hosts, ">>", "$ENV{HOME}/.ssh/known_hosts")
+ or die "Cannot open known_hosts: $!";
+ print $known_hosts "$rsa_key\n";
+ close($known_hosts);
+ $rc = system("curl -# -T $from $to");
+ print "\n";
+ }
+ }
+ print "\n";
}
sub curl_from {
- my ($from, $to) = @_;
- my $rc = system("curl -# $from > $to");
- if ($from =~ /scp/ && ($rc >> 8) == 51){
- $from =~ m/scp:\/\/(.*?)\//;
- my $host = $1;
- if ($host =~ m/.*@(.*)/) {
- $host = $1;
- }
- my $rsa_key = `ssh-keyscan -t rsa $host 2>/dev/null`;
- print "The authenticity of host '$host' can't be established.\n";
- my $fingerprint = `ssh-keygen -lf /dev/stdin <<< \"$rsa_key\" | awk {' print \$2 '}`;
- chomp $fingerprint;
- print "RSA key fingerprint is $fingerprint.\n";
- if (prompt("Are you sure you want to continue connecting (yes/no) [Yes]? ", -tynd=>"y")) {
- mkdir "~/.ssh/";
- open(my $known_hosts, ">>", "$ENV{HOME}/.ssh/known_hosts")
- or die "Cannot open known_hosts: $!";
- print $known_hosts "$rsa_key\n";
- close($known_hosts);
- $rc = system("curl -# $from > $to");
- print "\n";
- }
- }
- print "\n";
+ my ($from, $to) = @_;
+ my $rc = system("curl -# $from > $to");
+ if ($from =~ /scp/ && ($rc >> 8) == 51){
+ $from =~ m/scp:\/\/(.*?)\//;
+ my $host = $1;
+ if ($host =~ m/.*@(.*)/) {
+ $host = $1;
+ }
+ my $rsa_key = `ssh-keyscan -t rsa $host 2>/dev/null`;
+ print "The authenticity of host '$host' can't be established.\n";
+ my $fingerprint = `ssh-keygen -lf /dev/stdin <<< \"$rsa_key\" | awk {' print \$2 '}`;
+ chomp $fingerprint;
+ print "RSA key fingerprint is $fingerprint.\n";
+ if (prompt("Are you sure you want to continue connecting (yes/no) [Yes]? ", -tynd=>"y")) {
+ mkdir "~/.ssh/";
+ open(my $known_hosts, ">>", "$ENV{HOME}/.ssh/known_hosts")
+ or die "Cannot open known_hosts: $!";
+ print $known_hosts "$rsa_key\n";
+ close($known_hosts);
+ $rc = system("curl -# $from > $to");
+ print "\n";
+ }
+ }
+ print "\n";
}
sub y_or_n {
- my ($msg) = @_;
- my $process_client = $ENV{'VYATTA_PROCESS_CLIENT'};
- if (defined $process_client){
- return 1 if ($process_client =~ /gui2_rest/);
- }
- print "$msg (Y/N): ";
- my $input = <>;
- return 1 if ($input =~ /Y|y/);
- return 0;
+ my ($msg) = @_;
+ my $process_client = $ENV{'VYATTA_PROCESS_CLIENT'};
+ if (defined $process_client){
+ return 1 if ($process_client =~ /gui2_rest/);
+ }
+ print "$msg (Y/N): ";
+ my $input = <>;
+ return 1 if ($input =~ /Y|y/);
+ return 0;
}
sub show {
- my ($topdir, $file) = conv_file(pop(@_));
- my $output = "";
- if ($topdir eq 'url'){
- print "Cannot show files from a url\n";
- exit 1;
- }
- if ( -d $file ) {
- print "########### DIRECTORY LISTING ###########\n";
- system("ls -lGph --group-directories-first $file");
- } elsif ( -T $file ) {
- print "########### FILE INFO ###########\n";
- my $filename = conv_file_to_rel($topdir, $file);
- print "File Name: $filename\n";
- print "Text File: \n";
- my $lsstr = `ls -lGh $file`;
- parsels($lsstr);
- print " Description:\t";
- system("file -sb $file");
- print "\n########### FILE DATA ###########\n";
- system("cat $file");
- } elsif ( $file =~ /.*\.pcap/ ){
- print "########### FILE INFO ###########\n";
- my $filename = conv_file_to_rel($topdir, $file);
- print "File Name: $filename\n";
- print "Binary File: \n";
- my $lsstr = `ls -lGh $file`;
- parsels($lsstr);
- print " Description:\t";
- system("file -sb $file");
- print "\n########### FILE DATA ###########\n";
- system("sudo tshark -r $file | less");
- } elsif ( -B $file ) {
- print "########### FILE INFO ###########\n";
- my $filename = conv_file_to_rel($topdir, $file);
- print "File Name: $filename\n";
- print "Binary File: \n";
- my $lsstr = `ls -lGh $file`;
- parsels($lsstr);
- print " Description:\t";
- system("file -sb $file");
- print "\n########### FILE DATA ###########\n";
- system("hexdump -C $file| less");
- } else {
- my $filename = conv_file_to_rel($topdir, $file);
- print "File: $filename not found\n";
- }
+ my ($topdir, $file) = conv_file(pop(@_));
+ my $output = "";
+ if ($topdir eq 'url'){
+ print "Cannot show files from a url\n";
+ exit 1;
+ }
+ if (-d $file) {
+ print "########### DIRECTORY LISTING ###########\n";
+ system("ls -lGph --group-directories-first $file");
+ } elsif (-T $file) {
+ print "########### FILE INFO ###########\n";
+ my $filename = conv_file_to_rel($topdir, $file);
+ print "File Name: $filename\n";
+ print "Text File: \n";
+ my $lsstr = `ls -lGh $file`;
+ parsels($lsstr);
+ print " Description:\t";
+ system("file -sb $file");
+ print "\n########### FILE DATA ###########\n";
+ system("cat $file");
+ } elsif ($file =~ /.*\.pcap/){
+ print "########### FILE INFO ###########\n";
+ my $filename = conv_file_to_rel($topdir, $file);
+ print "File Name: $filename\n";
+ print "Binary File: \n";
+ my $lsstr = `ls -lGh $file`;
+ parsels($lsstr);
+ print " Description:\t";
+ system("file -sb $file");
+ print "\n########### FILE DATA ###########\n";
+ system("sudo tshark -r $file | less");
+ } elsif (-B $file) {
+ print "########### FILE INFO ###########\n";
+ my $filename = conv_file_to_rel($topdir, $file);
+ print "File Name: $filename\n";
+ print "Binary File: \n";
+ my $lsstr = `ls -lGh $file`;
+ parsels($lsstr);
+ print " Description:\t";
+ system("file -sb $file");
+ print "\n########### FILE DATA ###########\n";
+ system("hexdump -C $file| less");
+ } else {
+ my $filename = conv_file_to_rel($topdir, $file);
+ print "File: $filename not found\n";
+ }
}
sub parsels {
- my $lsout = pop(@_);
- my @ls = split(' ', $lsout);
- print " Permissions: $ls[0]\n";
- print " Owner:\t$ls[2]\n";
- print " Size:\t\t$ls[3]\n";
- print " Modified:\t$ls[4] $ls[5] $ls[6]\n";
+ my $lsout = pop(@_);
+ my @ls = split(' ', $lsout);
+ print " Permissions: $ls[0]\n";
+ print " Owner:\t$ls[2]\n";
+ print " Size:\t\t$ls[3]\n";
+ print " Modified:\t$ls[4] $ls[5] $ls[6]\n";
}