Files
nixos/build_structure.sh
T

100 lines
2.6 KiB
Bash
Executable File

#!/usr/bin/env bash
# Droidnix: Create folder structure for a dendritic NixOS + Home Manager setup
set -euo pipefail
# Root directory (change this if needed)
ROOT_DIR="${1:-./Droidnix}"
# Create root directory if it doesn't exist
mkdir -p "$ROOT_DIR"
cd "$ROOT_DIR"
# Function to create directories
mkdir_structure() {
mkdir -p \
assets/common/conf \
assets/common/scripts \
assets/hyprland/conf \
assets/hyprland/themes \
assets/hyprland/scripts \
assets/mangowc/conf \
assets/mangowc/themes \
assets/mangowc/scripts \
assets/machines/maindroid \
assets/machines/traveldroid \
common/nixos/hardware \
common/nixos/services \
common/nixos/users \
common/nixos/security \
common/nixos/packages \
common/home-manager/programs \
common/home-manager/shell \
common/home-manager/starship \
common/themes/gtk \
common/themes/icons \
common/themes/fonts \
common/themes/shells \
common/templates \
hyprland/nixos/window-manager \
hyprland/nixos/plugins \
hyprland/home-manager/programs \
hyprland/home-manager/scripts \
hyprland/themes/hypr \
hyprland/themes/waybar \
hyprland/themes/rofi \
hyprland/overrides \
mangowc/nixos/window-manager \
mangowc/nixos/plugins \
mangowc/home-manager/programs \
mangowc/home-manager/scripts \
mangowc/themes/mangowc \
mangowc/themes/waybar \
mangowc/themes/wofi \
mangowc/overrides
}
# Create the structure
mkdir_structure
# Create a placeholder base.conf in assets/common/conf
cat > assets/common/conf/base.conf << 'EOF'
# Droidnix Base Configuration
# Choose your window manager: hyprland or mangowc
wm = "hyprland"
EOF
# Create a placeholder configuration.nix for each machine
cat > assets/machines/maindroid/configuration.nix << 'EOF'
# Maindroid NixOS Configuration
{ ... }: {
# Your NixOS configuration for maindroid
}
EOF
cat > assets/machines/traveldroid/configuration.nix << 'EOF'
# Traveldroid NixOS Configuration
{ ... }: {
# Your NixOS configuration for traveldroid
}
EOF
# Create a placeholder flake.nix in the root
cat > flake.nix << 'EOF'
{
description = "Droidnix: A dendritic NixOS + Home Manager configuration";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
home-manager.url = "github:nix-community/home-manager";
};
outputs = { self, nixpkgs, home-manager, ... }@inputs: {
# Your flake outputs here
};
}
EOF
echo "Droidnix folder structure created in: $ROOT_DIR"