From 9e16f5674999dee7d6e8528cf7fb411b87a89128 Mon Sep 17 00:00:00 2001 From: damage Date: Wed, 23 Aug 2023 23:40:14 +0200 Subject: [PATCH] init ci --- ssh.sh | 66 +++++++++++++++++++++++++++++++++++++ test/foo11/foo21/devloop.de | 1 + 2 files changed, 67 insertions(+) create mode 100755 ssh.sh create mode 100644 test/foo11/foo21/devloop.de diff --git a/ssh.sh b/ssh.sh new file mode 100755 index 0000000..bcb44ee --- /dev/null +++ b/ssh.sh @@ -0,0 +1,66 @@ +#!/bin/bash + +# config +DIALOG=dialog #gdialog kdialog +START_DIR='' + +if [[ $# -eq 1 && -d "$1" ]]; then + START_DIR="$1" +fi + +# select config file +configFile='' +while [[ -z "$configFile" ]]; do + # init dir variable + if [[ -z "$dir" ]]; then + dir="$START_DIR" + fi + + # add parent selector if not already in $START_DIR + if [[ "$START_DIR" == "$dir" ]]; then + para=() + else + para=(".." "<..>") + fi + + # add directory selectors + for d in `find $dir -mindepth 1 -maxdepth 1 -type d -printf "%f\n" |sort`; do + para+=("$d" "<$d>") + done + # add file selectors + for d in `find $dir -mindepth 1 -maxdepth 1 -type f -printf "%f\n" |sort`; do + para+=("$d" "$d") + done + + # run dialog + ret=$("$DIALOG" --no-tags --stdout --menu "select connection" 0 0 0 ${para[@]} 2>&1) + if [[ $? -ne 0 ]]; then + exit 1 + fi + + # sepcial handling of parent selector + if [[ "$ret" != ".." ]]; then + ret="$dir/$ret" + if [[ -d "$ret" ]]; then + dir=$ret + else + configFile=$ret + fi + else + dir=`dirname "$dir"` + fi +done + +echo "config file '$configFile' selected. connecting..." + +# read config file and connect +if [[ -f "$configFile" ]]; then + # each line equals one config option + para=() + while read -r configLine; do + para+=($configLine) + done < "$configFile" + + # execute ssh + ssh ${para[@]} `basename "$configFile"` +fi diff --git a/test/foo11/foo21/devloop.de b/test/foo11/foo21/devloop.de new file mode 100644 index 0000000..43116c9 --- /dev/null +++ b/test/foo11/foo21/devloop.de @@ -0,0 +1 @@ +-l root