diff options
author | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2021-04-20 15:13:44 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-20 15:13:44 +0200 |
commit | 086a5861def11036b897c8b21be9af17bbeacc29 (patch) | |
tree | f67a1e323166b96990c950641e4dcbe6327c465e | |
parent | 7cade98cf386d1909b3b1568c30bbe60765ac452 (diff) | |
parent | 732172e2b49a1c468d9097cf937d8da83e6f061f (diff) | |
download | openrussian-cli-086a5861def11036b897c8b21be9af17bbeacc29.tar.gz |
Merge pull request #1 from vs49688/master
Makefile tweaks and Nix{,OS} support
-rw-r--r-- | Makefile | 8 | ||||
-rw-r--r-- | default.nix | 57 | ||||
-rw-r--r-- | openrussian-sql.zip | bin | 36496959 -> 36601305 bytes | |||
-rw-r--r-- | shell.nix | 7 |
4 files changed, 69 insertions, 3 deletions
@@ -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 Binary files differindex a1d9e4f..8c4eaa0 100644 --- a/openrussian-sql.zip +++ b/openrussian-sql.zip 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 ]; +} |