%global goipath         go.ligato.io/cn-infra/v2
%global forgeurl        https://github.com/ligato/cn-infra
%global commit          356dce1f1754fdc28af2cab9df30603a383be829

Version:        2.5.0

%gometa

%global common_description %{expand:
CN-Infra (cloud-native infrastructure) is a Golang framework for
building control plane agents for cloud-native Virtual Network
Functions It is basically a collection of components/libraries
used in most control plane agents tied together with a common
life-cycle management mechanism.}

%global golicenses      LICENSE.md
%global godocs          README.md

Name:           %{goname}
Release:        0.1%{?dist}
Summary:        CN-Infra is a Golang framework for building control plane agents

# Upstream license specification: Apache-2.0
License:        ASL 2.0
URL:            %{gourl}
Source0:        %{gosource}

BuildRequires:  golang(github.com/Shopify/sarama)
BuildRequires:  golang(github.com/Songmu/prompter)
BuildRequires:  golang(github.com/alicebob/miniredis)
BuildRequires:  golang(github.com/boltdb/bolt)
BuildRequires:  golang(github.com/bshuster-repo/logrus-logstash-hook)
BuildRequires:  golang(github.com/bsm/sarama-cluster)
BuildRequires:  golang(github.com/evalphobia/logrus_fluent)
BuildRequires:  golang(github.com/fsnotify/fsnotify)
BuildRequires:  golang(github.com/ghodss/yaml)
BuildRequires:  golang(github.com/go-redis/redis)
BuildRequires:  golang(github.com/gocql/gocql)
BuildRequires:  golang(github.com/golang-jwt/jwt)
BuildRequires:  golang(github.com/gorilla/mux)
BuildRequires:  golang(github.com/grpc-ecosystem/go-grpc-middleware)
BuildRequires:  golang(github.com/grpc-ecosystem/go-grpc-prometheus)
BuildRequires:  golang(github.com/hashicorp/consul/api)
BuildRequires:  golang(github.com/howeyc/crc16)
BuildRequires:  golang(github.com/maraino/go-mock)
BuildRequires:  golang(github.com/mitchellh/mapstructure)
BuildRequires:  golang(github.com/namsral/flag)
BuildRequires:  golang(github.com/onsi/gomega)
BuildRequires:  golang(github.com/pkg/errors)
BuildRequires:  golang(github.com/prometheus/client_golang/prometheus)
BuildRequires:  golang(github.com/sirupsen/logrus)
BuildRequires:  golang(github.com/unrolled/render)
BuildRequires:  golang(github.com/willfaught/gockle)
BuildRequires:  golang(go.etcd.io/etcd)
BuildRequires:  golang(golang.org/x/crypto/bcrypt)
BuildRequires:  golang(golang.org/x/net/context)
BuildRequires:  golang(golang.org/x/time/rate)
BuildRequires:  golang(google.golang.org/grpc)
BuildRequires:  golang(google.golang.org/protobuf/proto)

%description
%{common_description}

%godevelpkg

%prep
%goprep

%build
for cmd in rpc/rest/security/password-hasher; do
  %gobuild -o %{gobuilddir}/bin/$(basename $cmd) %{goipath}/$cmd
done

%install
%godevelinstall
install -m 0755 -vd                     %{buildroot}%{_bindir}
install -m 0755 -vp %{gobuilddir}/bin/* %{buildroot}%{_bindir}/

%files
%license %{golicenses}
%doc %{godocs}
%{_bindir}/*

%gopkgfiles

%changelog