95 lines
2.8 KiB
Nix
95 lines
2.8 KiB
Nix
![]() |
{
|
||
|
config,
|
||
|
pkgs,
|
||
|
lib,
|
||
|
...
|
||
|
}: let
|
||
|
inherit (lib) getExe;
|
||
|
inherit (builtins) readFile;
|
||
|
in {
|
||
|
home = {
|
||
|
# make sure the scripts linked below in the session PATH
|
||
|
# so that they can be referred to by name
|
||
|
sessionPath = ["${config.home.homeDirectory}/.local/bin"];
|
||
|
|
||
|
# link scripts to the local PATH
|
||
|
file = {
|
||
|
".local/bin/preview" = {
|
||
|
# Preview script for fzf tab
|
||
|
source = getExe (pkgs.writeShellApplication {
|
||
|
name = "preview";
|
||
|
runtimeInputs = with pkgs; [fzf eza catimg];
|
||
|
text = readFile ./preview/preview.sh;
|
||
|
});
|
||
|
};
|
||
|
|
||
|
".local/bin/show-zombie-parents" = {
|
||
|
# Show zombie processes and their parents
|
||
|
source = getExe (pkgs.writeShellApplication {
|
||
|
name = "show-zombie-parents";
|
||
|
runtimeInputs = with pkgs; [fzf eza catimg];
|
||
|
text = readFile ./show-zombie-parents/show-zombie-parents.sh;
|
||
|
});
|
||
|
};
|
||
|
|
||
|
".local/bin/tzip" = {
|
||
|
# Find all latest .tmod files recursively in current directory and zip them
|
||
|
# for tmodloader mods downloaded via steam workshop
|
||
|
source = getExe (pkgs.writeShellApplication {
|
||
|
name = "tzip";
|
||
|
runtimeInputs = with pkgs; [zip];
|
||
|
text = readFile ./tzip/tzip.sh;
|
||
|
});
|
||
|
};
|
||
|
|
||
|
".local/bin/extract" = {
|
||
|
# Extract the compressed file with the correct tool based on the extension
|
||
|
source = getExe (pkgs.writeShellApplication {
|
||
|
name = "extract";
|
||
|
runtimeInputs = with pkgs; [zip unzip gnutar p7zip];
|
||
|
text = readFile ./extract/extract.sh;
|
||
|
});
|
||
|
};
|
||
|
|
||
|
".local/bin/compilec" = {
|
||
|
# Interactively find and compile C++ programs
|
||
|
source = getExe (pkgs.writeShellApplication {
|
||
|
name = "compilec";
|
||
|
runtimeInputs = with pkgs; [skim coreutils gcc];
|
||
|
text = readFile ./compilec/compilec.sh;
|
||
|
});
|
||
|
};
|
||
|
|
||
|
".local/bin/fs-diff" = {
|
||
|
# Show diff of two directories
|
||
|
source = getExe (pkgs.writeShellApplication {
|
||
|
name = "fs-diff";
|
||
|
runtimeInputs = with pkgs; [coreutils gnused btrfs-progs];
|
||
|
text = readFile ./fs-diff/fs-diff.sh;
|
||
|
});
|
||
|
};
|
||
|
|
||
|
".local/bin/purge-direnv" = {
|
||
|
# Purge all direnv links
|
||
|
source = getExe (pkgs.writeShellApplication {
|
||
|
name = "purge-direnv";
|
||
|
runtimeInputs = with pkgs; [direnv];
|
||
|
text = readFile ./purge-direnv/purge-direnv.sh;
|
||
|
});
|
||
|
};
|
||
|
|
||
|
".local/bin/addr" = {
|
||
|
# Get external IP address
|
||
|
source = getExe (pkgs.writeShellApplication {
|
||
|
name = "addr";
|
||
|
runtimeInputs = with pkgs; [curl];
|
||
|
text = ''
|
||
|
#!${pkgs.stdenv.shell}
|
||
|
exec curl "$@" icanhazip.com
|
||
|
'';
|
||
|
});
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
}
|