summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rwxr-xr-xbin/problem-6.sh33
-rwxr-xr-xbin/test4
3 files changed, 37 insertions, 2 deletions
diff --git a/.gitignore b/.gitignore
index 10de8b9..74abb03 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,4 @@
*.pdf
-*.o
tmp
-bin
pkg
node_modules
diff --git a/bin/problem-6.sh b/bin/problem-6.sh
new file mode 100755
index 0000000..e868c90
--- /dev/null
+++ b/bin/problem-6.sh
@@ -0,0 +1,33 @@
+#!/bin/sh
+
+validate_input() {
+ invalid=0
+ regex='^[0-9]+$'
+
+ for i in "$@"; do
+ if ! [[ $i =~ $regex ]]; then
+ echo "error: \"$i\" is not a number" >&2
+ invalid=1
+ fi
+ done
+
+ if [ $invalid -eq 1 ]; then
+ exit 1
+ fi
+}
+
+print_results() {
+ sum=0
+
+ printf "squares:"
+ for i in "$@"; do
+ sum=$((sum + $i))
+ printf " $(($i * $i))"
+ done
+ printf "\n"
+ echo "sum: $sum"
+}
+
+validate_input $@
+print_results $@
+exit 0
diff --git a/bin/test b/bin/test
new file mode 100755
index 0000000..42b2807
--- /dev/null
+++ b/bin/test
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+export PATH="./vendor/bats/bin:./bin:$PATH"
+bats --tap test