Commit Diff


commit - 6e6c4aefd07da0aba70d651099a69c928aa7eae7
commit + 44595618b5d162e8bb8362e3891dc694342d1869
blob - /dev/null
blob + 516bf3a3c83bfade55339ee8173855236eca3c0b (mode 644)
--- /dev/null
+++ LICENSE
@@ -0,0 +1,25 @@
+Below is an example license to be used for new code in OpenBSD,
+modeled after the ISC license.
+
+It is important to specify the year of the copyright.  Additional years
+should be separated by a comma, e.g.
+    Copyright (c) 2003, 2004
+
+If you add extra text to the body of the license, be careful not to
+add further restrictions.
+
+/*
+ * Copyright (c) YYYY YOUR NAME HERE <user@your.dom.ain>
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
blob - /dev/null
blob + bb98d07ad5fa2dbe4ac9c7657b73a7080f3b0b21 (mode 644)
--- /dev/null
+++ Makefile
@@ -0,0 +1,32 @@
+PREFIX = /var/www
+CGIBINDIR = cgi-bin
+HTDOCSDIR = htdocs/pastanoggin.com
+
+CGIDIR = ${PREFIX}/${CGIBINDIR}
+ROOTDIR = ${PREFIX}/${HTDOCSDIR}
+
+install:
+	# perl
+	install -d ${DISTDIR}${PREFIX}/usr/bin
+	install -g www -m 755 -o www /usr/bin/perl ${DESTDIR}${PREFIX}/usr/bin
+	install -d ${DISTDIR}${PREFIX}/usr/lib
+	install -g www -m 755 -o www /usr/lib/libperl.so.* \
+		${DESTDIR}${PREFIX}/usr/lib
+	install -g www -m 755 -o www /usr/lib/libm.so.* ${DESTDIR}${PREFIX}/usr/lib
+	install -g www -m 755 -o www /usr/lib/libc.so.* ${DESTDIR}${PREFIX}/usr/lib
+	install -d ${DISTDIR}${PREFIX}/usr/libexec
+	install -g www -m 755 -o www /usr/libexec/ld.so \
+		${DESTDIR}${PREFIX}/usr/libexec
+	install -d ${DISTDIR}${PREFIX}/usr/libdata/perl5
+	# cgi
+	install -d ${DESTDIR}${CGIDIR}
+	install -g www -m 0555 -o www  perl.cgi ${DESTDIR}${CGIDIR}
+	# documents
+	install -d ${DESTDIR}${ROOTDIR}/docs
+	install -g www -m 0555 -o www docs/* ${DESTDIR}${ROOTDIR}/docs
+	# static files
+	install -d ${DESTDIR}${ROOTDIR}/static
+	install -g www -m 0555 -o www static/* ${DESTDIR}${ROOTDIR}/static
+
+uninstall:
+	rm -f ${DESTDIR}${PREFIX}/cgi-bin/perl.cgi
blob - /dev/null
blob + e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 (mode 644)
blob - /dev/null
blob + 066cbfe90df97549063f2456117dee5ea594b98c (mode 644)
--- /dev/null
+++ docs/401.html
@@ -0,0 +1 @@
+401
blob - /dev/null
blob + e1a29c1fe41b80667636878ddbde6531dcb3e6d3 (mode 644)
--- /dev/null
+++ docs/403.html
@@ -0,0 +1 @@
+403
blob - /dev/null
blob + f1b1cb3af5394d8d49de87c57fa833c5b24a6315 (mode 644)
--- /dev/null
+++ docs/404.html
@@ -0,0 +1 @@
+404
blob - /dev/null
blob + 1b79f38e25b24dcac0318f3371793a6ec204a71b (mode 644)
--- /dev/null
+++ docs/500.html
@@ -0,0 +1 @@
+500
blob - /dev/null
blob + 5f981abe6079c9a0b991bbc5caa7286ae28e41d6 (mode 644)
--- /dev/null
+++ docs/base
@@ -0,0 +1,50 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="UTF-8">
+		<meta name="viewport" content="width=device-width, initial-scale=1.0">
+		<link rel="icon" href="/static/blunt.png" type="image/png">
+		<link rel="stylesheet" type="text/css" href="/static/main.css">
+		<title>
+		[%title%]
+		</title>
+	</head>
+	<body>
+		<header class="box lighten">
+			<img id="banner" src="/static/banner.png">
+			<img id="construction" src="/static/under_construction.png">
+		</header>
+		<nav class="box lighten"> 
+			<ul class="nav-list">
+				<li class="nav-item"><a class="nav-link" href="/">home</a></li>
+				<li class="nav-item"><a class="nav-link" href="/contact">contact</a></li>
+				<li class="nav-item"><a class="nav-link" href="/blog">blog</a></li>
+				<li class="nav-item"><a class="nav-link" href="https://git.pastanoggin.com">code</a></li>
+				<li class="nav-item"><a class="nav-link" href="/links">links</a></li>
+			</ul>
+		</nav>
+		<main class="box lighten">
+		[%content%]
+		</main>
+		<dl id="status" class="lighten">
+			<dt id="status-header">status</dt>
+			<dd id="status-body">
+			[%status%]
+			</dd>
+		</dl>
+		<footer class="box lighten">
+			<a class="footer-link" href="https://openbsd.org" target="_blank">
+				<img class="buttonbadge" src="/static/obsd.jpg">
+			</a>
+			<a class="footer-link" href="http://plan9.stanleylieber.com/mothra" target="_blank">
+				<img class="buttonbadge" src="/static/mothracompat.gif">
+			</a>
+			<a class="footer-link" href="https://cadence.moe/blog/2024-10-05-created-by-a-human-badges" target="_blank">
+				<img class="buttonbadge" src="/static/created_by_a_human.png">
+			</a>
+			<a class="footer-link" href="https://pastanoggin.com" target="_blank">
+				<img class="buttonbadge" src="/static/gay.gif">
+			</a>
+		</footer>
+	</body>
+</html>
blob - /dev/null
blob + 5a4a279c0aab648f107dabcec145c1396976eabc (mode 644)
--- /dev/null
+++ docs/blog
@@ -0,0 +1 @@
+No blogs here yet!!!
blob - /dev/null
blob + 7ac968b899af253be4dbf5ba3d418116d1a143bd (mode 644)
--- /dev/null
+++ docs/contact
@@ -0,0 +1,12 @@
+<h2>how 2 contact?</h2>
+
+<dl>
+  <dt>E-mail</dt>
+  <dd>[REDACTED] (working on it)</dd>
+  <dt>IRC</dt>
+  <dd>anelli (not registered everywhere though)</dd>
+  <dt>XMPP</dt>
+  <dd>anelli@pastanoggin.com</dd>
+</dl>
+
+<p>yay!</p>
blob - /dev/null
blob + 0d7174a438b170272da8fc96e2450c6256abaf3e (mode 644)
--- /dev/null
+++ docs/links
@@ -0,0 +1,33 @@
+<p><i>-because search engines suck :b</i></p>
+
+<h2>my button :3</h2>
+<section>
+	<a href="https://pastanoggin.com"><img class="buttonbadge" src="/static/badge.png" alt="button to https://pastanoggin.com"></a>
+	<pre class="codeblock"><code>&lt;a href="https://pastanoggin.com"&gt;&lt;img src="https://pastanoggin.com/static/badge.png" alt="button to https://pastanoggin.com"&gt;&lt;/a&gt;</code></pre>
+</section>
+
+<h2>kin</h2>
+<ul class="links-list">
+	<li><a href="http://thedaemon.space">thedaemon - based 9fronter</a></li>
+	<li><a href="https://dataswamp.org/~solene">solene - OpenBSD OG</a></i>
+</ul>
+
+<h2>preddy</h2>
+<ul class="links-list">
+	<li><a href="https://cadence.moe"><img class="buttonbadge" src="https://cadence.moe/static/img/cadence_now.png" alt="The text &quot;cadence now!&quot; on a purple background. There is a moon-shaped logo on the left side and a tiny star in the bottom right."></a></li>
+	<li><a href="https://nonkiru.art"><img class="buttonbadge" src="https://nonkiru.art/assets/images/buttons/nonkiru_button_light.gif" alt="button to nonkiru(light)"></a></li>
+	<li><a href="https://goblin-heart.net/sadgrl"><img class="buttonbadge" src="https://goblin-heart.net/sadgrl/assets/images/buttons/sadgrlonline.gif" alt="button to https://goblin-heart.net/sadgrl"></a></li>
+</ul>
+
+<h2>tech</h2>
+<ul class="links-list">
+	<li><a href="https://openbsd.org">OpenBSD - secure os</a></li>
+	<li><a href="https://9front.org">9front - unix done right</a></li>
+	<li><a href="https://unixdigest.com">unix digest</a></li>
+</ul>
+
+<h2>other</h2>
+<ul class="links-list">
+	<li><a href="https://analognowhere.com">unix_surrealism</a></li>
+	<li><a href="https://www.fieggen.com/shoelace" title="Ian's Shoelace Site">Ian's Shoelace Site</a></li>
+</ul>
blob - /dev/null
blob + 8bd8e37377744709821b218d5b2fe9ee5ac721e4 (mode 644)
--- /dev/null
+++ docs/root
@@ -0,0 +1,24 @@
+<blockquote>
+<p>"DO <b>YOU</b> HAVE A GRIMOIRE, SHITASS????"</p>
+<cite>- My friend</cite>
+</blockquote>
+<hr>
+
+<p>Hello, this is alex/anelli/noodle/etc,</p>
+<p>I think personal websites are way cooler than social media so hi. After surfing some neocities-like websites i was like "daym this is fun" (check out my favourites in the <i>links</i> page); so I'm trying to make a funny website too with blackjack and hookers as the cool kids say. I'll also blog and host code here for the lols.</p>
+
+<h2>Likes:</h2>
+<ul>
+<li>Birds</li>
+<li>Computers</li>
+<li>Self-hosting</li>
+<li>Xavier Renegade Angel</li>
+</ul>
+
+<h2>Dislikes:</h2>
+<ul>
+<li>Okara</li>
+<li>Spinach</li>
+<li>Consumerism</li>
+<li>Proprietary software/hardware</li>
+</ul>
blob - /dev/null
blob + 500b2c2924ac42035c507b8054c682e9b81c682d (mode 644)
--- /dev/null
+++ docs/status
@@ -0,0 +1 @@
+openbsd vs freebsd rap battle
blob - /dev/null
blob + d7a1476445affa22e4bbda559a63da5dbff9af1d (mode 755)
--- /dev/null
+++ perl.cgi
@@ -0,0 +1,70 @@
+#!/usr/bin/perl
+use strict;
+use warnings;
+use open qw< :encoding(UTF-8) >;
+
+my $BASEDIR = "/htdocs/pastanoggin.com";
+my $base_filename = "$BASEDIR/docs/base";
+my $status_filename = "$BASEDIR/docs/status";
+
+sub print_file {
+	my $filename = shift;
+	my $file = undef;
+	open($file, "<", $filename)
+		or die "$0: can't open $filename for reading: $!";
+	print while (<$file>);
+	die "unexpected error while reading from $filename: $!" if $!
+}
+
+sub print_header {
+	my $code = shift;
+	print <<~END;
+	Status: $code
+	Content-Type: text/html
+
+	END
+}
+
+sub render_page {
+	my ($docname, $doctitle) = @_;
+	my $doc_filename = "$BASEDIR/docs/$docname";
+
+	my $base_file = undef;
+	open($base_file, "<", $base_filename)
+		or die "$0: can't open $base_filename for reading: $!";
+
+	# print header and contents
+	print_header 200;
+	while (<$base_file>) {
+		if (/\[%title%\]/) {
+			print "$doctitle";
+		} elsif (/\[%content%\]/) {
+			print_file $doc_filename;
+		} elsif (/\[%status%\]/) {
+			print_file "$status_filename";
+		} else {
+			print;
+		}
+	}
+	die "unexpected error while reading from $base_filename: $!" if $!
+}
+
+sub render_error {
+	my $errcode = shift;
+	print_header $errcode;
+	print_file "$BASEDIR/docs/${errcode}.html";
+}
+
+my $path = $ENV{'PATH_INFO'} || '/';
+
+if ($path =~ /^\/?$/) {
+	render_page 'root', 'pastanoggin!!';
+} elsif ($path =~ /^\/contact\/?$/) {
+	render_page 'contact', 'hello, is it me you\'re looking for?';
+} elsif ($path =~ /^\/blog\/?$/) {
+	render_page 'blog', 'yapyapyapyap :D';
+} elsif ($path =~ /^\/links\/?$/) {
+	render_page 'links', 'the interwebs';
+} else {
+	render_error '404';
+}
blob - /dev/null
blob + 08375c54b23cab4e41167eb8b728ea3b9f25d80d (mode 644)
Binary files /dev/null and static/badge.png differ
blob - /dev/null
blob + 1f8960dd28d6b237c43754e372b7273d2106ddab (mode 644)
Binary files /dev/null and static/banner.png differ
blob - /dev/null
blob + b0cff362e5071bfc8d2fa15ad1401a5ed560c56d (mode 644)
Binary files /dev/null and static/blunt.png differ
blob - /dev/null
blob + 4dca2c0c600d68015e9ae094ee86b3811236e046 (mode 644)
Binary files /dev/null and static/created_by_a_human.png differ
blob - /dev/null
blob + bf18a139d0052a14cb306d360a7479e87a55fd2a (mode 644)
Binary files /dev/null and static/cursor.png differ
blob - /dev/null
blob + 7bfa0682ee7aef00dda1b336521cf8daedec999a (mode 644)
Binary files /dev/null and static/gay.gif differ
blob - /dev/null
blob + 5f4d9b7b6eb2796f43a025d1f9e839924ff5bd6b (mode 644)
Binary files /dev/null and static/header.png differ
blob - /dev/null
blob + f54c149ffd468e773d1841575e9bfd1253550fb2 (mode 644)
--- /dev/null
+++ static/main.css
@@ -0,0 +1,168 @@
+:root {
+	--color-grey: #222222;
+	--text-color: #f9f9f9;
+	--color-purple: #8f60af;
+	--background-img: url(/static/tile.png);
+	--banner-img: url(/static/banner.png);
+}
+
+* {
+	cursor: url("/static/cursor.png"), auto;
+}
+
+body {
+	min-width: 20rem;
+	max-width: 60rem;
+	margin: auto;
+	padding: 1em;
+	color: var(--text-color);
+	background-image: var(--background-img);
+	display: flex;
+	gap: 1em;
+	flex-wrap: wrap;
+	flex-direction: row-reverse;
+}
+
+header {
+	flex-basis: 100%;
+	display: flex;
+	position: relative;
+	justify-content: center;
+}
+
+nav {
+	flex-basis: 10%;
+	flex-grow: 1;
+	display: flex;
+	align-items: start;
+}
+
+main {
+	flex-basis: 70%;
+	flex-grow: 1;
+}
+
+footer {
+	flex-basis: 100%;
+	display: flex;
+	flex-wrap: wrap;
+	gap: 0.5em;
+}
+
+a {
+	color: lightblue;
+}
+
+.nav-list {
+	width: 100%;
+	margin: 0;
+	padding: 0;
+	list-style: none;
+	display: flex;
+	gap: 1em;
+	flex-wrap: wrap;
+}
+
+.nav-item {
+	flex-grow: 1;
+	flex-shrink: 1;
+	flex-basis: 0;
+	display: flex;
+}
+
+.box {
+	padding: 1em;
+	border-style: groove;
+	border-width: 0.5em;
+    background-color: var(--color-grey);
+	border-color: var(--color-purple);
+}
+
+.lighten:hover {
+	filter: brightness(110%);
+}
+
+.nav-link {
+	width: 100%;
+	text-align: center;
+	align-content: center;
+	color: var(--color-grey);
+    text-decoration: none;
+	background: var(--color-purple);
+	border-style: outset;
+	border-color: var(--color-purple);
+	padding: 0.5em;
+	font-family: monospace;
+	font-weight: bold;
+	font-size: 1.5em;
+}
+
+.nav-link:hover {
+	filter: brightness(130%);
+}
+
+.buttonbadge {
+	width: 88px;
+	height: 31px;
+	vertical-align: middle;
+}
+
+.codeblock {
+    white-space: pre-wrap;
+    word-break: break-all;
+    background: black;
+    color: lightgreen;
+}
+
+#banner {
+	max-width: 100%;
+	object-fit: contain;
+	image-rendering: pixelated;
+}
+
+#construction {
+	position: absolute;
+	bottom: 0;
+	right: 0;
+	height: auto;
+	width: 30%;
+	max-width: 125px;
+	max-height: 100%;
+}
+
+#status {
+	margin: 0;
+    background-color: #8f60af;
+    color: var(--color-grey);
+    border-radius: 1.5em;
+    padding: 0.5em;
+    display: flex;
+    align-items: center;
+    gap: 1em;
+    flex-basis: 100%;
+    border-color: var(--color-grey);
+    border-width: 0.1em;
+    border-style: solid;
+}
+
+#status-header {
+    padding: 0.1em 1em;
+    background: white;
+    height: 100%;
+    border-radius: 1em;
+    text-align: center;
+    align-content: center;
+}
+
+#status-body {
+    margin: 0;
+    font-size: 1.2em;
+    color: white;
+	word-break: break-word;
+}
+
+@media only screen and (min-width: 800px) {
+	ul {
+		flex-direction: column;
+	}
+}
blob - /dev/null
blob + 3ec3731ab550b44289ff65397b14a72797f8f4af (mode 644)
Binary files /dev/null and static/mothracompat.gif differ
blob - /dev/null
blob + c7edfefa5b3328d23082a6f58c4096ff609d751f (mode 644)
Binary files /dev/null and static/obsd.jpg differ
blob - /dev/null
blob + a5ddb12a2972159a43f002af3034396995356c88 (mode 644)
Binary files /dev/null and static/tile.png differ
blob - /dev/null
blob + 27189c000edfffe30316dedf6dd9cc6c36336360 (mode 644)
Binary files /dev/null and static/under_construction.png differ