%global debug_package %{nil}
%global git_commit f2d3a9f

%if 0%{?rhel}
%global bash_completions_dir %{_datadir}/bash-completion/completions
%global zsh_completions_dir  %{_datadir}/zsh/site-functions
%global fish_completions_dir %{_datadir}/fish/vendor_completions.d
%endif

Name:           flyctl
Version:        0.2.69
Release:        1%{?dist}
Summary:        CLI for fly.io services

License:        Apache-2.0
URL:            https://fly.io
Source0:        https://github.com/superfly/flyctl/archive/refs/tags/v%{version}.tar.gz
Source1:        %{name}-%{version}-vendored-deps.tar.gz
Source2:        bundled.inc

BuildRequires:  golang
%include        %SOURCE2

%description
Command-line tool to interface with fly.io services

%package doc
Summary:    Flyctl CLI documentation
Enhances:   %{name} = %{version}-%{release}
BuildArch:  noarch

%description doc
Flyctl CLI documentation


%prep
%autosetup
tar -xf %SOURCE1 --strip-components=1

%build
export build_date=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
%define build_type     -X github.com/superfly/flyctl/internal/buildinfo.environment=release
%define build_date     -X github.com/superfly/flyctl/internal/buildinfo.buildDate=${build_date}
%define build_version  -X github.com/superfly/flyctl/internal/buildinfo.version=%{version}
%define build_commit   -X github.com/superfly/flyctl/internal/buildinfo.commit=%{git_commit}

export CGO_ENABLED=0
go build -ldflags="-s -w %{build_type} %{build_date} %{build_version} %{build_commit}" -mod=vendor -o ./bin/flyctl
bash scripts/generate_docs.sh
./bin/flyctl completion bash --no-descriptions > flyctl.bash_completion
./bin/flyctl completion zsh --no-descriptions > flyctl.zsh_completion
./bin/flyctl completion fish --no-descriptions > flyctl.fish_completion
sed 's,flyctl,fly,g' flyctl.bash_completion > fly.bash_completion
sed 's,flyctl,fly,g' flyctl.zsh_completion > fly.zsh_completion
sed 's,flyctl,fly,g' flyctl.fish_completion > fly.fish_completion


%install
install -D -m 0755 bin/flyctl %{buildroot}%{_bindir}/flyctl
ln -s flyctl %{buildroot}%{_bindir}/fly
install -d -m 0755 %{buildroot}%{_docdir}/%{name}
cp -r out/*.md %{buildroot}%{_docdir}/%{name}
install -D -m 0644 flyctl.bash_completion %{buildroot}%{bash_completions_dir}/flyctl
install -D -m 0644 fly.bash_completion %{buildroot}%{bash_completions_dir}/fly
install -D -m 0644 flyctl.zsh_completion %{buildroot}%{zsh_completions_dir}/_flyctl
install -D -m 0644 fly.zsh_completion %{buildroot}%{zsh_completions_dir}/_fly
install -D -m 0644 flyctl.fish_completion %{buildroot}%{fish_completions_dir}/flyctl.fish
install -D -m 0644 fly.fish_completion %{buildroot}%{fish_completions_dir}/fly.fish


%files
%license LICENSE
%doc README.md
%{_bindir}/flyctl
%{_bindir}/fly
%{bash_completions_dir}/flyctl
%{bash_completions_dir}/fly
%{zsh_completions_dir}/_flyctl
%{zsh_completions_dir}/_fly
%{fish_completions_dir}/flyctl.fish
%{fish_completions_dir}/fly.fish

%files doc
%{_docdir}/flyctl


%changelog
* Wed Jun 12 2024 Mike Rochefort <mroche@omenos.dev> - 0.2.69-1
- Update to v0.2.69

* Sat Mar 23 2024 Mike Rochefort <mroche@omenos.dev> - 0.2.23-1
- Update to v0.2.23

* Thu Feb 22 2024 Mike Rochefort <mroche@omenos.dev> - 0.2.9-1
- Update to v0.2.9

* Mon Nov 27 2023 Mike Rochefort <mroche@omenos.dev> - 0.1.128-1
- Update to v0.1.128

* Sat Oct 14 2023 Mike Rochefort <mroche@omenos.dev> - 0.1.108-1
- Update to v0.1.108

* Thu May 11 2023 Mike Rochefort <mroche@omenos.dev> - 0.1.2-1
- Update to v0.1.2

* Mon Mar 27 2023 Mike Rochefort <mroche@omenos.dev> - 0.0.499-1
- Update to v0.0.499

* Sun Mar 05 2023 Mike Rochefort <mroche@omenos.dev> - 0.0.475-1
- Update to v0.0.475

* Fri Feb 10 2023 Mike Rochefort <mroche@omenos.dev> - 0.0.456-1
- Update to v0.0.456

* Sun Nov 20 2022 Mike Rochefort <mroche@redhat.com> - 0.0.433-1
- Update to v0.0.433

* Sat Oct 29 2022 Mike Rochefort <mroche@redhat.com> - 0.0.424-1
- Update to v0.0.424

* Sun Oct 23 2022 Mike Rochefort <mroche@redhat.com> - 0.0.417-1
- Update to v0.0.417

* Sat Oct 15 2022 Mike Rochefort <mroche@redhat.com> - 0.0.413-1
- Update to v0.0.413

* Sat Oct 08 2022 Mike Rochefort <mroche@redhat.com> - 0.0.406-1
- Update to v0.0.406

* Sat Oct 01 2022 Mike Rochefort <mroche@redhat.com> - 0.0.402-1
- Update to v0.0.402

* Thu Sep 29 2022 Mike Rochefort <mroche@redhat.com> - 0.0.399-1
- Update to v0.0.399

* Tue Sep 27 2022 Mike Rochefort <mroche@redhat.com> - 0.0.398-1
- Update to v0.0.398

* Tue Sep 27 2022 Mike Rochefort <mroche@redhat.com> - 0.0.397-1
- Update to v0.0.397

* Sat Sep 24 2022 Mike Rochefort <mroche@redhat.com> - 0.0.396-1
- Update to v0.0.396

* Thu Sep 22 2022 Mike Rochefort <mroche@redhat.com> - 0.0.395-1
- Initial build of flyctl v0.0.395