Compare commits

..

No commits in common. "3b44f3d6339ab32da4ac6d8d5500382e65a32f4b" and "917097b26aef2186105e9e8481306b8fd9cf8d8e" have entirely different histories.

5 changed files with 14 additions and 32 deletions

View File

@ -1,4 +1,4 @@
FROM docker.io/rakudo-star:2023.08 FROM rakudo-star:2023.08
# Move it # Move it
WORKDIR /opt WORKDIR /opt
@ -11,14 +11,15 @@ COPY templates/ ./templates/
RUN apt-get update RUN apt-get update
RUN apt-get -y upgrade RUN apt-get -y upgrade
RUN apt-get -y install libssl-dev libarchive-dev RUN apt-get -y install libssl-dev libarchive-dev
# Tests failing cope # Stupid tests failing idk
RUN zef -v install --force-test IO::Socket::Async::SSL \ RUN zef -v install --force-test IO::Socket::Async::SSL \
NativeHelpers::Callback \ Archive::Libarchive::Raw NativeHelpers::Callback
Archive::Libarchive::Raw # Get the latest and greatest for bug fix
# https://github.com/rawleyfowler/Humming-Bird/issues/60#issuecomment-1788351265
RUN zef install https://github.com/rawleyfowler/Humming-Bird.git --force-install
RUN zef -v install --deps-only . RUN zef -v install --deps-only .
# Finish setting up the environment # Finish setting up the environment
ENV HUMMING_BIRD_ENV='PROD'
EXPOSE 3000 EXPOSE 3000
CMD ["raku", "bin/hyperlink-redirect"] CMD ["raku", "bin/hyperlink-redirect"]

View File

@ -11,4 +11,4 @@ use Humming-Bird::Core;
use lib 'lib'; use lib 'lib';
use Hyperlink-Redirect; use Hyperlink-Redirect;
listen 3000; listen(3000);

View File

@ -1,4 +1,6 @@
use Humming-Bird::Core; use Humming-Bird::Core;
use Humming-Bird::Middleware;
use Humming-Bird::Advice;
use Template::Mustache; use Template::Mustache;
# Normally would 'use' local libs here for Controller and Model and # Normally would 'use' local libs here for Controller and Model and
@ -9,8 +11,9 @@ use Hyperlink-Redirect::Helpers;
# Set things up (config stuff would go here?) # Set things up (config stuff would go here?)
my $template = Template::Mustache.new: :from<../templates>; my $template = Template::Mustache.new: :from<../templates>;
# Plugins # Logging
plugin 'Logger'; middleware &middleware-logger;
advice &advice-logger;
# Must set the root path lest yet miss setting $!root # Must set the root path lest yet miss setting $!root
my $router = Router.new(root => '/'); my $router = Router.new(root => '/');
@ -38,11 +41,6 @@ $router.post(-> $request, $response {
$response.html($template.render: 'index', %stash); $response.html($template.render: 'index', %stash);
}); });
# Don't try to process favicon as a hyperlink
$router.get('/favicon.ico', -> $request, $response {
$response.status(204)
});
# Process the hyperlink # Process the hyperlink
$router.get('/--meta-refresh/**', -> $request, $response { $router.get('/--meta-refresh/**', -> $request, $response {
my Str $return-url = $request.path.subst: /^ '/--meta-refresh/'/, Empty; my Str $return-url = $request.path.subst: /^ '/--meta-refresh/'/, Empty;

View File

@ -3,7 +3,7 @@ use Libarchive::Filter :gzip;
my $starts-with-protocol = rx:i/ ^https? '://'/; my $starts-with-protocol = rx:i/ ^https? '://'/;
sub fix-protocol(Str $url) is export { sub fix-protocol($url) is export {
return "http://" ~ $url unless $url ~~ $starts-with-protocol; return "http://" ~ $url unless $url ~~ $starts-with-protocol;
return $url; return $url;

View File

@ -1,17 +0,0 @@
use v6.d;
use Humming-Bird::Core;
use Test;
# Local libs
use lib 'lib';
use Hyperlink-Redirect;
use Hyperlink-Redirect::Helpers;
plan 2;
ok fix-protocol("seriousbusiness.international") eq "http://seriousbusiness.international",
"fix-protocol fixes bare domains correctly"
or diag "\nfix-protocol should return the same string with 'http://' prefixed if protocol isn't specified";
ok fix-protocol("https://www.seriousbusiness.international") eq "https://www.seriousbusiness.international",
"fix-protocol does not mangle correctly formatted domains"
or diag "\nThe URL should remain unchanged when the protocol is specified";