App-Provision-Tiny
view release on metacpan or search on metacpan
lib/App/Provision/Ssh.pm view on Meta::CPAN
package App::Provision::Ssh;
$App::Provision::Ssh::VERSION = '0.0405';
our $AUTHORITY = 'cpan:GENE';
use strict;
use warnings;
use parent qw( App::Provision::Tiny );
sub condition
{
my $self = shift;
die "Program '$self->{program}' must include --keytype and --keyname\n"
unless $self->{keytype} && $self->{keyname};
my $file = $self->_keyfile();
my $condition = -e $file;
warn $self->{program}, ' is', ($condition ? '' : "n't"), " installed\n";
return $condition ? 1 : 0;
}
sub meet
{
my $self = shift;
my $file = $self->_keyfile();
$self->recipe(
[ 'mkdir', '.ssh' ],
[ 'chmod', '700', '.ssh' ],
[ 'ssh-keygen', '-t', $self->{keytype}, '-f', $file ],
[ "cat $ENV{HOME}/.ssh/$file.pub | tr -d '\n' | pbcopy" ],
[ 'echo', '* Now paste your public key into https://github.com/settings/ssh *' ],
);
}
sub _keyfile
{
# Set the keyfile attribute.
my $self = shift;
return sprintf '%s/.ssh/id_%s-%s', $ENV{HOME},
$self->{keytype}, $self->{keyname};
}
1;
__END__
=pod
=encoding UTF-8
=head1 NAME
App::Provision::Ssh
=head1 VERSION
version 0.0405
=head1 FUNCTIONS
=head2 condition
=head2 meet
=head1 AUTHOR
Gene Boggs <gene@cpan.org>
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2022 by Gene Boggs.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
=cut
( run in 0.589 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )