Package server
This commit is contained in:
parent
eff01cd141
commit
875d011690
10
flake.nix
10
flake.nix
@ -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 { };
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
@ -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
|
|
@ -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))
|
||||||
}
|
}
|
||||||
|
@ -1,10 +0,0 @@
|
|||||||
{ pkgs, ... }:
|
|
||||||
|
|
||||||
pkgs.buildGoModule rec {
|
|
||||||
pname = "dynamic-frame-server";
|
|
||||||
version = "0.0.1";
|
|
||||||
|
|
||||||
src = ./.;
|
|
||||||
|
|
||||||
vendorSha256 = "uTqGdqswbnmPsEm5NISD0Nh9ry4GLMAsuVF7+U8BRdA=";
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user