Skip to content

Commit

Permalink
New package: eww-0.5.0
Browse files Browse the repository at this point in the history
  • Loading branch information
zen0bit committed Mar 18, 2024
1 parent 363562d commit 6d88685
Show file tree
Hide file tree
Showing 2 changed files with 154 additions and 0 deletions.
129 changes: 129 additions & 0 deletions srcpkgs/eww/patches/fix-completions.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
From 525fb069b7eb3213dcbbd1e12bb476b546f63b82 Mon Sep 17 00:00:00 2001
From: Zacharie Dubrulle <[email protected]>
Date: Mon, 19 Feb 2024 22:02:57 +0100
Subject: [PATCH 1/2] Handle `shell-completions` before anything else

---
crates/eww/src/client.rs | 4 ----
crates/eww/src/main.rs | 8 ++++++++
crates/eww/src/opts.rs | 14 +++++++-------
3 files changed, 15 insertions(+), 11 deletions(-)

diff --git a/crates/eww/src/client.rs b/crates/eww/src/client.rs
index c9f14ab2..616c3872 100644
--- a/crates/eww/src/client.rs
+++ b/crates/eww/src/client.rs
@@ -6,7 +6,6 @@ use crate::{
paths::EwwPaths,
};
use anyhow::{Context, Result};
-use clap::CommandFactory as _;
use std::{
io::{Read, Write},
os::unix::net::UnixStream,
@@ -21,9 +20,6 @@ pub fn handle_client_only_action(paths: &EwwPaths, action: ActionClientOnly) ->
.spawn()?
.wait()?;
}
- ActionClientOnly::ShellCompletions { shell } => {
- clap_complete::generate(shell, &mut opts::RawOpt::command(), "eww", &mut std::io::stdout());
- }
}
Ok(())
}
diff --git a/crates/eww/src/main.rs b/crates/eww/src/main.rs
index aac52a6f..848c055b 100644
--- a/crates/eww/src/main.rs
+++ b/crates/eww/src/main.rs
@@ -5,6 +5,7 @@ extern crate gtk;
extern crate gtk_layer_shell as gtk_layer_shell;

use anyhow::{Context, Result};
+use clap::CommandFactory as _;
use daemon_response::{DaemonResponse, DaemonResponseReceiver};
use display_backend::DisplayBackend;
use opts::ActionWithServer;
@@ -44,6 +45,11 @@ fn main() {
pretty_env_logger::formatted_timed_builder().filter(Some("eww"), log_level_filter).init();
}

+ if let opts::Action::ShellCompletions { shell } = opts.action {
+ clap_complete::generate(shell, &mut opts::RawOpt::command(), "eww", &mut std::io::stdout());
+ return;
+ }
+
#[allow(unused)]
let use_wayland = opts.force_wayland || detect_wayland();
#[cfg(all(feature = "wayland", feature = "x11"))]
@@ -87,6 +93,7 @@ fn run<B: DisplayBackend>(opts: opts::Opt, eww_binary_name: String, display_back
.context("Failed to initialize eww paths")?;

let should_restart = match &opts.action {
+ opts::Action::ShellCompletions { .. } => unreachable!(),
opts::Action::Daemon => opts.restart,
opts::Action::WithServer(action) => opts.restart && action.can_start_daemon(),
opts::Action::ClientOnly(_) => false,
@@ -100,6 +107,7 @@ fn run<B: DisplayBackend>(opts: opts::Opt, eww_binary_name: String, display_back
}

let would_show_logs = match opts.action {
+ opts::Action::ShellCompletions { .. } => unreachable!(),
opts::Action::ClientOnly(action) => {
client::handle_client_only_action(&paths, action)?;
false
diff --git a/crates/eww/src/opts.rs b/crates/eww/src/opts.rs
index 2446d8c4..b635a28b 100644
--- a/crates/eww/src/opts.rs
+++ b/crates/eww/src/opts.rs
@@ -59,6 +59,13 @@ pub(super) struct RawOpt {

#[derive(Subcommand, Debug, Serialize, Deserialize, PartialEq)]
pub enum Action {
+ /// Generate a shell completion script
+ ShellCompletions {
+ #[arg(short, long)]
+ #[serde(with = "serde_shell")]
+ shell: clap_complete::shells::Shell,
+ },
+
/// Start the Eww daemon.
#[command(name = "daemon", alias = "d")]
Daemon,
@@ -75,13 +82,6 @@ pub enum ActionClientOnly {
/// Print and watch the eww logs
#[command(name = "logs")]
Logs,
-
- /// Generate a shell completion script
- ShellCompletions {
- #[arg(short, long)]
- #[serde(with = "serde_shell")]
- shell: clap_complete::shells::Shell,
- },
}

#[derive(Subcommand, Debug, Serialize, Deserialize, PartialEq)]

From 0b22ea7ef053fa8afebf5f6e107f689f5516ac38 Mon Sep 17 00:00:00 2001
From: Zacharie Dubrulle <[email protected]>
Date: Mon, 19 Feb 2024 22:05:36 +0100
Subject: [PATCH 2/2] Update CHANGELOG.md

---
CHANGELOG.md | 3 +++
1 file changed, 3 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 09914410..f34c078a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,9 @@ All notable changes to eww will be listed here, starting at changes since versio

## Unreleased

+### Fixes
+- The `shell-completions` subcommand is now run before anything is set up
+
## [0.5.0] (17.02.2024)

### BREAKING CHANGES
25 changes: 25 additions & 0 deletions srcpkgs/eww/template
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Template file for 'eww'
pkgname=eww
version=0.5.0
revision=1
build_style=cargo
build_helper="qemu"
make_install_args="--path=crates/eww"
hostmakedepends="pkg-config"
makedepends="gtk+3-devel gtk-layer-shell-devel pango-devel gdk-pixbuf-devel
cairo-devel glib-devel"
short_desc="Toolkit for creating custom bars and widgets"
maintainer="Christopher K. 'Shmish' Schmitt <[email protected]>"
license="MIT"
homepage="https://elkowar.github.io/eww"
changelog="https://raw.githubusercontent.com/elkowar/eww/master/CHANGELOG.md"
distfiles="https://github.com/elkowar/eww/archive/refs/tags/v${version}.tar.gz"
checksum=ea4f62e48e3750a361e0f359933d7d840d158592ff5b3683ba1f3ccf42bda819

post_install() {
vlicense LICENSE
for sh in bash fish zsh; do
vtargetrun "${DESTDIR}/usr/bin/eww" shell-completions -s "$sh" > "eww.$sh"
vcompletion "eww.$sh" "$sh"
done
}

0 comments on commit 6d88685

Please sign in to comment.