1
0
Fork 0
mirror of https://github.com/nix-community/home-manager.git synced 2025-11-08 19:46:05 +01:00

news: reorganize news into YYYY/MM directory structure

- Update news.nix to recursively search for news entries in
subdirectories
- Update create-news-entry.sh to place new entries in YYYY/MM/
directories
- Move existing 2025 news entries to the new structure

This makes the news directory more organized and easier to navigate.
This commit is contained in:
Austin Horstman 2025-05-11 22:33:07 -05:00
parent f0a7db5ec1
commit bc13c13ed7
27 changed files with 28 additions and 6 deletions

View file

@ -55,12 +55,29 @@ let
);
isNixFile = n: v: v == "regular" && lib.hasSuffix ".nix" n;
# builtins.attrNames return the values in alphabetical order
newsFiles = builtins.attrNames (lib.filterAttrs isNixFile (builtins.readDir ./news));
isDirectory = n: v: v == "directory";
# Recursively collect all .nix files from a directory
collectNixFiles =
dir:
let
contents = builtins.readDir dir;
files = lib.filterAttrs isNixFile contents;
fileList = map (file: dir + "/${file}") (builtins.attrNames files);
# Process subdirectories
subdirs = lib.filterAttrs isDirectory contents;
subdirFiles = lib.concatMap (subdir: collectNixFiles (dir + "/${subdir}")) (
builtins.attrNames subdirs
);
in
fileList ++ subdirFiles;
newsFiles = collectNixFiles ./news;
newsEntries = builtins.map (
newsFile:
let
imported = import (./news + "/${newsFile}");
imported = import newsFile;
in
if builtins.isFunction imported then imported { inherit config lib pkgs; } else imported
) newsFiles;

View file

@ -2,15 +2,20 @@
#! nix-shell -I https://github.com/NixOS/nixpkgs/archive/05f0934825c2a0750d4888c4735f9420c906b388.tar.gz -i bash -p coreutils
DATE="$(date --iso-8601=second --universal)"
FILENAME="$(date --date="$DATE" +"%Y-%m-%d_%H-%M-%S").nix"
YEAR="$(date --date="$DATE" +"%Y")"
MONTH="$(date --date="$DATE" +"%m")"
FILENAME_BASE="$(date --date="$DATE" +"%Y-%m-%d_%H-%M-%S")"
DIRNAME="$(dirname -- "${BASH_SOURCE[0]}")"
# Create year/month directory structure if it doesn't exist
mkdir -p "$DIRNAME/$YEAR/$MONTH"
cd "$DIRNAME" || {
>&2 echo "Failed to change to the script directory: $DIRNAME"
exit 1
}
cat - << EOF > "$FILENAME"
cat - << EOF > "$YEAR/$MONTH/$FILENAME_BASE.nix"
{
time = "$DATE";
condition = true;
@ -20,5 +25,5 @@ cat - << EOF > "$FILENAME"
}
EOF
echo "Successfully created a news file: $DIRNAME/$FILENAME"
echo "Successfully created a news file: $DIRNAME/$YEAR/$MONTH/$FILENAME_BASE.nix"
echo "You can open the file above in your text editor and edit now."