nixpkgs/pkgs/by-name/fe/fetchit/package.nix
aleksana 571c71e6f7 treewide: migrate packages to pkgs/by-name, take 1
We are migrating packages that meet below requirements:

1. using `callPackage`
2. called path is a directory
3. overriding set is empty (`{ }`)
4. not containing path expressions other than relative path (to
makenixpkgs-vet happy)
5. not referenced by nix files outside of the directory, other
than`pkgs/top-level/all-packages.nix`
6. not referencing nix files outside of the directory
7. not referencing `default.nix` (since it's changed to `package.nix`)
8. `outPath` doesn't change after migration

The tool is here: https://github.com/Aleksanaa/by-name-migrate.
2024-11-09 20:04:51 +08:00

83 lines
2.4 KiB
Nix

{ lib
, buildGoModule
, fetchFromGitHub
, installShellFiles
, lvm2
, pkg-config
}:
buildGoModule rec {
pname = "fetchit";
version = "0.0.1";
src = fetchFromGitHub {
owner = "containers";
repo = "fetchit";
rev = "v${version}";
sha256 = "sha256-hxS/+/fbYOpMJ5VfvvG5l7wWKBUUR22rYn9X79DzUUk=";
};
vendorHash = "sha256-SyPd8P9s8R2YbGEPqFeztF98W1QyGSBumtirSdpm8VI=";
subPackages = [ "cmd/fetchit" ];
nativeBuildInputs = [ pkg-config installShellFiles ];
buildInputs = [ lvm2 ];
# Flags are derived from
# https://github.com/containers/fetchit/blob/v0.0.1/Makefile#L20-L29
ldflags = [
"-X k8s.io/client-go/pkg/version.gitMajor=0"
"-X k8s.io/client-go/pkg/version.gitMinor=0"
"-X k8s.io/client-go/pkg/version.gitTreeState=clean"
"-X k8s.io/client-go/pkg/version.gitVersion=v0.0.0"
"-X k8s.io/component-base/version.gitMajor=0"
"-X k8s.io/component-base/version.gitMajor=0"
"-X k8s.io/component-base/version.gitMinor=0"
"-X k8s.io/component-base/version.gitTreeState=clean"
"-X k8s.io/component-base/version.gitVersion=v0.0.0"
"-s"
"-w"
];
tags = [
"containers_image_openpgp"
"exclude_graphdriver_btrfs"
"gssapi"
"include_gcs"
"include_oss"
"netgo"
"osusergo"
"providerless"
];
# There are no tests for cmd/fetchit.
doCheck = false;
postInstall = ''
for i in bash fish zsh; do
installShellCompletion --cmd fetchit \
--$i <($out/bin/fetchit completion $i)
done
'';
meta = with lib; {
description = "Tool to manage the life cycle and configuration of Podman containers";
mainProgram = "fetchit";
longDescription = ''
FetchIt allows for a GitOps based approach to manage containers running on
a single host or multiple hosts based on a git repository. This allows for
us to deploy a new host and provide the host a configuration value for
FetchIt and automatically any containers defined in the git repository and
branch will be deployed onto the host. This can be beneficial for
environments that do not require the complexity of Kubernetes to manage
the containers running on the host.
'';
homepage = "https://fetchit.readthedocs.io";
changelog = "https://github.com/containers/fetchit/releases/tag/${src.rev}";
license = licenses.agpl3Plus;
maintainers = with maintainers; [ azahi ];
platforms = platforms.linux;
};
}