Skip to content

Instantly share code, notes, and snippets.

@ijaketak
Created December 22, 2019 21:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ijaketak/cdc991ebb16a287eadddb63418e05124 to your computer and use it in GitHub Desktop.
Save ijaketak/cdc991ebb16a287eadddb63418e05124 to your computer and use it in GitHub Desktop.
Nix expression for https://getstatik.com/
{ lib, python3Packages, }:
python3Packages.buildPythonPackage rec {
pname = "httpwatcher";
version = "0.5.2";
src = python3Packages.fetchPypi {
inherit pname version;
sha256 = "1q2hhp346lls5zvc7mag12ylb1fxxs87nnv11i12v8hgc1j089q1";
};
propagatedBuildInputs = with python3Packages; [
tornado_4 watchdog future
];
meta = with lib; {
homepage = https://github.com/thanethomson/httpwatcher;
description = "Web server library and command-line utility for serving static files with live reload functionality";
license = licenses.mit;
longDescription = ''
httpwatcher is both a library and command-line utility for firing up a simple HTTP server to serve static files from a specific root path. Live reloading is triggered via web sockets.
Note that httpwatcher is intended for developers during testing of their static web sites, and is not at all intended as a production web server.
'';
maintainers = with maintainers; [ ];
};
}
{ lib, python3Packages, }:
python3Packages.buildPythonPackage rec {
pname = "lipsum";
version = "0.1.2";
src = python3Packages.fetchPypi {
inherit pname version;
sha256 = "1axqvjxdkwp1xviba7psbb15z13j6xm4h54vi1zw014iy774cpxs";
};
propagatedBuildInputs = [ ];
meta = with lib; {
homepage = https://github.com/thanethomson/lipsum;
description = "A randomised Lorem Ipsum generator library for Python";
license = licenses.mit;
longDescription = ''
A randomised Lorem Ipsum generator library for Python
'';
maintainers = with maintainers; [ ];
};
}
{ lib, python3Packages, }:
python3Packages.buildPythonPackage rec {
pname = "mlalchemy";
version = "0.2.2";
src = python3Packages.fetchPypi {
inherit pname version;
sha256 = "10haf7znbaa1avh68lxwc6mjqlk1jjmia8pgbrpcak38pmypg8gp";
};
propagatedBuildInputs = with python3Packages; [
sqlalchemy future pyyaml
];
meta = with lib; {
homepage = https://github.com/thanethomson/mlalchemy;
description = "Library for converting YAML/JSON to SQLAlchemy SELECT queries";
license = licenses.mit;
longDescription = ''
MLAlchemy is a Python-based utility library aimed at allowing relatively safe conversion from YAML/JSON to SQLAlchemy read-only queries. One use case here is to allow RESTful web applications (written in Python) to receive YAML- or JSON-based queries for data, e.g. from a front-end JavaScript-based application.
The name “MLAlchemy” is an abbreviation for “Markup Language for SQLAlchemy”.
'';
maintainers = with maintainers; [ ];
};
}
# Nix expression for https://getstatik.com/
# Use this for nix-shell.
with import <nixpkgs> {};
let
httpwatcher = callPackage ./httpwatcher.nix {};
lipsum = callPackage ./lipsum.nix {};
mlalchemy = callPackage ./mlalchemy.nix {};
statik = callPackage ./statik.nix {
httpwatcher = httpwatcher;
lipsum = lipsum;
mlalchemy = mlalchemy;
};
in
mkShell { buildInputs = [ statik ]; }
{ lib, python3Packages, httpwatcher, lipsum, mlalchemy }:
python3Packages.buildPythonApplication rec {
pname = "statik";
version = "0.23.0";
src = python3Packages.fetchPypi {
inherit pname version;
sha256 = "0ikprgnvgw499jhi70m0dpwlj0lxqdkv3i9dp8z7val4cakwbqlw";
};
outputs = [ "out" ];
propagatedBuildInputs = with python3Packages; [
argh colorlog dateutil jinja2 markdown markupsafe mock
paramiko pathtools psycopg2 pystache python-slugify pyyaml
requests sqlalchemy unidecode watchdog wheel
httpwatcher lipsum mlalchemy
];
prePatch = ''
substituteInPlace requirements.txt \
--replace psycopg2-binary==2.8.3 psycopg2>=2.8.3 \
--replace python-slugify==3.0.4 python-slugify>=3.0.4 \
--replace python-dateutil==2.8.0 python-dateutil>=2.8.0 \
--replace SQLAlchemy==1.3.9 SQLAlchemy>=1.3.9 \
'';
meta = with lib; {
homepage = https://getstatik.com/;
description = "General-purpose static web site generator";
license = licenses.mit;
longDescription = ''
Statik aims to be a simple, yet powerful, generic static web site generator.
Instead of forcing you to adhere to a particular data structure/model
(like the standard blog data model, with posts, pages and tags),
Statik allows you to define your own data models in YAML format,
and instances of those data models either in YAML or Markdown.
'';
maintainers = with maintainers; [ ];
};
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment