about summary refs log tree commit diff stats
path: root/pkgs/by-name/na
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-05-23 13:26:22 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-05-23 13:26:22 +0200
commit204731c0a69136c9cebcb54f1afecf5145e26bbe (patch)
treefc9132e5dc74e4a8e1327cdd411839a90f9410aa /pkgs/by-name/na
parentrefactor(sys): Modularize and move to `modules/system` or `pkgs` (diff)
downloadnixos-config-204731c0a69136c9cebcb54f1afecf5145e26bbe.zip
refactor(pkgs): Categorize into `by-name` shards
This might not be the perfect way to organize a package set --
especially if the set is not nearly the size of nixpkgs -- but it is
_at_ least a way of organization.
Diffstat (limited to 'pkgs/by-name/na')
-rwxr-xr-xpkgs/by-name/na/nato/nato.py106
-rw-r--r--pkgs/by-name/na/nato/package.nix34
2 files changed, 140 insertions, 0 deletions
diff --git a/pkgs/by-name/na/nato/nato.py b/pkgs/by-name/na/nato/nato.py
new file mode 100755
index 00000000..e9d15f56
--- /dev/null
+++ b/pkgs/by-name/na/nato/nato.py
@@ -0,0 +1,106 @@
+#!/usr/bin/env python3
+# originally from here: https://cgit.pacien.net/desktop-utilities/
+
+import sys
+
+alphabet = {
+    "nato": {
+        "A": "Alfa",  # No idea why this is not just 'Alpha' ..
+        "B": "Bravo",
+        "C": "Charlie",
+        "D": "Delta",
+        "E": "Echo",
+        "F": "Foxtrot",
+        "G": "Golf",
+        "H": "Hotel",
+        "I": "India",
+        "J": "Juliett",
+        "K": "Kilo",
+        "L": "Lima",
+        "M": "Mike",
+        "N": "November",
+        "O": "Oscar",
+        "P": "Papa",
+        "Q": "Quebec",
+        "R": "Romeo",
+        "S": "Sierra",
+        "T": "Tango",
+        "U": "Uniform",
+        "V": "Victor",
+        "W": "Whiskey",
+        "X": "X-ray",
+        "Y": "Yankee",
+        "Z": "Zulu",
+        "0": "Nadazero",
+        "1": "Unaone",
+        "2": "Bissotwo",
+        "3": "Terrathree",
+        "4": "Kartefour",
+        "5": "Pantafive",
+        "6": "Soxisix",
+        "7": "Setteseven",
+        "8": "Oktoeight",
+        "9": "Novenine",
+        ",": "Comma",
+        "/": "Forward slash",
+        ".": "Stop/Decimal",
+    },
+    "german": {
+        "A": "Aachen",
+        "Ä": "Umlaut Aachen",
+        "B": "Berlin",
+        "C": "Chemnitz",
+        "D": "Düsseldorf",
+        "E": "Essen",
+        "F": "Frankfurt",
+        "G": "Goslar",
+        "H": "Hamburg",
+        "I": "Ingelheim",
+        "J": "Jena",
+        "K": "Köln",
+        "L": "Leipzig",
+        "M": "München",
+        "N": "Nürnberg",
+        "O": "Offenbach",
+        "Ö": "Umlaut Offenbach",
+        "P": "Potsdam",
+        "Q": "Quickborn",
+        "R": "Rostock",
+        "S": "Salzwedel",
+        "ẞ": "Eszett",
+        "T": "Tübingen",
+        "U": "Unna",
+        "Ü": "Umlaut Unna",
+        "V": "Völklingen",
+        "W": "Wuppertal",
+        "X": "Xanten",
+        "Y": "Ypsilon",
+        "Z": "Zwickau",
+    },
+}
+
+
+def str_to_telephony(phrase, language):
+    language_alphabet = alphabet[language]
+
+    return [
+        language_alphabet[c] if c in language_alphabet else c for c in phrase.upper()
+    ]
+
+
+language = sys.argv[1]
+if language not in ["nato", "german"]:
+    print(
+        f"Langugae '{language}' is not a valid language, only 'nato' and 'german' are!",
+        file=sys.stderr,
+    )
+    exit(1)
+
+print(
+    "\n".join(
+        str_to_telephony(
+            " ".join(sys.argv[2:]),
+            language,
+        )
+    )
+)
diff --git a/pkgs/by-name/na/nato/package.nix b/pkgs/by-name/na/nato/package.nix
new file mode 100644
index 00000000..17fe7d1a
--- /dev/null
+++ b/pkgs/by-name/na/nato/package.nix
@@ -0,0 +1,34 @@
+{
+  lib,
+  python3,
+  runCommandLocal,
+  makeWrapper,
+}: let
+  write_python = {
+    name,
+    dependencies_system ? [],
+    dependencies_python ? _: [],
+    keepPath ? false,
+  }: let
+    src = ./${name}.py;
+    dependencies =
+      [(python3.withPackages dependencies_python)]
+      ++ dependencies_system;
+    path_setting =
+      if keepPath
+      then "--prefix PATH :"
+      else "--set PATH";
+  in
+    runCommandLocal name {
+      nativeBuildInputs = [makeWrapper] ++ dependencies;
+    }
+    ''
+      install -m755 ${src} -D "$out/bin/${name}"
+      patchShebangs "$out/bin/${name}"
+      wrapProgram "$out/bin/${name}" ${path_setting} ${lib.makeBinPath dependencies};
+    '';
+in
+  write_python {
+    name = "nato";
+    dependencies_python = ps: [];
+  }