# # spec file for package perl-Complete-Tcsh # # Copyright (c) 2024 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via https://bugs.opensuse.org/ # %define cpan_name Complete-Tcsh Name: perl-Complete-Tcsh Version: 0.30.0 Release: 0 # 0.030 -> normalize -> 0.30.0 %define cpan_version 0.030 License: Artistic-1.0 OR GPL-1.0-or-later Summary: Completion module for tcsh shell URL: https://metacpan.org/release/%{cpan_name} Source0: https://cpan.metacpan.org/authors/id/P/PE/PERLANCAR/%{cpan_name}-%{cpan_version}.tar.gz Source1: cpanspec.yml Source100: README.md BuildArch: noarch BuildRequires: perl BuildRequires: perl-macros BuildRequires: perl(Complete::Bash) >= 0.331 Requires: perl(Complete::Bash) >= 0.331 Provides: perl(Complete::Tcsh) = %{version} %undefine __perllib_provides %{perl_requires} %description tcsh allows completion to come from various sources. One of the simplest is from a list of words: % complete CMDNAME 'p/*/(one two three)/' Another source is from an external command: % complete CMDNAME 'p/*/`mycompleter --somearg`/' The command receives one environment variables 'COMMAND_LINE' (string, raw command-line). Unlike bash, tcsh does not (yet) provide something akin to 'COMP_POINT' in bash. Command is expected to print completion entries, one line at a time. % cat foo-complete #!/usr/bin/perl use Complete::Tcsh qw(parse_cmdline format_completion); use Complete::Util qw(complete_array_elem); my ($words, $cword) = @{ parse_cmdline() }; my $res = complete_array_elem(array=>[qw/--help --verbose --version/], word=>$words->[$cword]); print format_completion($res); % complete foo 'p/*/`foo-complete`/' % foo --v --verbose --version This module provides routines for you to be doing the above. Also, unlike bash, currently tcsh does not allow delegating completion to a shell function. %prep %autosetup -n %{cpan_name}-%{cpan_version} %build perl Makefile.PL INSTALLDIRS=vendor %make_build %check make test %install %perl_make_install %perl_process_packlist %perl_gen_filelist %files -f %{name}.files %doc Changes README %license LICENSE %changelog