diff --git a/.rpm/netbrowse.spec b/.rpm/netbrowse.spec new file mode 100644 index 0000000..4dc0863 --- /dev/null +++ b/.rpm/netbrowse.spec @@ -0,0 +1,32 @@ +%define __spec_install_post %{nil} +%define __os_install_post %{_dbpath}/brp-compress +%define debug_package %{nil} + +Name: netbrowse +Summary: A graphical frontend to avahi-browse +Version: @@VERSION@@ +Release: @@RELEASE@@%{?dist} +License: GPL-3.0 +Group: Applications/System +Source0: %{name}-%{version}.tar.gz +URL: https://github.com/ewpratten/netbrowse + +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root + +%description +%{summary} + +%prep +%setup -q + +%install +rm -rf %{buildroot} +mkdir -p %{buildroot} +cp -a * %{buildroot} + +%clean +rm -rf %{buildroot} + +%files +%defattr(-,root,root,-) +%{_bindir}/* diff --git a/Cargo.toml b/Cargo.toml index e2db741..473290b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "netbrowse" -version = "0.1.0" +version = "0.1.1" authors = ["Evan Pratten "] edition = "2018" description = "A graphical frontend to avahi-browse" @@ -19,4 +19,12 @@ which = "4.2.2" colored = "2.0.0" eframe = "0.15.0" ipnet = "2.3.1" -thiserror = "1.0.30" \ No newline at end of file +thiserror = "1.0.30" +[package.metadata.rpm] +package = "netbrowse" + +[package.metadata.rpm.cargo] +buildflags = ["--release"] + +[package.metadata.rpm.targets] +netbrowse = { path = "/usr/bin/netbrowse" } diff --git a/src/gui.rs b/src/gui.rs index c3b40fc..f53aa7e 100644 --- a/src/gui.rs +++ b/src/gui.rs @@ -118,24 +118,32 @@ impl epi::App for BrowseApp { // Render each host for host in hosts.values() { // Render the packet data - egui::CollapsingHeader::new(&host.name).show(ui, |ui| { - // Render every service name as a dropdown - for service_name in host.services.keys() { - egui::CollapsingHeader::new(service_name).show(ui, |ui| { - // Render provider for the service as its own dropdown, containing optional metadata - for service in host.services.get(service_name).unwrap() { - egui::CollapsingHeader::new(format!( - "{} (IP: {} Port: {})", - service.hostname, service.ip, service.port + egui::CollapsingHeader::new(&host.name) + .id_source(format!("{}_{}", interface, &host.name)) + .show(ui, |ui| { + // Render every service name as a dropdown + for service_name in host.services.keys() { + egui::CollapsingHeader::new(service_name) + .id_source(format!( + "{}_{}_{}", + interface, &host.name, service_name )) .show(ui, |ui| { - // Render the metadata - ui.label(service.data.join("\n")); + // Render provider for the service as its own dropdown, containing optional metadata + for service in host.services.get(service_name).unwrap() + { + egui::CollapsingHeader::new(format!( + "{} (IP: {} Port: {})", + service.hostname, service.ip, service.port + )) + .show(ui, |ui| { + // Render the metadata + ui.label(service.data.join("\n")); + }); + } }); - } - }); - } - }); + } + }); } } });