Skip to content

Commit 2774bb4

Browse files
committed
Flake now works
1 parent c9903b0 commit 2774bb4

File tree

3 files changed

+41
-24
lines changed

3 files changed

+41
-24
lines changed

flake.nix

Lines changed: 31 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,45 @@
77

88
outputs = { self, nixpkgs }: let
99
pkgs = import nixpkgs {system = "x86_64-linux";};
10+
sdow-website = pkgs.buildNpmPackage {
11+
name = "sdow";
12+
buildInputs = with pkgs; [
13+
nodejs_latest
14+
];
15+
src = ./website;
16+
17+
npmDeps = pkgs.importNpmLock {
18+
npmRoot = ./website;
19+
};
20+
21+
npmFlags = [ "--legacy-peer-deps" ];
22+
23+
npmConfigHook = pkgs.importNpmLock.npmConfigHook;
24+
25+
installPhase = ''
26+
cp -r ./dist/ $out
27+
'';
28+
};
29+
sdow-http = pkgs.writeShellScript "sdow" ''
30+
${pkgs.simple-http-server}/bin/simple-http-server ${self.packages.x86_64-linux.sdow} "$@"
31+
'';
1032
python-gunicorn = pkgs.python3.withPackages (pp: with pp;[
1133
flask
1234
flask-compress
1335
flask-cors
1436
gunicorn
1537
protobuf
1638
requests
39+
google-cloud-logging
1740
]);
1841
sdow-api-gunicorn = pkgs.writeShellApplication {
1942
name = "sdow-api";
2043
runtimeInputs = [ python-gunicorn ];
2144
text = ''
2245
cd "${self.packages.x86_64-linux.sdow-api}"
46+
if [ "$#" -lt 2 ]
47+
then echo "This script takes two arguments: path to sdow database, and path to searches database"; exit 1
48+
fi
2349
if [ ! -f "$1" ]
2450
then echo "First argument should be a path to the sdow database"; exit 1
2551
fi
@@ -63,25 +89,7 @@
6389

6490
packages.x86_64-linux = {
6591
default = self.packages.x86_64-linux.sdow;
66-
sdow = pkgs.buildNpmPackage {
67-
name = "sdow";
68-
buildInputs = with pkgs; [
69-
nodejs_latest
70-
];
71-
src = ./website;
72-
73-
npmDeps = pkgs.importNpmLock {
74-
npmRoot = ./website;
75-
};
76-
77-
npmFlags = [ "--legacy-peer-deps" ];
78-
79-
npmConfigHook = pkgs.importNpmLock.npmConfigHook;
80-
81-
installPhase = ''
82-
cp -r build/ $out
83-
'';
84-
};
92+
sdow = sdow-website;
8593

8694
sdow-api = pkgs.stdenv.mkDerivation {
8795
name = "sdow-api";
@@ -95,6 +103,10 @@
95103
};
96104
apps.x86_64-linux = {
97105
default = self.apps.x86_64-linux.sdow-api;
106+
sdow = {
107+
type = "app";
108+
program = "${sdow-http}";
109+
};
98110
sdow-api = {
99111
type = "app";
100112
program = "${sdow-api-gunicorn}/bin/sdow-api";

sdow/database.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
import os.path
66
import sqlite3
77

8-
import sdow.helpers as helpers
9-
from sdow.breadth_first_search import breadth_first_search
8+
import helpers as helpers
9+
from breadth_first_search import breadth_first_search
1010

1111

1212
class Database(object):

sdow/server.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
Server web framework.
33
"""
44

5+
import os
56
import time
67
import logging
78
import google.cloud.logging
@@ -10,12 +11,16 @@
1011
from flask_compress import Compress
1112
from flask import Flask, request, jsonify
1213

13-
from sdow.database import Database
14-
from sdow.helpers import InvalidRequest, fetch_wikipedia_pages_info
14+
from database import Database
15+
from helpers import InvalidRequest, fetch_wikipedia_pages_info
1516

1617

18+
19+
sdow_database = os.environ.get('SDOW_DATABASE','./sdow.sqlite')
20+
searches_database = os.environ.get('SEARCHES_DATABASE','./searches.sqlite')
21+
1722
# Connect to the SDOW database.
18-
database = Database(sdow_database='./sdow.sqlite', searches_database='./searches.sqlite')
23+
database = Database(sdow_database=sdow_database, searches_database=searches_database)
1924

2025
# Initialize the Flask app.
2126
app = Flask(__name__)

0 commit comments

Comments
 (0)