diff options
Diffstat (limited to 'office/khal')
-rw-r--r-- | office/khal/README | 10 | ||||
-rw-r--r-- | office/khal/khal-complete.bash | 29 | ||||
-rw-r--r-- | office/khal/khal-complete.fish | 18 | ||||
-rw-r--r-- | office/khal/khal-complete.zsh | 41 | ||||
-rw-r--r-- | office/khal/khal.SlackBuild | 96 | ||||
-rw-r--r-- | office/khal/khal.info | 10 | ||||
-rw-r--r-- | office/khal/slack-desc | 19 |
7 files changed, 223 insertions, 0 deletions
diff --git a/office/khal/README b/office/khal/README new file mode 100644 index 0000000000..15079c8c83 --- /dev/null +++ b/office/khal/README @@ -0,0 +1,10 @@ +khal can read and write events/icalendars to vdir, so vdirsyncer can +be used to synchronize calendars with a variety of other programs, +for example CalDAV servers. + +ikhal (interactive khal) lets you browse and edit calendars and events + +No support for editing the timezones of events yet +Works with python 3.6+ + +Completion with click avaible for bash, zsh and fish diff --git a/office/khal/khal-complete.bash b/office/khal/khal-complete.bash new file mode 100644 index 0000000000..1a8fd294fd --- /dev/null +++ b/office/khal/khal-complete.bash @@ -0,0 +1,29 @@ +_khal_completion() { + local IFS=$'\n' + local response + + response=$(env COMP_WORDS="${COMP_WORDS[*]}" COMP_CWORD=$COMP_CWORD _KHAL_COMPLETE=bash_complete $1) + + for completion in $response; do + IFS=',' read type value <<< "$completion" + + if [[ $type == 'dir' ]]; then + COMPREPLY=() + compopt -o dirnames + elif [[ $type == 'file' ]]; then + COMPREPLY=() + compopt -o default + elif [[ $type == 'plain' ]]; then + COMPREPLY+=($value) + fi + done + + return 0 +} + +_khal_completion_setup() { + complete -o nosort -F _khal_completion khal +} + +_khal_completion_setup; + diff --git a/office/khal/khal-complete.fish b/office/khal/khal-complete.fish new file mode 100644 index 0000000000..4b2f994485 --- /dev/null +++ b/office/khal/khal-complete.fish @@ -0,0 +1,18 @@ +function _khal_completion; + set -l response (env _KHAL_COMPLETE=fish_complete COMP_WORDS=(commandline -cp) COMP_CWORD=(commandline -t) khal); + + for completion in $response; + set -l metadata (string split "," $completion); + + if test $metadata[1] = "dir"; + __fish_complete_directories $metadata[2]; + else if test $metadata[1] = "file"; + __fish_complete_path $metadata[2]; + else if test $metadata[1] = "plain"; + echo $metadata[2]; + end; + end; +end; + +complete --no-files --command khal --arguments "(_khal_completion)"; + diff --git a/office/khal/khal-complete.zsh b/office/khal/khal-complete.zsh new file mode 100644 index 0000000000..8d008ab5d1 --- /dev/null +++ b/office/khal/khal-complete.zsh @@ -0,0 +1,41 @@ +#compdef khal + +_khal_completion() { + local -a completions + local -a completions_with_descriptions + local -a response + (( ! $+commands[khal] )) && return 1 + + response=("${(@f)$(env COMP_WORDS="${words[*]}" COMP_CWORD=$((CURRENT-1)) _KHAL_COMPLETE=zsh_complete khal)}") + + for type key descr in ${response}; do + if [[ "$type" == "plain" ]]; then + if [[ "$descr" == "_" ]]; then + completions+=("$key") + else + completions_with_descriptions+=("$key":"$descr") + fi + elif [[ "$type" == "dir" ]]; then + _path_files -/ + elif [[ "$type" == "file" ]]; then + _path_files -f + fi + done + + if [ -n "$completions_with_descriptions" ]; then + _describe -V unsorted completions_with_descriptions -U + fi + + if [ -n "$completions" ]; then + compadd -U -V unsorted -a completions + fi +} + +if [[ $zsh_eval_context[-1] == loadautofunc ]]; then + # autoload from fpath, call function directly + _khal_completion "$@" +else + # eval/source/. command, register function for later + compdef _khal_completion khal +fi + diff --git a/office/khal/khal.SlackBuild b/office/khal/khal.SlackBuild new file mode 100644 index 0000000000..24543adbbc --- /dev/null +++ b/office/khal/khal.SlackBuild @@ -0,0 +1,96 @@ +#!/bin/bash + +# Slackware build script for khal + +# Copyright 2022 Tonus Paris +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +# 20230630 bkw: Modified by SlackBuilds.org, BUILD=3: +# - install the completions in the correct dirs (not /usr/doc). +# also install them with correct ownership ($CWD could be owned +# by anybody so you can't "cp -a $CWD/..."). +# - remove SLKCFLAGS and strip stuff (no compiled code here). + +cd $(dirname $0) ; CWD=$(pwd) + +PRGNAM=khal +VERSION=${VERSION:-0.11.3} +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} +PKGTYPE=${PKGTYPE:-tgz} + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i586 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + +if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then + echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE" + exit 0 +fi + +TMP=${TMP:-/tmp/SBo} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +set -e + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.gz +cd $PRGNAM-$VERSION +chown -R root:root . +find -L . \ + \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ + -o -perm 511 \) -exec chmod 755 {} + -o \ + \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ + -o -perm 440 -o -perm 400 \) -exec chmod 644 {} + + +python3 setup.py install --root=$PKG + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + *.rst doc/* \ + $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild + +# Remove directory containing only .gitignore +rm -rf $PKG/usr/doc/$PRGNAM-$VERSION/source/ystatic + +# 20230630 bkw: install the completion stuff in the right places. +mkdir -p $PKG/usr/share/bash-completion/completions \ + $PKG/usr/share/zsh/site-functions \ + $PKG/usr/share/fish/completions + +# 20230630 bkw: N.B. do not use "cp -a" to copy files from $CWD. +cat $CWD/khal-complete.bash > $PKG/usr/share/bash-completion/completions/khal +cat $CWD/khal-complete.zsh > $PKG/usr/share/zsh/site-functions/_khal +cat $CWD/khal-complete.fish > $PKG/usr/share/fish/completions/khal.fish + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE diff --git a/office/khal/khal.info b/office/khal/khal.info new file mode 100644 index 0000000000..c67a534f16 --- /dev/null +++ b/office/khal/khal.info @@ -0,0 +1,10 @@ +PRGNAM="khal" +VERSION="0.11.3" +HOMEPAGE="https://github.com/pimutils/khal/" +DOWNLOAD="https://files.pythonhosted.org/packages/d3/58/665551b1fea58a70d0f70fb539d2cd6be9ec106f36023d62c3ec5c7b2de1/khal-0.11.3.tar.gz" +MD5SUM="4859fd1fb17b39a0df89a038c2fd388b" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +REQUIRES="python3-icalendar python3-atomicwrites configobj tzlocal click click-log" +MAINTAINER="Tonus" +EMAIL="tonus1@free.fr" diff --git a/office/khal/slack-desc b/office/khal/slack-desc new file mode 100644 index 0000000000..682ffa4f0e --- /dev/null +++ b/office/khal/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. +# Line up the first '|' above the ':' following the base package name, and +# the '|' on the right side marks the last column you can put a character in. +# You must make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':' except on otherwise blank lines. + + |-----handy-ruler------------------------------------------------------| +khal: khal (terminal/cli calendar program) +khal: +khal: Khal is a standards based CLI and terminal calendar program, able to +khal: synchronize with CalDAV servers through vdirsyncer. +khal: +khal: +khal: +khal: +khal: +khal: +khal: |