Compare commits
3 commits
5ccec30fae
...
23a4ad6725
| Author | SHA1 | Date | |
|---|---|---|---|
| 23a4ad6725 | |||
| 2ad46d7442 | |||
| 33a73074b5 |
7 changed files with 71 additions and 41 deletions
|
|
@ -1,10 +1,49 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
mkBackup = time: {
|
||||
systemd.services."factorio-backup-save-${time}" = {
|
||||
description = "Backup factorio saves";
|
||||
script = ''
|
||||
set -exuo pipefail
|
||||
|
||||
FILENAME="space-age-$(date --iso=seconds | tr ':' '_').zip"
|
||||
DEST_DIR=~lelgenio/Documentos/GameSaves/factorio_saves/space-age-1/${time}
|
||||
|
||||
mkdir -p "$DEST_DIR"
|
||||
cp /var/lib/factorio/saves/default.zip "$DEST_DIR"/$FILENAME
|
||||
chown lelgenio "$DEST_DIR" "$DEST_DIR"/$FILENAME
|
||||
|
||||
# list all files, from oldest to newest
|
||||
# remove the last 10 from the list
|
||||
# delete the rest
|
||||
cd "$DEST_DIR"
|
||||
ls | head -n-10 | xargs -r rm -v
|
||||
'';
|
||||
serviceConfig.Type = "oneshot";
|
||||
};
|
||||
|
||||
systemd.timers."factorio-backup-save-${time}" = {
|
||||
timerConfig = {
|
||||
# Systemd accepts descriptive names such as "daily"
|
||||
# The times are at midnight, Persistent makes sure that the backups get executed
|
||||
OnCalendar = time;
|
||||
Persistent = true;
|
||||
Unit = "factorio-backup-save-${time}.service";
|
||||
};
|
||||
wantedBy = [ "timers.target" ];
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
(mkBackup "daily")
|
||||
(mkBackup "monthly")
|
||||
];
|
||||
|
||||
services.factorio = {
|
||||
enable = true;
|
||||
package = pkgs.my-factorio-headless;
|
||||
|
|
@ -20,29 +59,6 @@
|
|||
wants = [ "network-online.target" ];
|
||||
};
|
||||
|
||||
systemd.services.factorio-backup-save = {
|
||||
description = "Backup factorio saves";
|
||||
script = ''
|
||||
FILENAME="space-age-$(date --iso=seconds | tr ':' '_').zip"
|
||||
${lib.getExe pkgs.rsync} \
|
||||
-av \
|
||||
--chown=lelgenio \
|
||||
/var/lib/factorio/saves/default.zip \
|
||||
~lelgenio/Documentos/GameSaves/factorio_saves/$FILENAME
|
||||
'';
|
||||
serviceConfig.Type = "oneshot";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
};
|
||||
|
||||
systemd.timers.factorio-backup-save = {
|
||||
timerConfig = {
|
||||
OnCalendar = "*-*-* 18:00:00";
|
||||
Persistent = true;
|
||||
Unit = "factorio-backup-save.service";
|
||||
};
|
||||
wantedBy = [ "timers.target" ];
|
||||
};
|
||||
|
||||
sops.secrets."factorio/server-config.json" = {
|
||||
mode = "777";
|
||||
};
|
||||
|
|
|
|||
|
|
@ -12,10 +12,18 @@ rec {
|
|||
|
||||
scripts = (import ../scripts);
|
||||
|
||||
unstable = final: prev: {
|
||||
unstable = import inputs.nixpkgs-unstable { inherit (final) system config; };
|
||||
pkgs-mesa-26 = import inputs.nixpkgs-mesa-26 { inherit (final) system config; };
|
||||
};
|
||||
unstable =
|
||||
final: prev:
|
||||
let
|
||||
args = {
|
||||
inherit (final) config;
|
||||
system = prev.stdenv.hostPlatform.system;
|
||||
};
|
||||
in
|
||||
{
|
||||
unstable = import inputs.nixpkgs-unstable args;
|
||||
pkgs-mesa-26 = import inputs.nixpkgs-mesa-26 args;
|
||||
};
|
||||
|
||||
themes = (
|
||||
final: prev: {
|
||||
|
|
@ -34,14 +42,18 @@ rec {
|
|||
|
||||
new-packages = (
|
||||
final: prev:
|
||||
let
|
||||
system = prev.stdenv.hostPlatform.system;
|
||||
in
|
||||
packages
|
||||
// {
|
||||
lsfg-vk = inputs.lsfg-vk-flake.packages.${prev.system}.lsfg-vk;
|
||||
lsfg-vk-ui = inputs.lsfg-vk-flake.packages.${prev.system}.lsfg-vk-ui;
|
||||
dhist = inputs.dhist.packages.${prev.system}.dhist;
|
||||
demoji = inputs.demoji.packages.${prev.system}.default;
|
||||
tlauncher = inputs.tlauncher.packages.${prev.system}.tlauncher;
|
||||
wl-crosshair = inputs.wl-crosshair.packages.${prev.system}.default;
|
||||
lsfg-vk = inputs.lsfg-vk-flake.packages.${system}.lsfg-vk;
|
||||
lsfg-vk-ui = inputs.lsfg-vk-flake.packages.${system}.lsfg-vk-ui;
|
||||
dhist = inputs.dhist.packages.${system}.dhist;
|
||||
demoji = inputs.demoji.packages.${system}.default;
|
||||
tlauncher = inputs.tlauncher.packages.${system}.tlauncher;
|
||||
wl-crosshair = inputs.wl-crosshair.packages.${system}.default;
|
||||
dzgui = inputs.dzgui-nix.packages.${system}.default;
|
||||
}
|
||||
);
|
||||
|
||||
|
|
|
|||
9
switch
9
switch
|
|
@ -2,25 +2,26 @@
|
|||
|
||||
set -euo pipefail
|
||||
|
||||
nix fmt
|
||||
nix fmt --option warn-dirty false
|
||||
|
||||
# Allow usage of untracked files in nix code
|
||||
git add --intent-to-add .
|
||||
|
||||
# I only use warn-dirty=false because of this
|
||||
git --no-pager diff
|
||||
|
||||
run() {
|
||||
nixos-rebuild \
|
||||
switch \
|
||||
--use-remote-sudo \
|
||||
--sudo \
|
||||
--option warn-dirty false \
|
||||
--print-build-logs \
|
||||
--flake .# \
|
||||
"$@"
|
||||
}
|
||||
|
||||
if which nom >/dev/null; then
|
||||
run --verbose \
|
||||
--log-format internal-json \
|
||||
run --log-format internal-json \
|
||||
"$@" \
|
||||
|& nom --json
|
||||
else
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@
|
|||
environment.systemPackages = with pkgs; [
|
||||
protontricks
|
||||
bottles
|
||||
inputs.dzgui-nix.packages.${pkgs.system}.default
|
||||
dzgui
|
||||
];
|
||||
|
||||
programs.gamemode = {
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ in
|
|||
'';
|
||||
greetd_main_script = pkgs.writeShellScriptBin "main" ''
|
||||
export XDG_CURRENT_DESKTOP=sway GTK_THEME="${theme.gtk_theme}" XCURSOR_THEME="${theme.cursor_theme}"
|
||||
${pkgs.greetd.gtkgreet}/bin/gtkgreet -l -c ${lib.getExe start-sway}
|
||||
${pkgs.gtkgreet}/bin/gtkgreet -l -c ${lib.getExe start-sway}
|
||||
swaymsg exit
|
||||
'';
|
||||
swayConfig = pkgs.writeText "greetd-sway-config" ''
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ in
|
|||
programs.git = {
|
||||
enable = true;
|
||||
lfs.enable = true;
|
||||
extraConfig = {
|
||||
settings = {
|
||||
user = {
|
||||
name = username;
|
||||
email = mail.personal.user;
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
config = {
|
||||
programs.ssh = {
|
||||
enable = true;
|
||||
enableDefaultConfig = false;
|
||||
matchBlocks = {
|
||||
monolith = {
|
||||
user = "lelgenio";
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue