From f2ff05c47e202337e1fa949c68d2c9d5ee7506c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kier=C3=A1n=20Meinhardt?= Date: Tue, 11 Jan 2022 23:49:06 +0100 Subject: [PATCH] feat: reimplement ipa and betacode in haskell --- packages/scripts/default.nix | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/packages/scripts/default.nix b/packages/scripts/default.nix index 77b5d47..e91f670 100644 --- a/packages/scripts/default.nix +++ b/packages/scripts/default.nix @@ -294,23 +294,30 @@ in rec { packages = [ pkgs.xdo ]; }; - ipa = wrapScript { - script = ./ipa.py; - name = "ipa"; - packages = [ pkgs.python3 ]; - }; + ipa = pkgs.writers.writeHaskellBin "ipa" { + libraries = with pkgs; [ haskellPackages.text haskellPackages.ipa ]; + } '' + import Data.Maybe (fromJust) + import Language.IPA + import qualified Data.Text as T + import qualified Data.Text.IO as T + main = T.interact (T.unwords . map (unIPA . fromJust . (xSampaToIpa =<<) . mkXSampa) . T.words) + ''; default-gateway = pkgs.writers.writeDashBin "default-gateway" '' ${pkgs.iproute}/bin/ip -json route | ${pkgs.jq}/bin/jq --raw-output '.[0].gateway' ''; - betacode = pkgs.writers.writePython3Bin "betacode" { - libraries = [ betacode ]; + betacode = pkgs.writers.writeHaskellBin "betacode" { + libraries = with pkgs; [ + (haskell.lib.unmarkBroken (haskell.lib.doJailbreak haskellPackages.betacode)) + haskellPackages.text + ]; } '' - import betacode.conv - import sys - - sys.stdout.write(betacode.conv.beta_to_uni(sys.stdin.read())) + import qualified Data.Text.IO as T + import qualified Data.Text as T + import Text.BetaCode + main = T.interact (either (error . T.unpack) id . fromBeta) ''; devanagari = pkgs.callPackage ../devanagari {};