Package server

This commit is contained in:
Zuckerberg 2023-09-04 14:36:06 -06:00
parent eff01cd141
commit 875d011690
4 changed files with 45 additions and 41 deletions

View File

@ -10,13 +10,13 @@
flake-utils.lib.eachDefaultSystem (system: flake-utils.lib.eachDefaultSystem (system:
let let
pkgs = nixpkgs.legacyPackages.${system}; pkgs = nixpkgs.legacyPackages.${system};
server = pkgs.callPackage ./server/server.nix { }; server = pkgs.callPackage ./server { };
smartcrop = pkgs.callPackage ./server/smartcrop.nix { };
in in
{ {
packages."dynamic-frame-server" = server; packages = {
packages."dynamic-frame-smartcrop" = smartcrop; inherit (server) server smartcrop;
packages.default = server; };
packages.default = server.server;
devShell = pkgs.callPackage ./shell.nix { }; devShell = pkgs.callPackage ./shell.nix { };
} }
); );

View File

@ -2,6 +2,8 @@
, python3 , python3
, fetchFromGitHub , fetchFromGitHub
, makeWrapper , makeWrapper
, buildGoModule
, stdenv
}: }:
with python3.pkgs; with python3.pkgs;
@ -57,10 +59,35 @@ let
''; '';
}; };
server = buildGoModule rec {
pname = "dynamic-frame-server";
version = "0.0.1";
src = ./.;
vendorSha256 = "qr3hNJxCT8YPQntKCCPNO2yaETswziGXAd4lQELsDGg=";
};
# Wrap server so it has access to smartcrop in its PATH
serverWrapped = stdenv.mkDerivation {
pname = server.pname;
version = server.version;
src = server;
buildInputs = [ makeWrapper ];
installPhase = ''
mkdir -p $out/bin
cp ${server}/bin/* $out/bin/
wrapProgram $out/bin/server \
--set PATH "${smartcrop-cli}/bin:$PATH"
'';
meta.mainProgram = "server";
};
in in
{
# python3.withPackages (ps: with ps; [ server = serverWrapped;
# smartcrop smartcrop = smartcrop-cli;
# ]) }
smartcrop-cli

View File

@ -20,19 +20,7 @@ import (
"github.com/go-chi/chi/v5/middleware" "github.com/go-chi/chi/v5/middleware"
) )
// Define a function to handle incoming requests var imageDir = "./img"
func requestHandler(w http.ResponseWriter, r *http.Request) {
// Get the 'name' variable from the request
name := chi.URLParam(r, "name")
// Use a default value if 'name' is not present
if name == "" {
name = "World"
}
// Respond with a greeting message
fmt.Fprintf(w, "Hello, %s!\n", name)
}
func getRandomFile(dir string) (string, error) { func getRandomFile(dir string) (string, error) {
files, err := ioutil.ReadDir(dir) files, err := ioutil.ReadDir(dir)
@ -120,9 +108,11 @@ func basicAuth(next http.Handler) http.Handler {
} }
func main() { func main() {
fmt.Println("Starting server") if len(os.Args) > 1 {
imageDir = os.Args[1]
}
fmt.Println("Choosing images from: ", imageDir)
// Create a new Chi router
router := chi.NewRouter() router := chi.NewRouter()
router.Use(middleware.RequestID) router.Use(middleware.RequestID)
@ -130,17 +120,14 @@ func main() {
router.Use(middleware.Logger) router.Use(middleware.Logger)
router.Use(middleware.Recoverer) router.Use(middleware.Recoverer)
// Register the requestHandler function to handle requests at the root path
// and a path with the 'name' parameter
router.Get("/", requestHandler)
router.Get("/{name}", requestHandler)
router.Group(func(r chi.Router) { router.Group(func(r chi.Router) {
// r.Use(basicAuth) // r.Use(basicAuth)
r.Post("/fetchImage", fetchImage) r.Post("/fetchImage", fetchImage)
r.Post("/calibrationImage", calibrationImage) r.Post("/calibrationImage", calibrationImage)
}) })
fmt.Println("Started server")
// Start the HTTP server on port 8080 and log any errors // Start the HTTP server on port 8080 and log any errors
log.Fatal(http.ListenAndServe("0.0.0.0:8080", router)) log.Fatal(http.ListenAndServe("0.0.0.0:8080", router))
} }

View File

@ -1,10 +0,0 @@
{ pkgs, ... }:
pkgs.buildGoModule rec {
pname = "dynamic-frame-server";
version = "0.0.1";
src = ./.;
vendorSha256 = "uTqGdqswbnmPsEm5NISD0Nh9ry4GLMAsuVF7+U8BRdA=";
}