Merge pull request 'develop' (#28) from develop into release-25.11
All checks were successful
Deploy docs / build-and-deploy (push) Successful in 6s
All checks were successful
Deploy docs / build-and-deploy (push) Successful in 6s
Reviewed-on: #28
This commit is contained in:
commit
a42c91f99e
7 changed files with 127 additions and 38 deletions
|
|
@ -7,6 +7,8 @@
|
||||||
hostname,
|
hostname,
|
||||||
nix,
|
nix,
|
||||||
nixos-rebuild-ng,
|
nixos-rebuild-ng,
|
||||||
|
nix-output-monitor,
|
||||||
|
dix,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
|
||||||
|
|
@ -26,5 +28,7 @@ writeShellApplication {
|
||||||
hostname
|
hostname
|
||||||
nix
|
nix
|
||||||
nixos-rebuild-ng
|
nixos-rebuild-ng
|
||||||
|
nix-output-monitor
|
||||||
|
dix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,11 @@ UPDATE_INPUTS="" # Default list of inputs to update. Empty means
|
||||||
ROLLBACK=0 # Default to not rollback
|
ROLLBACK=0 # Default to not rollback
|
||||||
SHOW_TRACE=0 # Default to not show detailed error messages
|
SHOW_TRACE=0 # Default to not show detailed error messages
|
||||||
|
|
||||||
|
# Output functions
|
||||||
|
_status() { echo -e "\033[0;34m> $1\033[0m"; }
|
||||||
|
success() { echo -e "\033[0;32m$1\033[0m"; }
|
||||||
|
error() { echo -e "\033[0;31mError: $1\033[0m" >&2; exit 1; }
|
||||||
|
|
||||||
# Function to display the help message
|
# Function to display the help message
|
||||||
Help() {
|
Help() {
|
||||||
echo "Wrapper script for 'nixos-rebuild switch' and 'home-manager switch' commands."
|
echo "Wrapper script for 'nixos-rebuild switch' and 'home-manager switch' commands."
|
||||||
|
|
@ -37,12 +42,6 @@ Help() {
|
||||||
echo " -u, --user <user> Specify the username (as in 'homeConfigurations.<user>@<host>'). Default: $HOME_USER"
|
echo " -u, --user <user> Specify the username (as in 'homeConfigurations.<user>@<host>'). Default: $HOME_USER"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Function to handle errors
|
|
||||||
error() {
|
|
||||||
echo "Error: $1"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
# Function to rebuild NixOS configuration
|
# Function to rebuild NixOS configuration
|
||||||
Rebuild_nixos() {
|
Rebuild_nixos() {
|
||||||
local FLAKE="$FLAKE_PATH#$NIXOS_HOST"
|
local FLAKE="$FLAKE_PATH#$NIXOS_HOST"
|
||||||
|
|
@ -56,20 +55,31 @@ Rebuild_nixos() {
|
||||||
[ -n "$BUILD_HOST" ] && CMD+=("--build-host" "$BUILD_HOST")
|
[ -n "$BUILD_HOST" ] && CMD+=("--build-host" "$BUILD_HOST")
|
||||||
if [ "$NIXOS_HOST" != "$(hostname)" ] && [ -z "$TARGET_HOST" ]; then
|
if [ "$NIXOS_HOST" != "$(hostname)" ] && [ -z "$TARGET_HOST" ]; then
|
||||||
TARGET_HOST="$NIXOS_HOST"
|
TARGET_HOST="$NIXOS_HOST"
|
||||||
echo "Using '$TARGET_HOST' as target host."
|
_status "Using '$TARGET_HOST' as target host."
|
||||||
fi
|
fi
|
||||||
[ -n "$TARGET_HOST" ] && CMD+=("--target-host" "$TARGET_HOST")
|
[ -n "$TARGET_HOST" ] && CMD+=("--target-host" "$TARGET_HOST")
|
||||||
|
|
||||||
# Rebuild NixOS configuration
|
# Build config first so we can diff it
|
||||||
|
local BUILD_CMD=("nixos-rebuild" "build" "--flake" "$FLAKE")
|
||||||
|
[ "$SHOW_TRACE" = 1 ] && BUILD_CMD+=("--show-trace")
|
||||||
|
[ -n "$BUILD_HOST" ] && BUILD_CMD+=("--build-host" "$BUILD_HOST")
|
||||||
|
|
||||||
if [ "$ROLLBACK" = 0 ]; then
|
if [ "$ROLLBACK" = 0 ]; then
|
||||||
echo "Rebuilding NixOS configuration '$FLAKE'..."
|
_status "Building NixOS configuration '$FLAKE'..."
|
||||||
|
_status "Executing command: ${BUILD_CMD[*]}"
|
||||||
|
"${BUILD_CMD[@]}" |&nom || error "NixOS build failed"
|
||||||
|
_status "Package diff:"
|
||||||
|
dix /run/current-system result
|
||||||
|
rm result
|
||||||
else
|
else
|
||||||
echo "Rolling back to last NixOS generation..."
|
_status "Rolling back to last NixOS generation..."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Executing command: ${CMD[*]}"
|
_status "Switching to new NixOS configuration"
|
||||||
"${CMD[@]}" || error "NixOS rebuild failed"
|
sudo -v
|
||||||
echo "NixOS rebuild completed successfully."
|
_status "Executing command: ${CMD[*]}"
|
||||||
|
"${CMD[@]}" |& nom || error "NixOS rebuild failed"
|
||||||
|
success "NixOS rebuild completed successfully."
|
||||||
}
|
}
|
||||||
|
|
||||||
# Function to rebuild Home Manager configuration
|
# Function to rebuild Home Manager configuration
|
||||||
|
|
@ -91,21 +101,29 @@ Rebuild_home() {
|
||||||
[ "$SHOW_TRACE" = 1 ] && CMD+=("--show-trace")
|
[ "$SHOW_TRACE" = 1 ] && CMD+=("--show-trace")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Rebuild Home Manager configuration
|
# Build config first so we can diff it
|
||||||
if [ "$ROLLBACK" = 0 ]; then
|
if [ "$ROLLBACK" = 0 ]; then
|
||||||
echo "Rebuilding Home Manager configuration '$FLAKE'..."
|
local BUILD_CMD=("home-manager" "build" "--flake" "$FLAKE")
|
||||||
|
[ "$SHOW_TRACE" = 1 ] && BUILD_CMD+=("--show-trace")
|
||||||
|
_status "Building Home Manager configuration '$FLAKE'..."
|
||||||
|
_status "Executing command: ${BUILD_CMD[*]}"
|
||||||
|
"${BUILD_CMD[@]}" |& nom || error "Home Manager build failed"
|
||||||
|
_status "Package diff:"
|
||||||
|
dix /run/current-system result
|
||||||
|
rm result
|
||||||
else
|
else
|
||||||
echo "Rolling back to last Home Manager generation..."
|
_status "Rolling back to last Home Manager generation..."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Executing command: ${CMD[*]}"
|
_status "Switching to new Home Manager configuration"
|
||||||
"${CMD[@]}" || error "Home Manager rebuild failed"
|
_status "Executing command: ${CMD[*]}"
|
||||||
echo "Home Manager rebuild completed successfully."
|
"${CMD[@]}" |& nom || error "Home Manager rebuild failed"
|
||||||
|
success "Home Manager rebuild completed successfully."
|
||||||
}
|
}
|
||||||
|
|
||||||
# Function to Update flake repositories
|
# Function to update flake repositories
|
||||||
Update() {
|
Update() {
|
||||||
echo "Updating flake inputs..."
|
_status "Updating flake inputs..."
|
||||||
|
|
||||||
# Construct update command as an array
|
# Construct update command as an array
|
||||||
local CMD=("nix" "flake" "update" "--flake" "$FLAKE_PATH")
|
local CMD=("nix" "flake" "update" "--flake" "$FLAKE_PATH")
|
||||||
|
|
@ -117,17 +135,18 @@ Update() {
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Executing command: ${CMD[*]}"
|
_status "Executing command: ${CMD[*]}"
|
||||||
"${CMD[@]}" || error "Failed to update flake repositories"
|
"${CMD[@]}" || error "Failed to update flake repositories"
|
||||||
echo "Flake repositories updated successfully."
|
success "Flake repositories updated successfully."
|
||||||
}
|
}
|
||||||
|
|
||||||
# Parse command-line options
|
# Parse command-line options
|
||||||
if [[ -z "${1:-}" ]]; then
|
if [[ -z "${1:-}" ]]; then
|
||||||
echo "Error: No command specified. Printing help page."
|
echo -e "\033[0;31mError: No command specified. Printing help page.\033[0m" >&2
|
||||||
Help
|
Help
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
COMMAND=$1
|
COMMAND=$1
|
||||||
shift
|
shift
|
||||||
|
|
||||||
|
|
@ -198,9 +217,7 @@ while [ $# -gt 0 ]; do
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "Error: Unknown option '$1'"
|
error "Unknown option '$1'"
|
||||||
Help
|
|
||||||
exit 1
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
@ -227,10 +244,10 @@ fi
|
||||||
[ "$UPDATE" = 1 ] && Update
|
[ "$UPDATE" = 1 ] && Update
|
||||||
|
|
||||||
case "$COMMAND" in
|
case "$COMMAND" in
|
||||||
nixos)
|
nixos|os)
|
||||||
Rebuild_nixos
|
Rebuild_nixos
|
||||||
;;
|
;;
|
||||||
home)
|
home|hm)
|
||||||
Rebuild_home
|
Rebuild_home
|
||||||
;;
|
;;
|
||||||
all)
|
all)
|
||||||
|
|
@ -238,9 +255,6 @@ case "$COMMAND" in
|
||||||
Rebuild_home
|
Rebuild_home
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "Error: Unknown command '$COMMAND'"
|
error "Unknown command '$COMMAND'"
|
||||||
echo "Printing help page:"
|
|
||||||
Help
|
|
||||||
exit 1
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,31 @@ in
|
||||||
programs.nixvim = {
|
programs.nixvim = {
|
||||||
plugins.telescope = {
|
plugins.telescope = {
|
||||||
enable = mkDefault true;
|
enable = mkDefault true;
|
||||||
|
settings = {
|
||||||
|
defaults = {
|
||||||
|
vimgrep_arguments = [
|
||||||
|
"rg"
|
||||||
|
"--color=never"
|
||||||
|
"--no-heading"
|
||||||
|
"--with-filename"
|
||||||
|
"--line-number"
|
||||||
|
"--column"
|
||||||
|
"--smart-case"
|
||||||
|
"--hidden"
|
||||||
|
];
|
||||||
|
file_ignore_patterns = [
|
||||||
|
"^.git/"
|
||||||
|
"^.direnv/"
|
||||||
|
"^.cache/"
|
||||||
|
"^node_modules/"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
pickers = {
|
||||||
|
find_files = {
|
||||||
|
hidden = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
extensions = {
|
extensions = {
|
||||||
file-browser.enable = mkDefault true;
|
file-browser.enable = mkDefault true;
|
||||||
fzf-native.enable = mkDefault true;
|
fzf-native.enable = mkDefault true;
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
let
|
let
|
||||||
spellDir = config.xdg.dataHome + "/nvim/site/spell";
|
spellDir = config.xdg.dataHome + "/nvim/site/spell";
|
||||||
baseUrl = "http://ftp.de.vim.org/runtime/spell";
|
baseUrl = "https://vim.ftp.fu-berlin.de/runtime/spell/";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
home.file = {
|
home.file = {
|
||||||
|
|
@ -12,7 +12,7 @@ in
|
||||||
url = baseUrl + "/de.utf-8.spl";
|
url = baseUrl + "/de.utf-8.spl";
|
||||||
sha256 = "sha256-c8cQfqM5hWzb6SHeuSpFk5xN5uucByYdobndGfaDo9E=";
|
sha256 = "sha256-c8cQfqM5hWzb6SHeuSpFk5xN5uucByYdobndGfaDo9E=";
|
||||||
};
|
};
|
||||||
target = spellDir + "/de.utf8.spl";
|
target = spellDir + "/de.utf-8.spl";
|
||||||
};
|
};
|
||||||
de-sug = {
|
de-sug = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
@ -20,7 +20,7 @@ in
|
||||||
url = baseUrl + "/de.utf-8.sug";
|
url = baseUrl + "/de.utf-8.sug";
|
||||||
sha256 = "sha256-E9Ds+Shj2J72DNSopesqWhOg6Pm6jRxqvkerqFcUqUg=";
|
sha256 = "sha256-E9Ds+Shj2J72DNSopesqWhOg6Pm6jRxqvkerqFcUqUg=";
|
||||||
};
|
};
|
||||||
target = spellDir + "/de.utf8.sug";
|
target = spellDir + "/de.utf-8.sug";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,8 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
nix.settings.warn-dirty = mkDefault false;
|
||||||
|
|
||||||
# fallback quickly if substituters are not available.
|
# fallback quickly if substituters are not available.
|
||||||
nix.settings.connect-timeout = mkDefault 5;
|
nix.settings.connect-timeout = mkDefault 5;
|
||||||
nix.settings.fallback = true;
|
nix.settings.fallback = true;
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@
|
||||||
cppman = pkgs.callPackage ./cppman { };
|
cppman = pkgs.callPackage ./cppman { };
|
||||||
fetcher-mcp = pkgs.callPackage ./fetcher-mcp { };
|
fetcher-mcp = pkgs.callPackage ./fetcher-mcp { };
|
||||||
freecad-mcp = pkgs.callPackage ./freecad-mcp { };
|
freecad-mcp = pkgs.callPackage ./freecad-mcp { };
|
||||||
|
jirafeau = pkgs.callPackage ./jirafeau { };
|
||||||
kicad-mcp = pkgs.callPackage ./kicad-mcp { };
|
kicad-mcp = pkgs.callPackage ./kicad-mcp { };
|
||||||
mcpo = pkgs.callPackage ./mcpo { };
|
mcpo = pkgs.callPackage ./mcpo { };
|
||||||
pass2bw = pkgs.callPackage ./pass2bw { };
|
pass2bw = pkgs.callPackage ./pass2bw { };
|
||||||
|
|
|
||||||
43
pkgs/jirafeau/default.nix
Normal file
43
pkgs/jirafeau/default.nix
Normal file
|
|
@ -0,0 +1,43 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
stdenv,
|
||||||
|
fetchFromGitLab,
|
||||||
|
writeText,
|
||||||
|
nixosTests,
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
localConfig = writeText "config.local.php" ''
|
||||||
|
<?php
|
||||||
|
return require(getenv('JIRAFEAU_CONFIG'));
|
||||||
|
?>
|
||||||
|
'';
|
||||||
|
in
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "jirafeau";
|
||||||
|
version = "4.7.1";
|
||||||
|
|
||||||
|
src = fetchFromGitLab {
|
||||||
|
owner = "jirafeau";
|
||||||
|
repo = "Jirafeau";
|
||||||
|
rev = version;
|
||||||
|
hash = "sha256-jXUO+tj6VFNjJkT0vkCCtG7yNWf3QeCx7izZPekAng8=";
|
||||||
|
};
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir $out
|
||||||
|
cp -r * $out/
|
||||||
|
cp ${localConfig} $out/lib/config.local.php
|
||||||
|
'';
|
||||||
|
|
||||||
|
passthru.tests = { inherit (nixosTests) jirafeau; };
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Jirafeau: a simple way to upload a file";
|
||||||
|
homepage = "https://gitlab.com/jirafeau/Jirafeau";
|
||||||
|
changelog = "https://gitlab.com/jirafeau/Jirafeau/-/blob/${src.rev}/CHANGELOG.md";
|
||||||
|
license = lib.licenses.agpl3Plus;
|
||||||
|
mainProgram = "jirafeau";
|
||||||
|
platforms = lib.platforms.all;
|
||||||
|
};
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue