From b9222e94bcbd584431eb8cb71198f2ffa2ada619 Mon Sep 17 00:00:00 2001 From: Savoy Date: Fri, 7 Jan 2022 15:34:41 -0600 Subject: [PATCH] New package: ouch-0.3.1 --- ...riding-the-completions-output-direct.patch | 40 ++++++++++++++++ ...single-quotes-from-clap-doc-comments.patch | 46 +++++++++++++++++++ srcpkgs/ouch/template | 24 ++++++++++ 3 files changed, 110 insertions(+) create mode 100644 srcpkgs/ouch/patches/0001-chore-allow-overriding-the-completions-output-direct.patch create mode 100644 srcpkgs/ouch/patches/0002-fix-remove-single-quotes-from-clap-doc-comments.patch create mode 100644 srcpkgs/ouch/template diff --git a/srcpkgs/ouch/patches/0001-chore-allow-overriding-the-completions-output-direct.patch b/srcpkgs/ouch/patches/0001-chore-allow-overriding-the-completions-output-direct.patch new file mode 100644 index 0000000000..da97e65e76 --- /dev/null +++ b/srcpkgs/ouch/patches/0001-chore-allow-overriding-the-completions-output-direct.patch @@ -0,0 +1,40 @@ +From 60763a64c1b7268050bb61fb8cef1c982bbd4aca Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Jan=20Christian=20Gr=C3=BCnhage?= + +Date: Sun, 13 Feb 2022 09:53:28 +0100 +Subject: [PATCH 1/2] chore: allow overriding the completions output directory + +--- + build.rs | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +diff --git a/build.rs b/build.rs +index 5372154..b5c56c4 100644 +--- a/build.rs ++++ b/build.rs +@@ -1,7 +1,7 @@ + use clap::{ArgEnum, IntoApp}; + use clap_generate::{generate_to, Shell}; + +-use std::{env, fs::create_dir_all, path::Path}; ++use std::{env, fs::create_dir_all}; + + include!("src/opts.rs"); + +@@ -12,7 +12,13 @@ fn main() { + return; + } + +- let out = &Path::new(&env::var_os("OUT_DIR").unwrap()).join("completions"); ++ let out = &env::var_os("OUCH_COMPLETIONS_DIR") ++ .map(|path| PathBuf::from(&path)) ++ .or_else(|| env::var_os("OUT_DIR") ++ .map(|path| PathBuf::from(&path)) ++ .map(|path| path.join("completions")) ++ ).unwrap(); ++ + create_dir_all(out).unwrap(); + let app = &mut Opts::into_app(); + +-- +2.35.1 diff --git a/srcpkgs/ouch/patches/0002-fix-remove-single-quotes-from-clap-doc-comments.patch b/srcpkgs/ouch/patches/0002-fix-remove-single-quotes-from-clap-doc-comments.patch new file mode 100644 index 0000000000..a44a7d183e --- /dev/null +++ b/srcpkgs/ouch/patches/0002-fix-remove-single-quotes-from-clap-doc-comments.patch @@ -0,0 +1,46 @@ +From b6279d75db53ddc34dd6ba727df1b7fd0ad134dd Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Jan=20Christian=20Gr=C3=BCnhage?= + +Date: Sun, 13 Feb 2022 10:09:29 +0100 +Subject: [PATCH 2/2] fix: remove single quotes from clap doc comments + +Apparently, clap_complete doesn't properly escape single quotes in doc +comments, leading to broken shell completions for zsh. To circumvent +this, I've removed the single quote in the one place where it shouldn't +have been in the first place ("it's" vs "its", contraction vs possessive +pronoun), and replaced "it's" with "it is" in the other place. + +Reference to upstream issue: https://github.com/clap-rs/clap/issues/1596 +--- + src/commands.rs | 2 +- + src/opts.rs | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/commands.rs b/src/commands.rs +index 106e36d..692dceb 100644 +--- a/src/commands.rs ++++ b/src/commands.rs +@@ -99,7 +99,7 @@ pub fn run(args: Opts, question_policy: QuestionPolicy) -> crate::Result<()> { + let output_file = fs::File::create(&output_path)?; + + if !represents_several_files(&files) { +- // It's possible the file is already partially compressed so we don't want to compress it again ++ // It is possible the file is already partially compressed so we don't want to compress it again + // `ouch compress file.tar.gz file.tar.gz.xz` should produce `file.tar.gz.xz` and not `file.tar.gz.tar.gz.xz` + let input_extensions = extension::extensions_from_path(&files[0]); + +diff --git a/src/opts.rs b/src/opts.rs +index 14d6997..e532e7b 100644 +--- a/src/opts.rs ++++ b/src/opts.rs +@@ -39,7 +39,7 @@ pub enum Subcommand { + #[clap(required = true, min_values = 1)] + files: Vec, + +- /// The resulting file. It's extensions can be used to specify the compression formats. ++ /// The resulting file. Its extensions can be used to specify the compression formats. + #[clap(required = true, value_hint = ValueHint::FilePath)] + output: PathBuf, + }, +-- +2.35.1 diff --git a/srcpkgs/ouch/template b/srcpkgs/ouch/template new file mode 100644 index 0000000000..9e585cdda8 --- /dev/null +++ b/srcpkgs/ouch/template @@ -0,0 +1,24 @@ +# Template file for 'ouch' +pkgname=ouch +version=0.3.1 +revision=1 +build_style=cargo +makedepends="liblzma-devel bzip2-devel libzip-devel" +short_desc="CLI utility for easily compressing and decompressing files and dirs" +maintainer="Savoy " +license="MIT" +homepage="https://github.com/ouch-org/ouch" +distfiles="https://github.com/ouch-org/ouch/archive/refs/tags/${version}.tar.gz" +checksum=269abaf5ac2f80da3796dbf5e73419c1b64104d1295f3ff57965141f079e6f6d + +pre_build() { + export GEN_COMPLETIONS=1 + export OUCH_COMPLETIONS_DIR=completions +} + +post_install() { + vlicense LICENSE + vcompletion "completions/_ouch" zsh + vcompletion "completions/ouch.fish" fish + vcompletion "completions/ouch.bash" bash +}