aboutsummaryrefslogtreecommitdiffstats
path: root/pkgs/by-name/na
diff options
context:
space:
mode:
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: [];
+ }