From 53ae445e44c0bf2a012dfea0b5b1eab53e684521 Mon Sep 17 00:00:00 2001 From: Dominik Honnef Date: Fri, 17 Apr 2015 23:44:53 +0200 Subject: [PATCH] New package: fzf-0.9.7.1 --- srcpkgs/fzf/INSTALL.msg | 2 ++ srcpkgs/fzf/files/fzf-cd-widget | 3 +++ srcpkgs/fzf/files/fzf-file-widget | 27 +++++++++++++++++++++ srcpkgs/fzf/files/fzf-history-widget | 7 ++++++ srcpkgs/fzf/files/key-bindings.zsh | 11 +++++++++ srcpkgs/fzf/template | 36 ++++++++++++++++++++++++++++ 6 files changed, 86 insertions(+) create mode 100644 srcpkgs/fzf/INSTALL.msg create mode 100644 srcpkgs/fzf/files/fzf-cd-widget create mode 100644 srcpkgs/fzf/files/fzf-file-widget create mode 100644 srcpkgs/fzf/files/fzf-history-widget create mode 100644 srcpkgs/fzf/files/key-bindings.zsh create mode 100644 srcpkgs/fzf/template diff --git a/srcpkgs/fzf/INSTALL.msg b/srcpkgs/fzf/INSTALL.msg new file mode 100644 index 00000000000..f8509cc629c --- /dev/null +++ b/srcpkgs/fzf/INSTALL.msg @@ -0,0 +1,2 @@ +For key bindings, source the appropriate file(s) from +/usr/share/doc/fzf diff --git a/srcpkgs/fzf/files/fzf-cd-widget b/srcpkgs/fzf/files/fzf-cd-widget new file mode 100644 index 00000000000..a20bb2eff1a --- /dev/null +++ b/srcpkgs/fzf/files/fzf-cd-widget @@ -0,0 +1,3 @@ +cd "${$(command find -L . \( -path '*/\.*' -o -fstype 'dev' -o -fstype 'proc' \) -prune \ + -o -type d -print 2> /dev/null | sed 1d | cut -b3- | fzf +m):-.}" +zle reset-prompt diff --git a/srcpkgs/fzf/files/fzf-file-widget b/srcpkgs/fzf/files/fzf-file-widget new file mode 100644 index 00000000000..48f3c851894 --- /dev/null +++ b/srcpkgs/fzf/files/fzf-file-widget @@ -0,0 +1,27 @@ +fzf-file-widget_fsel() { + command find -L . \( -path '*/\.*' -o -fstype 'dev' -o -fstype 'proc' \) -prune \ + -o -type f -print \ + -o -type d -print \ + -o -type l -print 2> /dev/null | sed 1d | cut -b3- | fzf -m | while read item; do + printf '%q ' "$item" + done + echo +} + +fzf-file-widget() { + if [ -n "$TMUX_PANE" -a ${FZF_TMUX:-1} -ne 0 -a ${LINES:-40} -gt 15 ]; then + local height + height=${FZF_TMUX_HEIGHT:-40%} + if [[ $height =~ %$ ]]; then + height="-p ${height%\%}" + else + height="-l $height" + fi + tmux split-window $height "cd $(printf %q "$PWD"); tmux send-keys -t $TMUX_PANE \"\$(fzf-file-widget_fsel)\"'" + else + LBUFFER="${LBUFFER}$(fzf-file-widget_fsel)" + zle redisplay + fi +} + +fzf-file-widget "$@" diff --git a/srcpkgs/fzf/files/fzf-history-widget b/srcpkgs/fzf/files/fzf-history-widget new file mode 100644 index 00000000000..1fd6086f5f4 --- /dev/null +++ b/srcpkgs/fzf/files/fzf-history-widget @@ -0,0 +1,7 @@ +local selected +if selected=$(fc -l 1 | fzf +s --tac +m -n2..,.. --toggle-sort=ctrl-r -q "$LBUFFER"); then + num=$(echo "$selected" | head -1 | awk '{print $1}' | sed 's/[^0-9]//g') + LBUFFER=!$num + zle expand-history +fi +zle redisplay diff --git a/srcpkgs/fzf/files/key-bindings.zsh b/srcpkgs/fzf/files/key-bindings.zsh new file mode 100644 index 00000000000..134ef8ca5ff --- /dev/null +++ b/srcpkgs/fzf/files/key-bindings.zsh @@ -0,0 +1,11 @@ +autoload -Uz fzf-file-widget +autoload -Uz fzf-cd-widget +autoload -Uz fzf-history-widget + +zle -N fzf-file-widget +zle -N fzf-cd-widget +zle -N fzf-history-widget + +bindkey '^T' fzf-file-widget +bindkey '\ec' fzf-cd-widget +bindkey '^R' fzf-history-widget diff --git a/srcpkgs/fzf/template b/srcpkgs/fzf/template new file mode 100644 index 00000000000..f42ea04d9ea --- /dev/null +++ b/srcpkgs/fzf/template @@ -0,0 +1,36 @@ +# Template file for 'fzf' +pkgname=fzf +version=0.9.7.1 +_version=0.9.7-1 +wrksrc=${pkgname}-${_version}/src +revision=1 +build_style=go +go_import_path="github.com/junegunn/fzf/src" +go_package="github.com/junegunn/fzf/src/fzf" +maintainer="Dominik Honnef " +hostmakedepends=git +makedepends=ncurses-devel +license="MIT" +homepage="https://github.com/junegunn/fzf" +short_desc="A command-line fuzzy finder" +distfiles="https://github.com/junegunn/fzf/archive/${_version}.tar.gz" +checksum=38fa16c41e861af6ad87e7ff655188559775a2979254d76198c435d198e15fb4 + +# Needs cgo to build, which doesn't work when cross-compiling. +nocross=yes + +post_install() { + cd ${wrksrc}/.. + vbin bin/fzf-tmux + vman man/man1/fzf.1 + + sed -i -e 's#source ~/\.fzf\.bash; ##' shell/key-bindings.bash + vinstall plugin/fzf.vim 644 usr/share/vim/vimfiles/plugin + vinstall shell/completion.bash 644 usr/share/bash-completion/completions fzf + vinstall ${FILESDIR}/fzf-file-widget 644 usr/share/zsh/site-functions + vinstall ${FILESDIR}/fzf-cd-widget 644 usr/share/zsh/site-functions + vinstall ${FILESDIR}/fzf-history-widget 644 usr/share/zsh/site-functions + vinstall ${FILESDIR}/key-bindings.zsh 644 usr/share/doc/fzf + vinstall shell/key-bindings.bash 644 usr/share/doc/fzf + vinstall shell/key-bindings.fish 644 usr/share/doc/fzf +}