aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2021-04-20 15:13:44 +0200
committerGitHub <noreply@github.com>2021-04-20 15:13:44 +0200
commit086a5861def11036b897c8b21be9af17bbeacc29 (patch)
treef67a1e323166b96990c950641e4dcbe6327c465e
parent7cade98cf386d1909b3b1568c30bbe60765ac452 (diff)
parent732172e2b49a1c468d9097cf937d8da83e6f061f (diff)
downloadopenrussian-cli-086a5861def11036b897c8b21be9af17bbeacc29.tar.gz
Merge pull request #1 from vs49688/master
Makefile tweaks and Nix{,OS} support
-rw-r--r--Makefile8
-rw-r--r--default.nix57
-rw-r--r--openrussian-sql.zipbin36496959 -> 36601305 bytes
-rw-r--r--shell.nix7
4 files changed, 69 insertions, 3 deletions
diff --git a/Makefile b/Makefile
index 36c75d7..8fe3880 100644
--- a/Makefile
+++ b/Makefile
@@ -21,11 +21,11 @@ openrussian : openrussian.lua
# a database matching the openrussian.lua script.
#.INTERMEDIATE: openrussian-sql.zip
openrussian-sql.zip:
- wget -O $@ 'https://en.openrussian.org/downloads/openrussian-sql.zip'
+ wget -O $@ 'https://api.openrussian.org/downloads/openrussian-sql.zip'
openrussian-sqlite3.db : openrussian-sql.zip mysql2sqlite postprocess.sql
$(RM) $@
- unzip -p $< openrussian.sql | ./mysql2sqlite - | sqlite3 $@
+ unzip -p $< openrussian.sql | awk -f ./mysql2sqlite - | sqlite3 $@
sqlite3 $@ -batch <postprocess.sql
# Try to generate all possible pages
@@ -50,4 +50,6 @@ install : openrussian openrussian-sqlite3.db \
mandb
clean:
- $(RM) openrussian openrussian-sql.zip openrussian-sqlite3.db
+ $(RM) openrussian openrussian-sqlite3.db
+
+.PHONY: all check install clean
diff --git a/default.nix b/default.nix
new file mode 100644
index 0000000..0a784a2
--- /dev/null
+++ b/default.nix
@@ -0,0 +1,57 @@
+{ stdenv, lib, nix-gitignore, gnumake, pkgconfig, wget, unzip, gawk
+, sqlite, which, luaPackages, installShellFiles, makeWrapper
+}:
+let
+ luaLibs = with luaPackages; [ lua luasql-sqlite3 luautf8 ];
+in
+stdenv.mkDerivation rec {
+ pname = "openrussian-cli";
+ version = "1.0.0";
+
+ src = nix-gitignore.gitignoreSource [] ./.;
+
+ nativeBuildInputs = [
+ gnumake pkgconfig wget unzip gawk sqlite which installShellFiles
+ ];
+
+ buildInputs = [ makeWrapper ] ++ luaLibs;
+
+ makeFlags = [
+ "LUA=${luaPackages.lua}/bin/lua"
+ "LUAC=${luaPackages.lua}/bin/luac"
+ ];
+
+ dontConfigure = true;
+
+ # Disable check as it's too slow.
+ # doCheck = true;
+
+ #This is needed even though it's the default for some reason.
+ checkTarget = "check";
+
+ # Can't use "make install" here
+ installPhase = ''
+ mkdir -p $out/bin $out/share/openrussian
+ cp openrussian-sqlite3.db $out/share/openrussian
+ cp openrussian $out/bin
+
+ wrapProgram $out/bin/openrussian \
+ --prefix LUA_PATH ';' "$LUA_PATH" \
+ --prefix LUA_CPATH ';' "$LUA_CPATH"
+
+ runHook postInstall
+ '';
+
+ postInstall = ''
+ installShellCompletion --bash --name openrussian ./openrussian-completion.bash
+ installManPage ./openrussian.1
+ '';
+
+ meta = with lib; {
+ homepage = "https://github.com/rhaberkorn/openrussian-cli";
+ description = "Offline Console Russian Dictionary (based on openrussian.org)";
+ license = with licenses; [ gpl3 mit cc-by-sa-40 ];
+ platforms = platforms.unix;
+ };
+}
+
diff --git a/openrussian-sql.zip b/openrussian-sql.zip
index a1d9e4f..8c4eaa0 100644
--- a/openrussian-sql.zip
+++ b/openrussian-sql.zip
Binary files differ
diff --git a/shell.nix b/shell.nix
new file mode 100644
index 0000000..93c27dc
--- /dev/null
+++ b/shell.nix
@@ -0,0 +1,7 @@
+{ pkgs ? (import <nixpkgs> {}) }:
+let
+ openrussian = pkgs.callPackage ./default.nix {};
+in
+pkgs.mkShell {
+ buildInputs = [ openrussian ];
+}