Compare commits

...

7 Commits

6 changed files with 69 additions and 26 deletions

3
blog/change_blog_nix.sh Executable file
View File

@@ -0,0 +1,3 @@
echo "New rev: $1"
echo "New SHA256: $2"
sed -i "s/rev = \".*\"/rev = \"$1\"/;s/sha256 = \".*\"/sha256 = \"$2\"/" default.nix

View File

@@ -32,5 +32,5 @@ files.each do |file|
document.search('//*[not(ancestor-or-self::code)]/text()').each do |t|
t.replace(perform_katex_sub(inline_cache, display_cache, t.content))
end
File.write(file, document.to_html(encoding: 'US-ASCII'))
File.write(file, document.to_html(encoding: 'UTF-8'))
end

View File

@@ -1,15 +1,12 @@
{ stdenv, lib, hugo, fetchgit, pkgs, nodejs, ruby }:
{ blog-source, blog-source-localized, stdenv, lib, hugo, fetchgit, pkgs, nodejs, ruby }:
let
url = "https://dev.danilafe.com/Web-Projects/blog-static.git";
requiredPackages = import ./required-packages.nix { inherit pkgs nodejs; };
website = settings: stdenv.mkDerivation {
name = "blog-static";
version = settings.rev;
src = fetchgit {
inherit url;
inherit (settings) rev sha256;
};
version = settings.source.rev;
src = settings.source;
urlSub =
let
regexEscape = lib.escape [ "/" "(" ")" "[" "]" "+" "*" "\\" ];
@@ -28,20 +25,20 @@ let
(ruby.withPackages (ps: [ ps.nokogiri ]))
];
};
rev = "565d4a695541de1d2c760270adf082e36809c464";
sha256 = "0sv23falf3dciapclhl25yf22qi6c26in9zqcl3dvad2v2j7bzbc";
rev = "60eb50737d535e8ec506b877250d0e4bbfbf1bda";
sha256 = "1xyppzim3kvawr1bkizwmkbgvb4pxhgnc7gxwjv8sdfcyvbfgz8p";
localizationRev = "0b5748cc5a19b5d1d78bfcfa58d4027cc10524dd";
localizationSha256 = "12pqh534z3ppvgzy0a77s9j1qzzmiyxwvlmh5y76pccf32wvi9wz";
in
{
english = website {
inherit rev sha256;
source = blog-source;
path = ".";
drafts = false;
};
drafts = {
english = website {
inherit rev sha256;
source = blog-source;
path = ".";
drafts = true;
replaceUrl = {
@@ -50,8 +47,7 @@ in
};
};
russian = website {
rev = localizationRev;
sha256 = localizationSha256;
source = blog-source-localized;
path = "ru";
drafts = true;
replaceUrl = {

1
blog/update_blog.sh Executable file
View File

@@ -0,0 +1 @@
nix-prefetch-git --rev refs/heads/master https://dev.danilafe.com/Web-Projects/blog-static.git --quiet | jq '.rev,.sha256' | xargs ./change_blog_nix.sh

49
flake.nix Normal file
View File

@@ -0,0 +1,49 @@
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs";
flake-utils.url = "github:numtide/flake-utils";
blog-source = {
flake = false;
url = "https://dev.danilafe.com/Web-Projects/blog-static.git";
type = "git";
submodules = true;
};
blog-source-localized = {
flake = false;
url = "https://dev.danilafe.com/Web-Projects/blog-static.git";
ref = "localization";
type = "git";
submodules = true;
};
pegasus-source = {
url = "github:DanilaFe/pegasus";
flake = false;
};
pupper-bot-source = {
url = "git+https://dev.danilafe.com/Crystal-Bots/joann-pupper-bot";
flake = false;
};
};
outputs = { self, pupper-bot-source, pegasus-source, blog-source, blog-source-localized, nixpkgs, flake-utils }:
flake-utils.lib.eachDefaultSystem
(system:
let
pkgs = import nixpkgs { inherit system; };
pegasus = pkgs.callPackage ./pegasus/default.nix {
inherit pegasus-source;
};
blog = pkgs.callPackage ./blog/default.nix {
inherit blog-source blog-source-localized;
};
in
{
packages = {
inherit pegasus;
blogEnglish = blog.english;
blogEnglishDrafts = blog.drafts.english;
blogRussianDrafts = blog.drafts.russian;
};
}
);
}

View File

@@ -1,18 +1,12 @@
{ stdenv, crystal, fetchFromGitHub }:
let
version = "0489d47b191ecf8501787355b948801506e7c70f";
src = fetchFromGitHub {
owner = "DanilaFe";
repo = "pegasus";
rev = version;
sha256 = "097m7l16byis07xlg97wn5hdsz9k6c3h1ybzd2i7xhkj24kx230s";
};
in
{ pegasus-source, stdenv, crystal, fetchFromGitHub }:
crystal.buildCrystalPackage {
pname = "pegasus";
inherit version;
inherit src;
src = pegasus-source;
version = pegasus-source.rev;
format = "crystal";
# Programs don't do so well when running --help
installCheckPhase = "";
crystalBinaries.pegasus.src = "src/pegasus.cr";
crystalBinaries.pegasus-dot.src = "src/tools/dot/pegasus_dot.cr";