toxic: 0.15.1 -> 0.16.0
[NixPkgs.git] / pkgs / by-name / sh / sherlock / package.nix
blob84f9fe58d35eb4fd4fa1e7b83dfefc0fb51d8e1c
2   lib,
3   fetchFromGitHub,
4   makeWrapper,
5   python3,
6   poetry,
7 }:
9 python3.pkgs.buildPythonApplication rec {
10   pname = "sherlock";
11   version = "0.15.0";
12   format = "pyproject";
14   src = fetchFromGitHub {
15     owner = "sherlock-project";
16     repo = "sherlock";
17     rev = "refs/tags/v${version}";
18     hash = "sha256-+fQDvvwsLpiEvy+vC49AzlOA/KaKrhhpS97sZvFbpLA=";
19   };
21   patches = [
22     # Avoid hardcoding sherlock
23     ./fix-sherlock-bin-test.patch
24   ];
26   postPatch = ''
27     substituteInPlace tests/sherlock_interactives.py \
28       --replace @sherlockBin@ "$out/bin/sherlock"
29   '';
31   nativeBuildInputs = [ makeWrapper ];
33   propagatedBuildInputs = with python3.pkgs; [
34     certifi
35     colorama
36     pandas
37     pysocks
38     requests
39     requests-futures
40     stem
41     torrequest
42   ];
44   installPhase = ''
45     runHook preInstall
47     mkdir -p $out/bin $out/share
48     cp -R ./sherlock_project $out/share
50     runHook postInstall
51   '';
53   postFixup = ''
54     makeWrapper ${python3.interpreter} $out/bin/sherlock \
55       --add-flags "-m" \
56       --add-flags "sherlock_project" \
57       --prefix PYTHONPATH : "$PYTHONPATH:$out/share"
58   '';
60   nativeCheckInputs = with python3.pkgs; [
61     pytestCheckHook
62     poetry
63     poetry-core
64     jsonschema
65     openpyxl
66     stem
67   ];
69   pythonRelaxDeps = [ "stem" ];
71   pytestFlagsArray = [
72     "-m"
73     "'not online'"
74   ];
76   meta = {
77     homepage = "https://sherlockproject.xyz/";
78     description = "Hunt down social media accounts by username across social networks";
79     license = lib.licenses.mit;
80     mainProgram = "sherlock";
81     maintainers = with lib.maintainers; [ applePrincess ];
82   };