App-Yabsm
view release on metacpan or search on metacpan
lib/App/Yabsm/Command/Config.pm view on Meta::CPAN
sub print_ssh_backups {
@_ == 0 or die usage();
my $config_ref = parse_config_or_die();
say for all_ssh_backups($config_ref);
}
sub print_local_backups {
@_ == 0 or die usage();
my $config_ref = parse_config_or_die();
say for all_local_backups($config_ref);
}
sub print_backups {
@_ == 0 or die usage();
my $config_ref = parse_config_or_die();
my @ssh_backups = all_ssh_backups($config_ref);
my @local_backups = all_local_backups($config_ref);
say for sort @ssh_backups, @local_backups;
}
sub print_yabsm_dir {
@_ == 0 or die usage();
my $config_ref = parse_config_or_die();
my $yabsm_dir = yabsm_dir($config_ref);
say $yabsm_dir;
}
sub print_yabsm_user_home {
@_ == 0 or die usage();
my $config_ref = parse_config_or_die();
my $yabsm_user_home = yabsm_user_home($config_ref);
say $yabsm_user_home;
}
sub check_ssh_backup {
# This is mostly just a wrapper around
# &App::Yabsm::Backup::SSH::check_ssh_backup_config_or_die.
@_ == 1 or die usage();
die 'yabsm: error: permission denied'."\n" unless i_am_root();
my $ssh_backup = shift;
my $config_ref = parse_config_or_die();
unless (ssh_backup_exists($ssh_backup, $config_ref)) {
die "yabsm: error: no such ssh_backup named '$ssh_backup'\n";
}
unless (App::Yabsm::Command::Daemon::yabsm_user_exists()) {
die q(yabsm: error: cannot find user named 'yabsm')."\n";
}
unless (App::Yabsm::Command::Daemon::yabsm_group_exists()) {
die q(yabsm: error: cannot find group named 'yabsm')."\n";
}
POSIX::setgid(scalar(getgrnam 'yabsm'));
POSIX::setuid(scalar(getpwnam 'yabsm'));
App::Yabsm::Backup::SSH::check_ssh_backup_config_or_die(undef, $ssh_backup, $config_ref);
say 'all good';
}
sub print_yabsm_user_ssh_key {
# Print the yabsm users public key to STDOUT.
@_ == 0 or die usage();
die 'yabsm: error: permission denied'."\n" unless i_am_root();
my $config_ref = parse_config_or_die();
my $yabsm_user_ssh_dir = yabsm_user_home($config_ref) . '/.ssh';
my $priv_key = "$yabsm_user_ssh_dir/id_ed25519";
my $pub_key = "$yabsm_user_ssh_dir/id_ed25519.pub";
unless (-f $priv_key) {
die "yabsm: error: could not find user 'yabsm' users SSH private key '$priv_key'\n";
}
unless (-f $pub_key) {
die "yabsm: error: could not find user 'yabsm' users SSH public key '$pub_key'\n";
}
open my $fh, '<', $pub_key
or die "yabsm: internal error: could not open '$pub_key' for reading\n";
print <$fh>;
close $fh
}
1;
( run in 2.724 seconds using v1.01-cache-2.11-cpan-ceb78f64989 )