diff --git a/.gitignore b/.gitignore index 88f7023..761aa83 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,10 @@ # Build directories /target /output +/rpmbuild + +# Vendor +/vendor # OS Files .DS_Store diff --git a/Cargo.toml b/Cargo.toml index dfe8018..63c0191 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ authors = ["Christopher Sardegna "] categories = ["command-line-interface", "command-line-utilities"] description = "A powerful CLI tool that puts log analytics at your fingertips." edition = "2024" -exclude = ["/resources", ".github", "docs", "build.sh"] +exclude = ["/resources", ".github", "docs", "build.sh", "packaging", "build-srpm.sh"] keywords = ["cli", "tui", "logs", "log-parsing", "log-analytics"] license = "GPL-3.0-or-later" name = "logria" diff --git a/build-srpm.sh b/build-srpm.sh new file mode 100755 index 0000000..78340ac --- /dev/null +++ b/build-srpm.sh @@ -0,0 +1,28 @@ +#!/bin/bash +# + +set -e + +source ./version.sh +TARBALL=logria-$VERSION.tar.gz + +mkdir -p output +rm -rf rpmbuild + +cargo vendor +tar -czf logria-$VERSION-vendor.tar.gz vendor +sed -e "s/@VERSION@/$VERSION/; s/@RELEASE@/$RELEASE/" ./packaging/logria.spec.in > logria.spec +find ./* \ + ! -name 'packaging' \ + ! -name 'rpmbuild' \ + ! -name 'exported-artifacts' \ + ! -name '.git' \ + -type f | tar --files-from /proc/self/fd/0 -czf "$TARBALL" --transform "s,^,logria-$VERSION/," + +mkdir -p rpmbuild/{SPECS,SOURCES,BUILD,BUILDROOT,SRPMS} +mv *.tar.gz rpmbuild/SOURCES +mv logria.spec rpmbuild/SPECS + +rpmbuild -bs --define "_topdir `pwd`/rpmbuild" `pwd`/rpmbuild/SPECS/logria.spec + +mv rpmbuild/SRPMS/* output diff --git a/packaging/logria.spec.in b/packaging/logria.spec.in new file mode 100644 index 0000000..bcd2857 --- /dev/null +++ b/packaging/logria.spec.in @@ -0,0 +1,37 @@ +Name: logria +Version: @VERSION@ +Release: @RELEASE@%{?dist} +Summary: A powerful CLI tool that puts log aggregation at your fingertips + +License: GPL-3.0 +URL: https://github.com/ReagentX/Logria +Source0: %{name}-%{version}.tar.gz +Source1: %{name}-%{version}-vendor.tar.gz + +BuildRequires: rust >= 1.88.0 +BuildRequires: cargo + +%description +Logria is best leveraged to watch live logs from multiple processes and filter them for events you want to see. My most common use case is watching logs from multiple Linode/EC2 instances via ssh or multiple CloudWatch streams using aws logs. + + +%prep +%autosetup + +%build +cargo build --release + +%install +mkdir -p %{buildroot}%{_bindir} +install -D -m 0755 target/release/%{name} %{buildroot}%{_bindir} + + +%files +%{_bindir}/%{name} +%license LICENSE +%doc README.md + + +%changelog +* Mon Nov 24 2025 Alexander Lushin - 0.4.2-1 +- Initial build diff --git a/version.sh b/version.sh new file mode 100644 index 0000000..08827f7 --- /dev/null +++ b/version.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +export VERSION=0.4.2 +export RELEASE=1