From fe5f5269fe2d539bf54d47263e663a50b5b87f36 Mon Sep 17 00:00:00 2001 From: Manager Bot Date: Mon, 7 Nov 2022 19:46:11 +0000 Subject: [PATCH] Remove excess library. --- libs/MJB-Backend-Nginx/dist.ini | 20 ---- .../lib/MJB/Backend/Nginx.pm | 43 --------- .../lib/MJB/Backend/Nginx/DomainConfig.pm | 77 ---------------- libs/MJB-Backend-Role-SystemCommand/dist.ini | 20 ---- .../lib/MJB/Backend/Role/SystemCommand.pm | 92 ------------------- 5 files changed, 252 deletions(-) delete mode 100644 libs/MJB-Backend-Nginx/dist.ini delete mode 100644 libs/MJB-Backend-Nginx/lib/MJB/Backend/Nginx.pm delete mode 100644 libs/MJB-Backend-Nginx/lib/MJB/Backend/Nginx/DomainConfig.pm delete mode 100644 libs/MJB-Backend-Role-SystemCommand/dist.ini delete mode 100644 libs/MJB-Backend-Role-SystemCommand/lib/MJB/Backend/Role/SystemCommand.pm diff --git a/libs/MJB-Backend-Nginx/dist.ini b/libs/MJB-Backend-Nginx/dist.ini deleted file mode 100644 index 1c80f01..0000000 --- a/libs/MJB-Backend-Nginx/dist.ini +++ /dev/null @@ -1,20 +0,0 @@ -name = MJB-Backend-Nginx -abstract = Provision websites on nginx servers -author = Kaitlyn Parkhurst -license = Perl_5 -copyright_holder = Kaitlyn Parkhurst -copyright_year = 2022 -version = 0.001 - -[@Basic] - -[Prereqs] -Moo = 0 -IPC::Run3 = 0 -Cwd = 0 -File::Path = 0 -Storable = 0 -Mojo::File = 0 - -[AutoPrereqs] - diff --git a/libs/MJB-Backend-Nginx/lib/MJB/Backend/Nginx.pm b/libs/MJB-Backend-Nginx/lib/MJB/Backend/Nginx.pm deleted file mode 100644 index 399418d..0000000 --- a/libs/MJB-Backend-Nginx/lib/MJB/Backend/Nginx.pm +++ /dev/null @@ -1,43 +0,0 @@ -package MJB::Backend::Nginx; -use Moo; -use MJB::Backend::Nginx::DomainConfig; -use Mojo::File qw( tempfile ); - -with 'MJB::Backend::Role::SystemCommand'; - -has servers => ( - is => 'ro', - default => sub { [ ] }, -); - -sub provision_website { - my ( $self, $domain, $ssl_domain ) = @_; - - $ssl_domain ||= $domain; - - my $config = MJB::Backend::Nginx::DomainConfig->new( - domain => $domain, - ssl_domain => $ssl_domain, - )->config; - - my $config_file = tempfile; - $config_file->spurt( $config ); - my $welcome_file = tempfile; - $welcome_file->spurt( "Your new blog is being setup... please reload soon." ); - - foreach my $server ( @{$self->servers} ) { - $self->system_command( [ 'scp', $config_file->to_string, $server . ":/etc/nginx/sites-enabled/" . $domain ] ); - $self->system_command( [ 'ssh', $server, 'mkdir -p /var/www/' . $domain . '/html' ] ); - $self->system_command( [ 'scp', $welcome_file->to_string, $server . "/var/www/" . $domain . "/html/index.html" ] ); - $self->system_command( [ 'ssh', $server, 'chown -R www-data:www-data /var/www/' . $domain ] ); - $self->system_command( [ 'ssh', $server, 'systemctl reload nginx' ] ); - } -} - -sub deprovision_website { - -} - - - -1; diff --git a/libs/MJB-Backend-Nginx/lib/MJB/Backend/Nginx/DomainConfig.pm b/libs/MJB-Backend-Nginx/lib/MJB/Backend/Nginx/DomainConfig.pm deleted file mode 100644 index 17c6c01..0000000 --- a/libs/MJB-Backend-Nginx/lib/MJB/Backend/Nginx/DomainConfig.pm +++ /dev/null @@ -1,77 +0,0 @@ -package MJB::Backend::Nginx::DomainConfig; -use Moo; -use Mojo::File; - -has domain => ( - is => 'ro', -); - -has ssl_domain => ( - is => 'ro', -); - -has template => ( - is => 'ro', - default => sub {return <<' EOF;' - server { - server_name {{ domain }}; - root /var/www/{{ domain }}/html; - index index.html; - - error_log /var/log/nginx/{{ domain }}.error.log warn; - access_log /var/log/nginx/{{ domain }}.access.log combined; - - listen 443 ssl; - ssl_certificate /etc/letsencrypt/live/{{ ssl_domain }}/fullchain.pem; - ssl_certificate_key /etc/letsencrypt/live/{{ ssl_domain }}/privkey.pem; - - ssl_session_cache shared:le_nginx_SSL:10m; - ssl_session_timeout 1440m; - ssl_session_tickets off; - - ssl_protocols TLSv1.2 TLSv1.3; - ssl_prefer_server_ciphers off; - - ssl_ciphers "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384"; - - ssl_dhparam /etc/nginx/ssl-dhparams.pem; - - } - - server { - if ($host = {{ domain }}) { - return 301 https://$host$request_uri; - } - - listen 80; - server_name {{ domain }} - return 404; - } - EOF; - } -); - -has config => ( - is => 'lazy', -); - -sub _build_config { - my ( $self ) = @_; - - my $config = $self->template; - - # Fill in variables in the template. - my ( $domain, $ssl_domain ) = ( $self->domain, $self->ssl_domain ); - - s/\{\{ domain \}\}/$domain/g, - s/\{\{ ssl_domain \}\}/$ssl_domain/g - for $config; - - # Trim the excess whitespace - $config =~ s/^ {8}//gm; - - - return $config; -} - -1; diff --git a/libs/MJB-Backend-Role-SystemCommand/dist.ini b/libs/MJB-Backend-Role-SystemCommand/dist.ini deleted file mode 100644 index 7bb39b9..0000000 --- a/libs/MJB-Backend-Role-SystemCommand/dist.ini +++ /dev/null @@ -1,20 +0,0 @@ -name = MJB-Backend-Role-SystemCommand -abstract = Provide system_command as a role -author = Kaitlyn Parkhurst -license = Perl_5 -copyright_holder = Kaitlyn Parkhurst -copyright_year = 2022 -version = 0.001 - -[@Basic] - -[Prereqs] -Moo = 0 -IPC::Run3 = 0 -Cwd = 0 -File::Path = 0 -Storable = 0 -Mojo::File = 0 - -[AutoPrereqs] - diff --git a/libs/MJB-Backend-Role-SystemCommand/lib/MJB/Backend/Role/SystemCommand.pm b/libs/MJB-Backend-Role-SystemCommand/lib/MJB/Backend/Role/SystemCommand.pm deleted file mode 100644 index a659127..0000000 --- a/libs/MJB-Backend-Role-SystemCommand/lib/MJB/Backend/Role/SystemCommand.pm +++ /dev/null @@ -1,92 +0,0 @@ -package MJB::Backend::Role::SystemCommand; -use Moo::Role; -use Storable qw( dclone ); -use IPC::Run3 qw( run3 ); - -sub system_command { - my ( $self, $cmd, $settings ) = @_; - - $settings ||= {}; - - # Change the directory, if requested. - if ( $settings->{chdir} ) { - # Throw an error if that directory doesn't exist. - die "Error: directory " . $settings->{chdir} . "doesn't exist." - unless -d $settings->{chdir}; - - # Change to that directory, or die with error. - chdir $settings->{chdir} - or die "Failed to chdir to " . $settings->{chdir} . ": $!"; - - $settings->{return_chdir} = getcwd(); - } - - # Mask values we don't want exposed in the logs. - my $masked_cmd = dclone($cmd); - if ( ref $settings->{mask} eq 'HASH' ) { - foreach my $key ( keys %{$settings->{mask}} ) { - my $value = $settings->{mask}{$key}; - $masked_cmd = [ map { s/\Q$key\E/$value/g; $_ } @{$masked_cmd} ]; - } - } - - # Log the lines - my ( $out, $err ); - my $ret = run3( $cmd, \undef, sub { - chomp $_; - # Mask values we don't want exposed in the logs. - if ( ref $settings->{mask} eq 'HASH' ) { - foreach my $key ( keys %{$settings->{mask}} ) { - my $value = $settings->{mask}{$key}; - s/\Q$key\E/$value/g; - } - } - $out .= "$_\n"; - }, sub { - chomp $_; - # Mask values we don't want exposed in the logs. - if ( ref $settings->{mask} eq 'HASH' ) { - foreach my $key ( keys %{$settings->{mask}} ) { - my $value = $settings->{mask}{$key}; - s/\Q$key\E/$value/g; - } - } - $err .= "$_\n"; - }); - - # Check stderr for errors to fail on. - if ( $settings->{fail_on_stderr} ) { - my @tests = @{$settings->{fail_on_stderr}}; - - while ( my $regex = shift @tests ) { - my $reason = shift @tests; - - if ( $err =~ /$regex/ ) { - die $reason; - } - } - } - - # Return to the directory we started in if we chdir'ed. - if ( $settings->{return_chdir} ) { - chdir $settings->{return_chdir} - or die "Failed to chdir to " . $settings->{chdir} . ": $!"; - } - - if ( $ENV{MJB_DEBUG} ) { - require Data::Dumper; - print Data::Dumper::Dumper({ - stdout => $out, - stderr => $err, - exitno => $ret, - }); - } - - return { - stdout => $out, - stderr => $err, - exitno => $ret, - }; -} - -1;