diff options
-rw-r--r-- | nix/flake/packages.nix | 1 | ||||
-rw-r--r-- | nix/profiles/home-manager/shell.nix | 1 | ||||
-rw-r--r-- | packages/ipconverter/default.nix | 29 | ||||
-rwxr-xr-x | packages/ipconverter/ipconverter.py | 32 | ||||
-rw-r--r-- | pyproject.toml | 2 | ||||
-rwxr-xr-x | src/cli/ipconverter.py | 25 | ||||
-rwxr-xr-x | src/cli/seqstat.py | 2 |
7 files changed, 28 insertions, 64 deletions
diff --git a/nix/flake/packages.nix b/nix/flake/packages.nix index abc12cf..31c1e76 100644 --- a/nix/flake/packages.nix +++ b/nix/flake/packages.nix @@ -7,7 +7,6 @@ packages = { git-blame-stats = pkgs.callPackage "${self}/packages/git-blame-stats" { }; git-broom = pkgs.callPackage "${self}/packages/git-broom" { }; - ipconverter = pkgs.callPackage "${self}/packages/ipconverter" { }; robloxenv = pkgs.callPackage "${self}/packages/robloxenv" { }; }; }; diff --git a/nix/profiles/home-manager/shell.nix b/nix/profiles/home-manager/shell.nix index ac41134..2f86232 100644 --- a/nix/profiles/home-manager/shell.nix +++ b/nix/profiles/home-manager/shell.nix @@ -30,7 +30,6 @@ # my own stuff self.packages.${pkgs.system}.git-blame-stats self.packages.${pkgs.system}.git-broom - self.packages.${pkgs.system}.ipconverter ]; xdg = { diff --git a/packages/ipconverter/default.nix b/packages/ipconverter/default.nix deleted file mode 100644 index 4580396..0000000 --- a/packages/ipconverter/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ lib, python3, stdenvNoCC, pkgs }: - -stdenvNoCC.mkDerivation rec { - pname = "ipconverter"; - version = "0.1.0"; - - src = ./ipconverter.py; - - buildInputs = with pkgs; [ python3 ]; - propagatedBuildInputs = with pkgs; [ python3 ]; - - dontUnpack = true; - dontBuild = true; - - installPhase = '' - mkdir -p $out/bin - cp $src $out/bin/${pname} - chmod a+x $out/bin/${pname} - ln -s $out/bin/${pname} $out/bin/ip2int - ln -s $out/bin/${pname} $out/bin/int2ip - ''; - - meta = with lib; { - description = "Helper script to convert an IP address to an integer."; - license = with licenses; [ mit ]; - platforms = platforms.unix; - maintainers = with maintainers; [ fcuny ]; - }; -} diff --git a/packages/ipconverter/ipconverter.py b/packages/ipconverter/ipconverter.py deleted file mode 100755 index 6b01d5d..0000000 --- a/packages/ipconverter/ipconverter.py +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env python3 - -import argparse -import ipaddress -import sys - -argp = argparse.ArgumentParser() -argp.add_argument("infile", nargs="?", type=argparse.FileType("r"), default=sys.stdin) -args = argp.parse_args() - -# read the input, filter out commented lines and remove new line characters -string_ips = [ - ip - for line in args.infile.readlines() - if (ip := line.strip()) and not ip.startswith("#") -] - -# convert entries to int if the string is a numeric value -ips = list(map(lambda n: int(n) if n.isnumeric() else n, string_ips)) - - -def conv(n): - """helper function to convert based on the name of the program""" - return int(n) if argp.prog == "ip2int" else str(n) - - -for ip in ips: - try: - r = conv(ipaddress.ip_address(ip)) - print(f"{ip:15} → {r:15}") - except Exception as e: - print(f"error: {e}", file=sys.stderr) diff --git a/pyproject.toml b/pyproject.toml index 0f3dee5..0c944c3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -68,3 +68,5 @@ known-first-party = ["rbx_nomad"] pizza = "cli.pizza:main" slocalc = "cli.slocalc:cli" seqstat = "cli.seqstat:cli" +ip2int = "cli.ipconverter:ip2int" +int2ip = "cli.ipconverter:int2ip" diff --git a/src/cli/ipconverter.py b/src/cli/ipconverter.py new file mode 100755 index 0000000..4e6906b --- /dev/null +++ b/src/cli/ipconverter.py @@ -0,0 +1,25 @@ +#!/usr/bin/env python3 + +""" +Utility to convert an IPv4 address to an int, or an int to an IPv4 address. +""" + +import ipaddress + +import click + + +@click.command() +@click.argument("ips", nargs=-1, type=int) +def int2ip(ips): + for ip in ips: + convip = ipaddress.ip_address(ip) + print(f"{ip} → {convip}") + + +@click.command() +@click.argument("ips", nargs=-1, type=str) +def ip2int(ips): + for ip in ips: + convip = int(ipaddress.ip_address(ip)) + print(f"{ip} → {convip}") diff --git a/src/cli/seqstat.py b/src/cli/seqstat.py index a9d5e64..196fe56 100755 --- a/src/cli/seqstat.py +++ b/src/cli/seqstat.py @@ -17,7 +17,7 @@ def histogram(sequence): @click.command() -@click.argument('numbers', nargs=-1, type=float) +@click.argument("numbers", nargs=-1, type=float) def cli(numbers): h = histogram(numbers) print("".join(h)) |