forked from JJJollyjim/arewehackersyet
-
Notifications
You must be signed in to change notification settings - Fork 1
/
stats.nix
28 lines (25 loc) · 827 Bytes
/
stats.nix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
args@{ ... }:
with builtins;
let
kali = import ./default.nix args;
pkgs = (import (import ./nix/sources.nix).nixpkgs) { };
in
with builtins;
let
statsExpr =
mapAttrs
(_: mapAttrs (_: pkg: if isString pkg then pkg else pkg.meta.name))
kali.kaliGroups;
json = toJSON statsExpr;
rubyScript = pkgs.writeScript "are-we-hackers-yet-stats-builder" ''
#!${pkgs.ruby}/bin/ruby
require 'json'
require 'erb'
include ERB::Util
descs = JSON.parse(File.read("${./kali-descriptions.json}"))
groups = JSON.parse(File.read("${pkgs.writeText "are-we-hackers-yet-stats-json" json}"))
template = ERB.new(File.read("${./stats.html.erb}"))
puts template.result_with_hash(:groups => groups, :descs => descs)
'';
in
pkgs.runCommand "are-we-hackers-yet-stats" { } ''${rubyScript} > $out''