From 67e4b234d31626976ad630043814235c936f8bbf Mon Sep 17 00:00:00 2001 From: Lizzy Hunt Date: Sat, 9 Mar 2024 21:29:25 -0700 Subject: [PATCH] finish static page --- .gitmodules | 6 +++ compile.sh | 3 +- html/build.sh | 18 +++++++ html/fruitvote/.gitignore | 1 + html/fruitvote/main.go | 57 ++++++++++++++++++++ html/public/css/style.css | 77 +++++++++++++++++++++++++++ html/public/fruitvote/GoPage.php | 88 +++++++++++++++++++++++++++++++ html/public/fruitvote/index.php | 7 +++ html/public/img/penguin.gif | Bin 0 -> 53409 bytes html/public/index.php | 54 ++++++++++++++----- html/public/template.html | 38 +++++++++++++ html/start.sh | 7 +++ html/staticsimponic | 1 + html/the-abstraction-engine | 1 + 14 files changed, 345 insertions(+), 13 deletions(-) create mode 100644 .gitmodules create mode 100644 html/fruitvote/.gitignore create mode 100644 html/fruitvote/main.go create mode 100644 html/public/css/style.css create mode 100644 html/public/fruitvote/GoPage.php create mode 100644 html/public/fruitvote/index.php create mode 100644 html/public/img/penguin.gif create mode 100644 html/public/template.html create mode 100755 html/start.sh create mode 160000 html/staticsimponic create mode 160000 html/the-abstraction-engine diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..91e685d --- /dev/null +++ b/.gitmodules @@ -0,0 +1,6 @@ +[submodule "html/staticsimponic"] + path = html/staticsimponic + url = https://git.simponic.xyz/simponic/static.simponic.xyz +[submodule "html/the-abstraction-engine"] + path = html/the-abstraction-engine + url = https://git.simponic.xyz/simponic/the-abstraction-engine diff --git a/compile.sh b/compile.sh index 46ae743..31addf8 100755 --- a/compile.sh +++ b/compile.sh @@ -2,8 +2,9 @@ set -e -mkdir -p dist +git submodule update --init --recursive +mkdir -p dist pwd=$PWD for source in "html" "gemini" "gopher"; do diff --git a/html/build.sh b/html/build.sh index 722e1d3..816c324 100755 --- a/html/build.sh +++ b/html/build.sh @@ -1,5 +1,23 @@ #!/bin/sh +mkdir -p ../dist/public_html + cp -r ./public ../dist/public_html +mv staticsimponic/turing-machine ../dist/public_html +mv staticsimponic/euler-golf ../dist/public_html +mv staticsimponic/godel-explorer ../dist/public_html + +cd the-abstraction-engine/ +npm install +npm run build +cd .. +cp -r the-abstraction-engine/dist ../dist/public_html/the-abstraction-engine + +mkdir -p ../dist/fruitvote +cd fruitvote +go build -o ../../dist/fruitvote/fruitvote +cd .. +cp start.sh ../dist/fruitvote/start.sh echo "finished building HTML" + diff --git a/html/fruitvote/.gitignore b/html/fruitvote/.gitignore new file mode 100644 index 0000000..ba2906d --- /dev/null +++ b/html/fruitvote/.gitignore @@ -0,0 +1 @@ +main diff --git a/html/fruitvote/main.go b/html/fruitvote/main.go new file mode 100644 index 0000000..73c1c17 --- /dev/null +++ b/html/fruitvote/main.go @@ -0,0 +1,57 @@ +package main + +import ( + "flag" + "fmt" + "net" + "net/http" + "os" + "os/exec" + "strings" +) + +func indexHandler(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(http.StatusOK) + w.Write([]byte("Hello, this is a Unix socket HTTP server in Go!")) +} + +func main() { + socketPath, users := getArgs() + os.Remove(socketPath) + + listener, err := net.Listen("unix", socketPath) + if err != nil { + panic(err) + } + os.Chmod(socketPath, 0700) + defer listener.Close() + + for _, user := range strings.Split(users, ",") { + setACL(socketPath, user) + } + + mux := http.NewServeMux() + mux.HandleFunc("/", indexHandler) + + http.Serve(listener, mux) +} + +func setACL(socketPath, user string) { + cmd := exec.Command("setfacl", "-m", "u:"+user+":rwx", socketPath) + if err := cmd.Run(); err != nil { + panic("failed to set ACL: " + err.Error()) + } +} + +func getArgs() (string, string) { + socketPath := flag.String("socket-path", "/tmp/go-server.sock", "Path to the Unix socket") + users := flag.String("users", "", "Comma-separated list of users for ACL") + flag.Parse() + + if *users == "" { + fmt.Println("You must specify at least one user with --users") + os.Exit(1) + } + + return *socketPath, *users +} diff --git a/html/public/css/style.css b/html/public/css/style.css new file mode 100644 index 0000000..a4f243f --- /dev/null +++ b/html/public/css/style.css @@ -0,0 +1,77 @@ +/* Basic Reset */ +*, +*::before, +*::after { + box-sizing: border-box; + margin: 0; + padding: 0; +} + +body { + background-color: #2a2a2a; /* Dark background */ + color: #f4c2c2; /* Soft pink text, typical of a girly 90s vibe */ + font-family: "Comic Sans MS", "Chalkboard SE", sans-serif; /* Retro, playful font */ + + padding: 20px; +} + +a { + color: #ff47da; /* Bright pink for links */ + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +button, +input[type="submit"], +input[type="button"] { + background-color: #ff69b4; /* Bright pink for buttons */ + border: none; + color: white; + padding: 10px 20px; + text-transform: uppercase; + font-family: "Comic Sans MS", "Chalkboard SE", sans-serif; + cursor: pointer; + transition: background-color 0.3s ease; +} + +button:hover, +input[type="submit"]:hover, +input[type="button"]:hover { + background-color: #ff1493; /* Darker pink on hover */ +} + +input[type="text"], +input[type="password"], +textarea { + background-color: #333; /* Darker elements for inputs */ + border: 1px solid #f4c2c2; /* Soft pink border */ + color: #f4c2c2; /* Soft pink text */ + padding: 10px; +} + +/* Example of styling a specific component differently */ +.special-button { + background-color: #ff47da; /* A different shade of pink */ + border-radius: 20px; /* Rounded edges for a more playful look */ +} + +h1, +h2, +h3, +h4, +h5, +h6 { + color: #ff69b4; + margin-bottom: 20px; +} + +p { + margin-bottom: 20px; +} + +li { + margin-left: 20px; +} diff --git a/html/public/fruitvote/GoPage.php b/html/public/fruitvote/GoPage.php new file mode 100644 index 0000000..c3a7d34 --- /dev/null +++ b/html/public/fruitvote/GoPage.php @@ -0,0 +1,88 @@ +page = $page; + $this->socket = $socket; + $this->template = $template; + + // test if socket exists + if (!file_exists($socket)) { + // start the server + exec($start_cmd); + } + + for ($i = 0; $i < 10; $i++) { + if (file_exists($socket)) { + break; + } + usleep(100_000); // wait 100ms + } + + if (!file_exists($socket)) { + throw new Exception("Could not start server"); + } + } + public function go() { + $ch = curl_init(); + $url = "http://localhost".$this->page; + + curl_setopt($ch, CURLOPT_URL, $url); + curl_setopt($ch, CURLOPT_UNIX_SOCKET_PATH, $this->socket); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); + + // forward headers + $headers = array(); + foreach ($_SERVER as $key => $value) { + if (substr($key, 0, 5) == "HTTP_") { + $key = str_replace(" ", "-", ucwords(strtolower(str_replace("_", " ", substr($key, 5))))); + $headers[] = "$key: $value"; + } + } + curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); + + // forward params depending on http method + if ($_SERVER['REQUEST_METHOD'] == "POST" || $_SERVER['REQUEST_METHOD'] == "PUT" || $_SERVER['REQUEST_METHOD'] == "DELETE") { + curl_setopt($ch, CURLOPT_POST, 1); + curl_setopt($ch, CURLOPT_POSTFIELDS, file_get_contents('php://input')); + } else { + $url .= "?".$_SERVER['QUERY_STRING']; + } + + // forward cookies + $cookie = array(); + foreach ($_COOKIE as $key => $value) { + $cookie[] = "$key=$value"; + } + + $output = curl_exec($ch); + curl_close($ch); + + // forward headers back to client + $headers = explode("\n", $output); + foreach ($headers as $header) { + if (strpos($header, "HTTP/") === false) { + header($header); + } + } + + // forward cookies back to client + $cookie = explode("\n", $output); + foreach ($cookie as $cookie) { + if (strpos($cookie, "Set-Cookie:") !== false) { + header($cookie); + } + } + + return $output; + } + + public function render() { + $response = $this->go(); + $template = file_get_contents($this->template); + return str_replace("{{content}}", $response, $template); + } +} diff --git a/html/public/fruitvote/index.php b/html/public/fruitvote/index.php new file mode 100644 index 0000000..1abfb0c --- /dev/null +++ b/html/public/fruitvote/index.php @@ -0,0 +1,7 @@ +render(); +?> diff --git a/html/public/img/penguin.gif b/html/public/img/penguin.gif new file mode 100644 index 0000000000000000000000000000000000000000..48bd0e2babb614cb0f932e43c42ae53c992c7299 GIT binary patch literal 53409 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 literal 0 HcmV?d00001 diff --git a/html/public/index.php b/html/public/index.php index 3ed5805..004a131 100644 --- a/html/public/index.php +++ b/html/public/index.php @@ -1,19 +1,49 @@ you are at my tilde.club page right now! hi!

-$ch = curl_init(); -$url = "http:/localhost"; -$unix = "/home/simponic/http.sock"; +a penguin +

this is a penguin

-if (defined('CURLOPT_UNIX_SOCKET_PATH')) { - curl_setopt($ch, CURLOPT_UNIX_SOCKET_PATH, $unix); - curl_setopt($ch, CURLOPT_URL, $url); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); +

here you can:

- $response = curl_exec($ch); - echo $response; -} + -curl_close($ch); +
+
+ +

+here are some stuffs i like: +

    +
  • penguins, dogs, birds
  • +
  • programming (((with parentheses)))
  • +
  • compilers, languages, distributed systems
  • +
  • emacs
  • +
  • math
  • +
  • boys (and girls) 🏳️‍🌈
  • +
  • gruvbox & catpuccin
  • +
+

+ +

+here are some stuffs i don\'t like: +

    +
  • bugs (hahahaha)
  • +
  • capitalism, expensive healthcare, yadayada
  • +
  • mmmm i can\'t think of more
  • +
+

+'; + +$template = file_get_contents('template.html'); + +echo str_replace("{{content}}", $content, $template); ?> diff --git a/html/public/template.html b/html/public/template.html new file mode 100644 index 0000000..4867c55 --- /dev/null +++ b/html/public/template.html @@ -0,0 +1,38 @@ + + + + + + + ~simponic + + + + + +
+

~simponic

+ +
+
+ + {{content}} + +
+
+
+ + +
+ + + diff --git a/html/start.sh b/html/start.sh new file mode 100755 index 0000000..3c274a8 --- /dev/null +++ b/html/start.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +nice -n 19 /home/simponic/fruitvote/fruitvote \ + --users simponic,nginx \ + --socket-path /home/simponic/fruitvote/http.sock \ + --database /home/simponic/fruitvote/db.sqlite \ + & diff --git a/html/staticsimponic b/html/staticsimponic new file mode 160000 index 0000000..d3a0fd1 --- /dev/null +++ b/html/staticsimponic @@ -0,0 +1 @@ +Subproject commit d3a0fd124549f0f66d80c107ed4a8e73ca2e67e9 diff --git a/html/the-abstraction-engine b/html/the-abstraction-engine new file mode 160000 index 0000000..ce40345 --- /dev/null +++ b/html/the-abstraction-engine @@ -0,0 +1 @@ +Subproject commit ce403459fa82025bd969d1938ed4034a10c2e751