diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Emacs.pm | 76 |
1 files changed, 48 insertions, 28 deletions
diff --git a/lib/Emacs.pm b/lib/Emacs.pm index e15a664..dc409a3 100644 --- a/lib/Emacs.pm +++ b/lib/Emacs.pm @@ -14,39 +14,44 @@ use Term::ANSIColor qw/ :pushpop colored color /; sub sync { my ( $options ) = @_; my $verbose = $options->{verbose}; - my $authinfo_remote = "$ENV{HOME}/.authinfo-remote"; - my %path_perms = ( - $authinfo_remote => 0700, - "$authinfo_remote/team" => 0600, - "$authinfo_remote/inst" => 0600, - "$authinfo_remote/town" => 0600, - ); - - # Check path permissions. - say LOCALCOLOR CYAN "Checking path permissions..."; - foreach my $path ( sort keys %path_perms ) { - my $mode = S_IMODE(path($path)->stat->mode); - - if ( $mode == $path_perms{$path} ) { - say LOCALCOLOR GREEN "[OK] $path" - if $verbose; - } else { - warn "[ERR] $path - Expected: $path_perms{$path} :: Got: $mode - Changing permission...\n"; - - path("$path")->chmod($path_perms{$path}); - } - } - say LOCALCOLOR CYAN "[DONE] Permissions checked"; sub rsync { run3 ["openrsync", @_]; } - my @def_opt = qw{ --delete -oprt }; + my @def_opt = qw{ --delete -oprtl }; push @def_opt, "-v" if $verbose; - { + # Remove --delete. + my @no_del_opt = @def_opt; + shift @no_del_opt; + + if ($options->{authinfo}) { + my $authinfo_remote = "$ENV{HOME}/.authinfo-remote"; + my %path_perms = ( + $authinfo_remote => 0700, + "$authinfo_remote/team" => 0600, + "$authinfo_remote/inst" => 0600, + "$authinfo_remote/town" => 0600, + ); + + # Check path permissions. + say LOCALCOLOR CYAN "Checking path permissions..."; + foreach my $path ( sort keys %path_perms ) { + my $mode = S_IMODE(path($path)->stat->mode); + + if ( $mode == $path_perms{$path} ) { + say LOCALCOLOR GREEN "[OK] $path" + if $verbose; + } else { + warn "[ERR] $path + Expected: $path_perms{$path} :: Got: $mode + Changing permission...\n"; + + path("$path")->chmod($path_perms{$path}); + } + } + say LOCALCOLOR CYAN "[DONE] Permissions checked"; + say LOCALCOLOR CYAN "Syncing authinfo..."; my %authinfo_hosts = ( "tilde.team" => "$authinfo_remote/team", @@ -60,7 +65,7 @@ sub sync { say LOCALCOLOR CYAN "[DONE] authinfo sync"; } - { + if ($options->{config}) { say LOCALCOLOR CYAN "Syncing emacs config..."; my @hosts = qw{ tilde.team tilde.institute envs.net tilde.town }; @@ -80,6 +85,21 @@ sub sync { } say LOCALCOLOR CYAN "[Done] Emacs config sync"; } + + if ( $options->{irclogs} ) { + say LOCALCOLOR CYAN "Syncing irclogs..."; + my @hosts = qw{ tilde.team tilde.institute envs.net tilde.town }; + + my $e_conf = "$ENV{HOME}/.emacs.d"; + foreach my $host (@hosts) { + say LOCALCOLOR MAGENTA "$host"; + rsync( @no_del_opt, "andinus\@$host:~/.emacs.d/irclogs/", + "$e_conf/irclogs/$host/"); + } + + say LOCALCOLOR CYAN "[DONE] irclogs sync"; + } + } 1; |