Add deliver
script
Based on Jess Archer's script, this executes a command within a specified Docker Compose service or, if no matching one is not found, will execute it locally.
This commit is contained in:
parent
c1e85f01d9
commit
80927b1df2
|
@ -15,6 +15,7 @@ let
|
|||
create-zellij-session = writeShellApplication (
|
||||
import ./scripts/create-zellij-session.nix { inherit pkgs; }
|
||||
);
|
||||
deliver = writeShellApplication (import ./scripts/deliver.nix { inherit pkgs; });
|
||||
export-video-list = writeShellApplication (
|
||||
import ./scripts/export-video-list.nix { inherit pkgs username; }
|
||||
);
|
||||
|
@ -70,6 +71,7 @@ with pkgs;
|
|||
|
||||
# Scripts.
|
||||
create-zellij-session
|
||||
deliver
|
||||
notetaker
|
||||
run
|
||||
t
|
||||
|
|
25
lib/shared/scripts/deliver.nix
Normal file
25
lib/shared/scripts/deliver.nix
Normal file
|
@ -0,0 +1,25 @@
|
|||
{ pkgs }:
|
||||
{
|
||||
name = "deliver";
|
||||
|
||||
runtimeInputs = with pkgs; [ docker ];
|
||||
|
||||
text = ''
|
||||
set +o pipefail
|
||||
|
||||
# Based on https://github.com/jessarcher/dotfiles/blob/ef692c35d64db2c13674dfc850a23b6acf9e8f91/scripts/deliver.
|
||||
|
||||
docker_compose_service_name=$(docker compose ps --services 2>/dev/null | grep '^app\|php$' | head -n1)
|
||||
|
||||
if [[ "$docker_compose_service_name" != "" ]]; then
|
||||
if [ -t 1 ]; then
|
||||
"${pkgs.docker}/bin/docker" compose exec "$docker_compose_service_name" "$@"
|
||||
else
|
||||
# The command is not being run in a TTY
|
||||
"${pkgs.docker}/bin/docker" compose exec -T "$docker_compose_service_name" "$@"
|
||||
fi
|
||||
else
|
||||
"$@"
|
||||
fi
|
||||
'';
|
||||
}
|
Loading…
Reference in a new issue