Use makeWrapper

Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
This commit is contained in:
2025-07-29 10:45:08 +01:00
parent 7f9a1dcb66
commit bff2fca2eb
7 changed files with 41 additions and 64 deletions

View File

@@ -1,3 +1,5 @@
# shellcheck shell=bash
if [ "$#" -lt 1 ]; then
echo "Usage: $0 <executable-path> [args...]"
exit 1

View File

@@ -1,6 +1,6 @@
{ pkgs, ... }:
# AUTO-UPDATE: nix-update --flake --version=branch=main darktable-ghost-cms-publish --subpackage npmSrc
pkgs.stdenv.mkDerivation (finalAttrs: {
# AUTO-UPDATE: nix-update --flake --version=branch=main darktable-ghost-cms-publish
pkgs.buildNpmPackage (finalAttrs: {
pname = "darktable-ghost-cms-publish";
version = "0-unstable-2025-02-23";
@@ -12,29 +12,17 @@ pkgs.stdenv.mkDerivation (finalAttrs: {
hash = "sha256-5aoGkqxMyvyK8EDsSE6kZa+dpExxVH2GRx2n87VusKE=";
};
npmSrc = pkgs.buildNpmPackage {
inherit (finalAttrs) src pname version;
nativeBuildInputs = with pkgs; [ makeWrapper ];
npmDepsHash = "sha256-K/x9ZEMNO8D+SkvVPfqVJtZaDXY5gDApRRocg/POY68=";
dontNpmBuild = true;
installPhase = ''
cp -r . $out
'';
};
npmDepsHash = "sha256-K/x9ZEMNO8D+SkvVPfqVJtZaDXY5gDApRRocg/POY68=";
dontNpmBuild = true;
# FIXME: https://github.com/NixOS/nixpkgs/issues/255890
wrapper = pkgs.writeShellApplication {
name = finalAttrs.pname;
runtimeInputs = with pkgs; [ bun ];
text = ''
exec bun ${finalAttrs.npmSrc}/src/index.ts "$@"
'';
};
installPhase = ''
mkdir -p $out/bin $out/lib/${finalAttrs.pname}
cp publish.lua $out/lib/${finalAttrs.pname}/
cp ${finalAttrs.wrapper}/bin/${finalAttrs.pname} $out/bin/
cp -r publish.lua src $out/lib/${finalAttrs.pname}/
makeWrapper ${pkgs.bun}/bin/bun $out/bin/${finalAttrs.pname} \
--add-flag "$out/lib/${finalAttrs.pname}/src/index.ts"
'';
})

View File

@@ -18,9 +18,7 @@ pkgs.dockerTools.buildImage {
Volumes = {
"/var/www/nginx" = { };
};
Env = [
"TARGET_DIR=/var/www/nginx"
];
Env = [ "TARGET_DIR=/var/www/nginx" ];
ExposedPorts = {
"8080/tcp" = { };
};

View File

@@ -1,4 +1,4 @@
{ pkgs ? import <nixpkgs> { }, ... }:
{ pkgs, ... }:
pkgs.buildGoModule (finalAttrs: {
pname = "nginx-receiver";
version = "0";

View File

@@ -191,14 +191,14 @@ func removeContents(directory string) error {
return fmt.Errorf("failed to read dir %s: %w", directory, err)
}
for _, entry := range entries {
err := os.RemoveAll(filepath.Join(directory, entry.Name()))
if err != nil {
return err
}
}
for _, entry := range entries {
err := os.RemoveAll(filepath.Join(directory, entry.Name()))
if err != nil {
return err
}
}
return nil
return nil
}
func renameOrCopyContents(sourceDirectory string) error {

View File

@@ -1,5 +1,5 @@
{ pkgs, ... }:
# AUTO-UPDATE: nix-update --flake --version=branch=master littlelink-server --subpackage yarnSrc
# AUTO-UPDATE: nix-update --flake --version=branch=master littlelink-server
pkgs.stdenv.mkDerivation (finalAttrs: {
pname = "littlelink-server";
version = "0-unstable-2025-06-16";
@@ -11,41 +11,28 @@ pkgs.stdenv.mkDerivation (finalAttrs: {
hash = "sha256-BUPqXpiofHlLKgbOYkZr+QEoRIdRgr8alrUzcGS9edc=";
};
yarnSrc = pkgs.stdenv.mkDerivation {
inherit (finalAttrs) src pname version;
offlineCache = pkgs.fetchYarnDeps {
yarnLock = finalAttrs.src + "/yarn.lock";
hash = "sha256-nv1NgMm56wWlAYqqdH9UKTnWNhjxWBs1lmG+UCCQAzk=";
};
nativeBuildInputs = with pkgs; [
nodejs
yarnConfigHook
yarnBuildHook
npmHooks.npmInstallHook
];
yarnBuildFlags = [ "--noninteractive" ];
installPhase = ''
mkdir -p $out/lib/${finalAttrs.pname}
cp -r build node_modules $out/lib/${finalAttrs.pname}
'';
offlineCache = pkgs.fetchYarnDeps {
yarnLock = finalAttrs.src + "/yarn.lock";
hash = "sha256-nv1NgMm56wWlAYqqdH9UKTnWNhjxWBs1lmG+UCCQAzk=";
};
wrapper = pkgs.writeShellApplication {
name = finalAttrs.pname;
runtimeInputs = with pkgs; [ nodejs_20 ];
text = ''
cd ${finalAttrs.yarnSrc}/lib/${finalAttrs.pname}
exec node build/server.js "$@"
'';
};
nativeBuildInputs = with pkgs; [
nodejs_20
yarnConfigHook
yarnBuildHook
npmHooks.npmInstallHook
makeWrapper
];
yarnBuildFlags = [ "--noninteractive" ];
installPhase = ''
mkdir -p $out/bin
cp ${finalAttrs.wrapper}/bin/${finalAttrs.pname} $out/bin/
mkdir -p $out/lib/${finalAttrs.pname}
cp -r build node_modules $out/lib/${finalAttrs.pname}
makeWrapper ${pkgs.nodejs_20}/bin/node $out/bin/${finalAttrs.pname} \
--run "cd $out/lib/${finalAttrs.pname}" \
--add-flag "build/server.js"
'';
meta.mainProgram = finalAttrs.pname;

View File

@@ -25,4 +25,6 @@ pkgs.buildGoModule (finalAttrs: {
mkdir -p $out/bin
cp "$GOPATH/bin/viya4-orders-cli" $out/bin/viya4-orders-cli
'';
meta.mainProgram = finalAttrs.pname;
})