tangled
alpha
login
or
join now
jaspermayone.com
/
dots
0
fork
atom
@jaspermayone.com's dotfiles
0
fork
atom
overview
issues
pulls
pipelines
dippet: add forks sync cron job
jaspermayone.com
1 month ago
a0392e7f
716a67bc
+46
1 changed file
expand all
collapse all
unified
split
hosts
dippet
default.nix
+46
hosts/dippet/default.nix
···
8
8
...
9
9
}:
10
10
11
11
+
let
12
12
+
forks-sync = pkgs.writeShellScript "forks-sync" ''
13
13
+
set -euo pipefail
14
14
+
15
15
+
FORKS_DIR="/Users/jsp/forks"
16
16
+
ORG="jaspermayone-forks"
17
17
+
18
18
+
mkdir -p "$FORKS_DIR"
19
19
+
cd "$FORKS_DIR"
20
20
+
21
21
+
# Get list of repos from GitHub
22
22
+
repos=$(${pkgs.gh}/bin/gh repo list "$ORG" --limit 1000 --json name -q '.[].name')
23
23
+
24
24
+
for repo in $repos; do
25
25
+
if [ -d "$repo" ]; then
26
26
+
echo "Updating $repo..."
27
27
+
cd "$repo"
28
28
+
${pkgs.git}/bin/git pull --ff-only || true
29
29
+
cd ..
30
30
+
else
31
31
+
echo "Cloning $repo..."
32
32
+
${pkgs.gh}/bin/gh repo clone "$ORG/$repo" || true
33
33
+
fi
34
34
+
done
35
35
+
36
36
+
echo "Sync complete: $(date)"
37
37
+
'';
38
38
+
in
11
39
{
12
40
# Disable nix-darwin's Nix management (using Determinate Nix installer)
13
41
nix.enable = false;
···
26
54
];
27
55
StandardOutPath = "/var/log/nix-darwin-upgrade.log";
28
56
StandardErrorPath = "/var/log/nix-darwin-upgrade.log";
57
57
+
};
58
58
+
};
59
59
+
60
60
+
# Sync forks from jaspermayone-forks org hourly
61
61
+
launchd.daemons.forks-sync = {
62
62
+
script = ''
63
63
+
${forks-sync}
64
64
+
'';
65
65
+
serviceConfig = {
66
66
+
StartInterval = 3600; # Every hour
67
67
+
StandardOutPath = "/var/log/forks-sync.log";
68
68
+
StandardErrorPath = "/var/log/forks-sync.log";
69
69
+
UserName = "jsp";
70
70
+
GroupName = "staff";
71
71
+
EnvironmentVariables = {
72
72
+
HOME = "/Users/jsp";
73
73
+
PATH = "${pkgs.git}/bin:${pkgs.gh}/bin:/usr/bin:/bin";
74
74
+
};
29
75
};
30
76
};
31
77