System Gen44 @ 2025-05-28-00:12:05 by jonas@monolith
This commit is contained in:
parent
0591f6f740
commit
f8fc20953f
3
.gitignore
vendored
3
.gitignore
vendored
@ -1 +1,2 @@
|
||||
*.log
|
||||
*.log
|
||||
**/.direnv/
|
||||
|
||||
22
flake.nix
22
flake.nix
@ -37,6 +37,7 @@
|
||||
};
|
||||
|
||||
outputs = {
|
||||
self,
|
||||
nixpkgs,
|
||||
nixpkgs-unstable,
|
||||
nixos-hardware,
|
||||
@ -60,7 +61,7 @@
|
||||
isHM = false;
|
||||
};
|
||||
modules = [
|
||||
({...}: {nixpkgs.overlays = [overlay-unstable];})
|
||||
({...}: {nixpkgs.overlays = [overlay-unstable self.overlays.default];})
|
||||
({...}: {nixpkgs.config.allowUnfree = true;})
|
||||
nixos-hardware.nixosModules.msi-b550-a-pro
|
||||
inputs.sops-nix.nixosModules.sops
|
||||
@ -75,7 +76,7 @@
|
||||
isHM = false;
|
||||
};
|
||||
modules = [
|
||||
({...}: {nixpkgs.overlays = [overlay-unstable];})
|
||||
({...}: {nixpkgs.overlays = [overlay-unstable self.overlays.default];})
|
||||
({...}: {
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
nixpkgs.config.nvidia.acceptLicense = true;
|
||||
@ -100,7 +101,7 @@
|
||||
isHM = false;
|
||||
};
|
||||
modules = [
|
||||
({...}: {nixpkgs.overlays = [overlay-unstable];})
|
||||
({...}: {nixpkgs.overlays = [overlay-unstable self.overlays.default];})
|
||||
({...}: {nixpkgs.config.allowUnfree = true;})
|
||||
inputs.sops-nix.nixosModules.sops
|
||||
./modules
|
||||
@ -123,7 +124,7 @@
|
||||
# Specify your home configuration modules here, for example,
|
||||
# the path to your home.nix.
|
||||
modules = [
|
||||
({...}: {nixpkgs.overlays = [overlay-unstable];})
|
||||
({...}: {nixpkgs.overlays = [overlay-unstable self.overlays.default];})
|
||||
({...}: {nixpkgs.config.allowUnfree = true;})
|
||||
inputs.plasma-manager.homeManagerModules.plasma-manager
|
||||
inputs.sops-nix.homeManagerModules.sops
|
||||
@ -144,7 +145,7 @@
|
||||
# Specify your home configuration modules here, for example,
|
||||
# the path to your home.nix.
|
||||
modules = [
|
||||
({...}: {nixpkgs.overlays = [overlay-unstable];})
|
||||
({...}: {nixpkgs.overlays = [overlay-unstable self.overlays.default];})
|
||||
({...}: {nixpkgs.config.allowUnfree = true;})
|
||||
inputs.plasma-manager.homeManagerModules.plasma-manager
|
||||
inputs.sops-nix.homeManagerModules.sops
|
||||
@ -165,7 +166,7 @@
|
||||
# Specify your home configuration modules here, for example,
|
||||
# the path to your home.nix.
|
||||
modules = [
|
||||
({...}: {nixpkgs.overlays = [overlay-unstable];})
|
||||
({...}: {nixpkgs.overlays = [overlay-unstable self.overlays.default];})
|
||||
({...}: {nixpkgs.config.allowUnfree = true;})
|
||||
inputs.plasma-manager.homeManagerModules.plasma-manager
|
||||
inputs.sops-nix.homeManagerModules.sops
|
||||
@ -186,7 +187,7 @@
|
||||
# Specify your home configuration modules here, for example,
|
||||
# the path to your home.nix.
|
||||
modules = [
|
||||
({...}: {nixpkgs.overlays = [overlay-unstable];})
|
||||
({...}: {nixpkgs.overlays = [overlay-unstable self.overlays.default];})
|
||||
({...}: {nixpkgs.config.allowUnfree = true;})
|
||||
inputs.plasma-manager.homeManagerModules.plasma-manager
|
||||
inputs.sops-nix.homeManagerModules.sops
|
||||
@ -201,6 +202,13 @@
|
||||
isHM = true;
|
||||
};
|
||||
};
|
||||
|
||||
devShells.${system} = {
|
||||
transcode-davinci-resolve = (import ./pkgs/transcode-davinci-resolve/shell.nix) {pkgs = nixpkgs.legacyPackages.${system};};
|
||||
};
|
||||
|
||||
overlays.default = import ./pkgs;
|
||||
|
||||
templates = {
|
||||
rust = {
|
||||
path = ./templates/rust;
|
||||
|
||||
@ -97,6 +97,7 @@
|
||||
ranger
|
||||
sops
|
||||
spotify
|
||||
transcode-davinci-resolve
|
||||
vim
|
||||
vlc
|
||||
vscode
|
||||
|
||||
3
pkgs/default.nix
Normal file
3
pkgs/default.nix
Normal file
@ -0,0 +1,3 @@
|
||||
_: prev: {
|
||||
transcode-davinci-resolve = prev.callPackage ./transcode-davinci-resolve {};
|
||||
}
|
||||
1
pkgs/transcode-davinci-resolve/.envrc
Normal file
1
pkgs/transcode-davinci-resolve/.envrc
Normal file
@ -0,0 +1 @@
|
||||
use flake ../../#transcode-davinci-resolve --show-trace
|
||||
25
pkgs/transcode-davinci-resolve/default.nix
Normal file
25
pkgs/transcode-davinci-resolve/default.nix
Normal file
@ -0,0 +1,25 @@
|
||||
{
|
||||
bash,
|
||||
ffmpeg,
|
||||
fzf,
|
||||
gum,
|
||||
stdenv,
|
||||
tree,
|
||||
...
|
||||
}:
|
||||
stdenv.mkDerivation {
|
||||
name = "transcode-davinci-resolve";
|
||||
src = ./.;
|
||||
|
||||
buildInputs = [
|
||||
bash
|
||||
ffmpeg
|
||||
fzf
|
||||
gum
|
||||
tree
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
install -Dm755 transcode-davinci-resolve.sh $out/bin/transcode-davinci-resolve
|
||||
'';
|
||||
}
|
||||
7
pkgs/transcode-davinci-resolve/shell.nix
Normal file
7
pkgs/transcode-davinci-resolve/shell.nix
Normal file
@ -0,0 +1,7 @@
|
||||
{pkgs ? import <nixpkgs> {}}: let
|
||||
bin = pkgs.callPackage ./default.nix {};
|
||||
in
|
||||
pkgs.mkShell {
|
||||
name = "transcode-davinci-resolve";
|
||||
inputsFrom = [bin];
|
||||
}
|
||||
44
pkgs/transcode-davinci-resolve/transcode-davinci-resolve.sh
Normal file
44
pkgs/transcode-davinci-resolve/transcode-davinci-resolve.sh
Normal file
@ -0,0 +1,44 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
where="${1:-.}"
|
||||
|
||||
selection=$(find "$where" -type f | fzf --multi --preview 'ffprobe -v error -show_format -show_streams {}' --preview-window=up:wrap)
|
||||
|
||||
output_dir=$(find $HOME -type d ! -name '.*' ! -path '*/.*/*' | fzf --preview 'tree -C {}' --preview-window=up:wrap --prompt "Select output directory: ")
|
||||
|
||||
if gum confirm "Flatten the directory structure?";
|
||||
then
|
||||
flatten=true
|
||||
else
|
||||
flatten=false
|
||||
fi
|
||||
|
||||
function transcode_job {
|
||||
local file="$1"
|
||||
local output_dir="$2"
|
||||
local flatten="$3"
|
||||
local where=$4
|
||||
local fname=$(basename "$file")
|
||||
local segment=$(realpath --relative-to="$where" "$file")
|
||||
|
||||
if [ "$flatten" = true ]; then
|
||||
output_file="$output_dir/$fname.mov"
|
||||
else
|
||||
output_file="$output_dir/$segment.mov"
|
||||
fi
|
||||
|
||||
mkdir -p "$(dirname "$output_file")" >> log.txt
|
||||
|
||||
ffmpeg -i "$file" -c:v dnxhd -profile:v dnxhr_hq -pix_fmt yuv422p -c:a pcm_s16le "$output_file" || true
|
||||
|
||||
}
|
||||
export -f transcode_job
|
||||
|
||||
i=1
|
||||
len=$(echo "$selection" | wc -l)
|
||||
while IFS= read -r file; do
|
||||
gum spin --spinner dot --title "[$i/$len] Transcoding $file" -- bash -c "source <(declare -f transcode_job); transcode_job \"$file\" \"$output_dir\" \"$flatten\" \"$where\""
|
||||
((i++))
|
||||
done <<< "$selection"
|
||||
Loading…
x
Reference in New Issue
Block a user