Chad
730eaf9faa
* Add more GNOME helpers. * Fix typo, adjust output. * Update readme. * Add more programs and a TBD. * Add OpenJDK 8 as well. * More programs, fix mlocate, start working on GNOME settings. * Add success message. * Fixing favorites, for some reason the files are different on NixOS than systems using Ansible. * Add cron. Start working on header details. * Modify Python configuration for ansible playbooks. * More work on Python. Still not getting success with psutil. * NixOS, python, and psutil are still being dumb with ansible. * Add imagemagick for compressing file sizes. * Automatically create backups the first time this is run each day. * Create an example file. * More comments, SSHD config, a few fixes, some TBDs, and general reorganization. * Add a disclaimer. * Make the file look more like a developer wrote it. * Try adding wallets. Exodus seems broken. Monero works. * Start trying a different route for dconf settings. May require "home manager". * Add Docker. * Create a static and ansible file. Import them, and give examples of what they are for. * Add comments brainstorming how to do the different setups. * Add home-manager. Still no luck with dconf. Not in Ansible either. * Add godot. * Add zsh. * Move to Godot4. * Remove extra space. * Add balena etcher for USB sticks. * Remove etcher, seems to have broken ability to update or install anything. * Add a bittorrent client. * Remove excess ssh ports. They were probably for testing.
66 lines
1.7 KiB
Bash
Executable File
66 lines
1.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Activate the modified configuyrsation.nix
|
|
|
|
## Setup ##
|
|
|
|
DIR="$(dirname -- "${BASH_SOURCE[0]}")"
|
|
PROG="$(basename -- "${BASH_SOURCE[0]}")"
|
|
|
|
nix_ext="nix"
|
|
nixos_dir="/etc/nixos"
|
|
date_YYYYMMDD="`date "+%Y%m%d"`"
|
|
backup_dir="$nixos_dir/${date_YYYYMMDD}_Backups"
|
|
|
|
## Main ##
|
|
|
|
echo "Requesting sudo password if it has not already been requested recently."
|
|
sudo echo "Success!"
|
|
|
|
# Make a backup if one does not already exist for today.
|
|
if [[ ! -e "$backup_dir" ]]; then
|
|
echo -e "\nSaving backups for today."
|
|
sudo mkdir -pv "$backup_dir"
|
|
sudo cp -v "$nixos_dir"/*."$nix_ext" "$backup_dir"/
|
|
fi
|
|
|
|
# Ensure unmaintained files exist for import.
|
|
nix_static=$nixos_dir/static.nix
|
|
if [[ ! -e $nix_static ]]; then
|
|
echo "Creating '$nix_static'."
|
|
echo -e "{ config, pkgs, nix, ... }:\n\n{\n #\n}" | sudo tee $nix_static
|
|
fi
|
|
nix_ansible=$nixos_dir/ansible.nix
|
|
if [[ ! -e $nix_ansible ]]; then
|
|
echo "Creating '$nix_ansible' from '$nix_static'."
|
|
cp -v $nix_static $nix_ansible
|
|
fi
|
|
|
|
# Start the chain.
|
|
sleep 0 &&
|
|
|
|
# Essentials, jeez!
|
|
echo -e "\nMaking sure that /bin/bash is available." &&
|
|
sudo ln -vfs `which bash` /bin/bash &&
|
|
|
|
# Install Home Manager for usage in configuration.nix type files.
|
|
echo -e "\nAdd Home Manager." &&
|
|
sudo nix-channel \
|
|
--add https://github.com/nix-community/home-manager/archive/master.tar.gz \
|
|
home-manager
|
|
sudo nix-channel --update
|
|
|
|
# Main install.
|
|
echo -e "\nSwitching to the new configuration." &&
|
|
sudo cp "$DIR"/*."$nix_ext" "$nixos_dir"/ &&
|
|
sudo nixos-rebuild switch &&
|
|
|
|
# Completed successfully.
|
|
echo -e "\nSuccess!" &&
|
|
exit 0
|
|
|
|
## Errors ##
|
|
|
|
status="$?"
|
|
echo "ERROR: A command failed with status $status, please check the output."
|
|
exit $status
|