summaryrefslogtreecommitdiffstats
path: root/office/khal
diff options
context:
space:
mode:
Diffstat (limited to 'office/khal')
-rw-r--r--office/khal/README10
-rw-r--r--office/khal/khal-complete.bash29
-rw-r--r--office/khal/khal-complete.fish18
-rw-r--r--office/khal/khal-complete.zsh41
-rw-r--r--office/khal/khal.SlackBuild96
-rw-r--r--office/khal/khal.info10
-rw-r--r--office/khal/slack-desc19
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: