mirror of
https://github.com/kmein/niveum
synced 2026-03-21 12:21:08 +01:00
Compare commits
3 Commits
e55cc77825
...
02cc600c68
| Author | SHA1 | Date | |
|---|---|---|---|
| 02cc600c68 | |||
| 25c48354f7 | |||
| 5b2c2c7709 |
14
.bin/csv2json
Executable file
14
.bin/csv2json
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import csv
|
||||
import json
|
||||
import sys
|
||||
import argparse
|
||||
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("--delimiter", "-d", default=",", help="CSV field separator")
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
if __name__ == "__main__":
|
||||
json.dump(list(csv.DictReader(sys.stdin, delimiter=args.delimiter)), sys.stdout)
|
||||
24
.bin/json2csv
Executable file
24
.bin/json2csv
Executable file
@@ -0,0 +1,24 @@
|
||||
#!/usr/bin/env python3
|
||||
import csv
|
||||
import json
|
||||
import sys
|
||||
|
||||
if __name__ == "__main__":
|
||||
json_list = json.load(sys.stdin)
|
||||
if not isinstance(json_list, list):
|
||||
print("JSON object is not a list.", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
if len(json_list) == 0:
|
||||
print("JSON list is empty.", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
keys = set()
|
||||
for element in json_list:
|
||||
if isinstance(element, dict):
|
||||
keys |= element.keys()
|
||||
else:
|
||||
print("Non-dict element:", element, file=sys.stderr)
|
||||
sys.exit(1)
|
||||
writer = csv.DictWriter(sys.stdout, fieldnames=list(keys))
|
||||
writer.writeheader()
|
||||
for element in json_list:
|
||||
writer.writerow(element)
|
||||
@@ -118,6 +118,7 @@ in {
|
||||
youtubeDL
|
||||
bc # calculator
|
||||
pari # gp -- better calculator
|
||||
scripts.auc
|
||||
scripts.infschmv
|
||||
scripts.qrpaste
|
||||
scripts.new-mac # get a new mac address
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
let
|
||||
pandoc-doc = pkgs.callPackage <niveum/packages/man/pandoc.nix> {};
|
||||
|
||||
zoteroStyle = { name, sha256 }: {
|
||||
name = "${name}.csl";
|
||||
path = pkgs.fetchurl {
|
||||
@@ -70,6 +72,7 @@ in {
|
||||
# gnumeric
|
||||
dia
|
||||
pandoc
|
||||
pandoc-doc
|
||||
# proselint
|
||||
asciidoctor
|
||||
wordnet
|
||||
|
||||
14
packages/man/pandoc.nix
Normal file
14
packages/man/pandoc.nix
Normal file
@@ -0,0 +1,14 @@
|
||||
{ stdenv, pandoc, lib, fetchgit }:
|
||||
stdenv.mkDerivation {
|
||||
name = "pandoc-doc";
|
||||
version = pandoc.version;
|
||||
src = fetchgit {
|
||||
url = "https://github.com/jgm/pandoc";
|
||||
rev = pandoc.version;
|
||||
sha256 = "0s4mczbql35wh6bhyi542yln24f530rlsw6akcv7lmp083rrlpy4";
|
||||
};
|
||||
buildPhase = ''
|
||||
mkdir -p $out/man/man1
|
||||
${pandoc}/bin/pandoc -V section=1 --standalone --write=man $src/MANUAL.txt -o $out/man/man1/pandoc.1
|
||||
'';
|
||||
}
|
||||
31
packages/scripts/auc.nix
Normal file
31
packages/scripts/auc.nix
Normal file
@@ -0,0 +1,31 @@
|
||||
{ stdenv, fetchFromGitHub, lib, pandoc }:
|
||||
let
|
||||
owner = "kamalist";
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "auc";
|
||||
version = "2019-04-02";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
inherit owner;
|
||||
repo = "AUC";
|
||||
rev = "66d1cd57472442b4bf3c1ed12ca5cadd57d076b3";
|
||||
sha256 = "0gb4asmlfr19h42f3c5wg9c9i3014if3ymrqan6w9klgzgfyh2la";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/{bin,man/man1}
|
||||
install auc $out/bin
|
||||
${pandoc}/bin/pandoc -V title=${lib.escapeShellArg pname} -V section=1 $src/README.md -s -t man -o $out/man/man1/auc.1
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Command-line Roman calendar";
|
||||
longDescription = ''
|
||||
AUC (Ab Urbe condita) is a command-line Roman calendar tool. Currently it shows the specified date in the format of the Ancient Romans.
|
||||
'';
|
||||
license = licenses.mit;
|
||||
maintainers = [ maintainers.kmein ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
@@ -16,6 +16,8 @@ let
|
||||
sha256 = "0c4hkny4zkknlimc9yi9ljss2cws4zn8lzd8ip9b8mfsm094dlfl";
|
||||
};
|
||||
in rec {
|
||||
auc = pkgs.callPackage ./auc.nix {};
|
||||
|
||||
instaget = wrapScript {
|
||||
packages = [ pkgs.jq pkgs.curl pkgs.gnugrep ];
|
||||
script = ./instaget.sh;
|
||||
|
||||
Reference in New Issue
Block a user