summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/Command/Command/AddSamples.php26
-rwxr-xr-xsample-commands/calc.sh28
2 files changed, 54 insertions, 0 deletions
diff --git a/lib/Command/Command/AddSamples.php b/lib/Command/Command/AddSamples.php
index bc7f43421..f1419f33f 100644
--- a/lib/Command/Command/AddSamples.php
+++ b/lib/Command/Command/AddSamples.php
@@ -76,6 +76,32 @@ class AddSamples extends Base {
}
try {
+ $this->service->find('', 'calculator');
+ } catch (DoesNotExistException $e) {
+ $commands[] = $this->service->create(
+ '',
+ 'calculator',
+ 'Calculator',
+ $appPath . '/sample-commands/calc.sh "{ARGUMENTS_DOUBLEQUOTE_ESCAPED}"',
+ Command::RESPONSE_USER,
+ Command::ENABLED_ALL
+ );
+ }
+
+ try {
+ $this->service->find('', 'calc');
+ } catch (DoesNotExistException $e) {
+ $commands[] = $this->service->create(
+ '',
+ 'calc',
+ 'Calculator',
+ 'alias:calculator',
+ Command::RESPONSE_ALL,
+ Command::ENABLED_ALL
+ );
+ }
+
+ try {
$this->service->find('', 'hackernews');
} catch (DoesNotExistException $e) {
$commands[] = $this->service->create(
diff --git a/sample-commands/calc.sh b/sample-commands/calc.sh
new file mode 100755
index 000000000..7ec3c6301
--- /dev/null
+++ b/sample-commands/calc.sh
@@ -0,0 +1,28 @@
+#!/usr/bin/env bash
+while test $# -gt 0; do
+ case "$1" in
+ --help)
+ echo "/calc - A basic calculator for Nextcloud Talk based on gnu BC"
+ echo "See the official documentation for more information:"
+ echo "https://www.gnu.org/software/bc/manual/html_mono/bc.html"
+ echo " "
+ echo "Simple equations: /calc 3 + 4 * 5"
+ echo "Complex equations: /calc sin(3) + 3^3 * sqrt(5)"
+ exit 0
+ ;;
+ *)
+ break
+ ;;
+ esac
+done
+
+CALCULATOR=$(which "bc")
+if ! [ -x "$CALCULATOR" ]; then
+ echo "Basic calculator package (bc) not found"
+ exit 1
+fi
+
+
+set -f
+echo "$@ ="
+echo $(echo "$@" | bc)