aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--nix/flake/packages.nix1
-rw-r--r--nix/profiles/home-manager/shell.nix1
-rw-r--r--packages/ipconverter/default.nix29
-rwxr-xr-xpackages/ipconverter/ipconverter.py32
-rw-r--r--pyproject.toml2
-rwxr-xr-xsrc/cli/ipconverter.py25
-rwxr-xr-xsrc/cli/seqstat.py2
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))