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:
let
pkgs = nixpkgs.legacyPackages.${system};
server = pkgs.callPackage ./server/server.nix { };
smartcrop = pkgs.callPackage ./server/smartcrop.nix { };
server = pkgs.callPackage ./server { };
in
{
packages."dynamic-frame-server" = server;
packages."dynamic-frame-smartcrop" = smartcrop;
packages.default = server;
packages = {
inherit (server) server smartcrop;
};
packages.default = server.server;
devShell = pkgs.callPackage ./shell.nix { };
}
);

View File

@ -2,6 +2,8 @@
, python3
, fetchFromGitHub
, makeWrapper
, buildGoModule
, stdenv
}:
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
# python3.withPackages (ps: with ps; [
# smartcrop
# ])
smartcrop-cli
{
server = serverWrapped;
smartcrop = smartcrop-cli;
}

View File

@ -20,19 +20,7 @@ import (
"github.com/go-chi/chi/v5/middleware"
)
// Define a function to handle incoming requests
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)
}
var imageDir = "./img"
func getRandomFile(dir string) (string, error) {
files, err := ioutil.ReadDir(dir)
@ -120,9 +108,11 @@ func basicAuth(next http.Handler) http.Handler {
}
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.Use(middleware.RequestID)
@ -130,17 +120,14 @@ func main() {
router.Use(middleware.Logger)
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) {
// r.Use(basicAuth)
r.Post("/fetchImage", fetchImage)
r.Post("/calibrationImage", calibrationImage)
})
fmt.Println("Started server")
// Start the HTTP server on port 8080 and log any errors
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=";
}