59 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
# Test whether `houndd` indexes nixpkgs
 | 
						|
import ./make-test.nix ({ pkgs, ... } : {
 | 
						|
  name = "hound";
 | 
						|
  meta = with pkgs.stdenv.lib.maintainers; {
 | 
						|
    maintainers = [ grahamc ];
 | 
						|
  };
 | 
						|
  machine = { config, pkgs, ... }: {
 | 
						|
    services.hound = {
 | 
						|
      enable = true;
 | 
						|
      config = ''
 | 
						|
        {
 | 
						|
          "max-concurrent-indexers": 1,
 | 
						|
          "dbpath": "/var/lib/hound/data",
 | 
						|
          "repos": {
 | 
						|
            "nix": {
 | 
						|
              "url": "file:///var/lib/hound/my-git"
 | 
						|
            }
 | 
						|
          }
 | 
						|
        }
 | 
						|
      '';
 | 
						|
    };
 | 
						|
 | 
						|
    systemd.services.houndseed = {
 | 
						|
      description = "seed hound with a git repo";
 | 
						|
      requiredBy = [ "hound.service" ];
 | 
						|
      before = [ "hound.service" ];
 | 
						|
 | 
						|
      serviceConfig = {
 | 
						|
        User = "hound";
 | 
						|
        Group = "hound";
 | 
						|
        WorkingDirectory = "/var/lib/hound";
 | 
						|
      };
 | 
						|
      path = [ pkgs.git ];
 | 
						|
      script = ''
 | 
						|
        git config --global user.email "you@example.com"
 | 
						|
        git config --global user.name "Your Name"
 | 
						|
        git init my-git --bare
 | 
						|
        git init my-git-clone
 | 
						|
        cd my-git-clone
 | 
						|
        echo 'hi nix!' > hello
 | 
						|
        git add hello
 | 
						|
        git commit -m "hello there :)"
 | 
						|
        git remote add origin /var/lib/hound/my-git
 | 
						|
        git push origin master
 | 
						|
      '';
 | 
						|
    };
 | 
						|
  };
 | 
						|
 | 
						|
  testScript =
 | 
						|
    '' startAll;
 | 
						|
 | 
						|
       $machine->waitForUnit("network.target");
 | 
						|
       $machine->waitForUnit("hound.service");
 | 
						|
       $machine->waitForOpenPort(6080);
 | 
						|
       $machine->succeed('curl http://127.0.0.1:6080/api/v1/search\?stats\=fosho\&repos\=\*\&rng=%3A20\&q\=hi\&files\=\&i=nope | grep "Filename" | grep "hello"');
 | 
						|
 | 
						|
    '';
 | 
						|
})
 |