1{ stdenv, lib, fetchurl }:
2let
3 mkCmdPackDerivation = { pname, postInstall ? "", description }: stdenv.mkDerivation {
4 inherit pname postInstall;
5
6 version = "1.03";
7
8 src = fetchurl {
9 url = "https://web.archive.org/web/20140330233023/http://www.neillcorlett.com/downloads/cmdpack-1.03-src.tar.gz";
10 sha256 = "0v0a9rpv59w8lsp1cs8f65568qj65kd9qp7854z1ivfxfpq0da2n";
11 };
12
13 buildPhase = ''
14 runHook preBuild
15
16 gcc -o ${pname} src/${pname}.c
17
18 runHook postBuild
19 '';
20
21 installPhase = ''
22 runHook preInstall
23
24 mkdir -p $out/bin
25 cp ${pname} $out/bin
26
27 runHook postInstall
28 '';
29
30 meta = with lib; {
31 inherit description;
32
33 homepage = "https://web.archive.org/web/20140330233023/http://www.neillcorlett.com/cmdpack/";
34 platforms = platforms.all;
35 license = licenses.gpl3Plus;
36 maintainers = with maintainers; [ zane ];
37 };
38 };
39in
40{
41 bin2iso = mkCmdPackDerivation {
42 pname = "bin2iso";
43 description = "Convert CD .BIN to .ISO";
44 };
45
46 bincomp = mkCmdPackDerivation {
47 pname = "bincomp";
48 description = "Compare binary files";
49 };
50
51 brrrip = mkCmdPackDerivation {
52 pname = "brrrip";
53 description = "Rip SNES BRR sound samples";
54 };
55
56 byteshuf = mkCmdPackDerivation {
57 pname = "byteshuf";
58 description = "Shuffle or unshuffle bytes in a file";
59 };
60
61 byteswap = mkCmdPackDerivation {
62 pname = "byteswap";
63 description = "Swap byte order of files";
64 };
65
66 cdpatch = mkCmdPackDerivation {
67 pname = "cdpatch";
68 description = "CD-XA image insert/extract utility";
69 };
70
71 ecm = mkCmdPackDerivation {
72 pname = "ecm";
73 postInstall = "ln $out/bin/ecm $out/bin/unecm";
74 description = "Encoder/decoder for Error Code Modeler format";
75 };
76
77 fakecrc = mkCmdPackDerivation {
78 pname = "fakecrc";
79 description = "Fake the CRC32 of a file";
80 };
81
82 hax65816 = mkCmdPackDerivation {
83 pname = "hax65816";
84 description = "Simple 65816 disassembler";
85 };
86
87 id3point = mkCmdPackDerivation {
88 pname = "id3point";
89 description = "Pointless ID3v1 Tagger";
90 };
91
92 pecompat = mkCmdPackDerivation {
93 pname = "pecompat";
94 description = "Maximize compatibility of a Win32 PE file";
95 };
96
97 rels = mkCmdPackDerivation {
98 pname = "rels";
99 description = "Relative Searcher";
100 };
101
102 screamf = mkCmdPackDerivation {
103 pname = "screamf";
104 description = ".AMF to .S3M converter";
105 };
106
107 subfile = mkCmdPackDerivation {
108 pname = "subfile";
109 description = "Extract a portion of a file";
110 };
111
112 uips = mkCmdPackDerivation {
113 pname = "uips";
114 description = "Universal IPS patch create/apply utility";
115 };
116
117 usfv = mkCmdPackDerivation {
118 pname = "usfv";
119 description = "Universal SFV create/verify utility";
120 };
121
122 vb2rip = mkCmdPackDerivation {
123 pname = "vb2rip";
124 description = "VB2 sound format ripping utility";
125 };
126
127 wordadd = mkCmdPackDerivation {
128 pname = "wordadd";
129 description = "Addition word puzzle solver";
130 };
131
132 zerofill = mkCmdPackDerivation {
133 pname = "zerofill";
134 description = "Create a large, empty file";
135 };
136}