about summary refs log tree commit diff stats
path: root/README.md
blob: 449730b0bc39ab23ecbf85b7b295365833c944ea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# MERGIRC TURNEL

a configurable ssh tunneler that I use for IRC

this is a small shell script that'll set up
an IRC tunnel between hosts that you can configure
using a file.

When you run mrgrctrnl,
it'll automagically tunnel the hosts
and let you sign into IRC on your own computer.
Yay!

## Why

I like running weechat from my computer but have it connected to others.
For example, I like to stay connected to tilde.town's IRC from my laptop.
According to instructions from
[~nick](https://tilde.town/~nick/sshtunnel.html),
you can just set up an SSH tunnel.
But I have multiple servers!
So I made this script.

### Why the stupid name?

![gersbermps meme edited so she's holding terminals](mrgrc.jpg "ermahgerd")

## Config file

The config file is located at `$XDG_CONFIG_HOME/mrgrctrnl/config`.
Each row is an ssh tunnel to run,
with whitespace-separeted fields.
A `#` begins a comment that goes to the end of the line.

```
# machine    user local           remote          key               rest
example.com  ted  localhost:6989  localhost:6667  /path/to/key.pub  [..]
```

**machine**, **user**, **local**, and **remote** are required.
**key** and **rest** are optional.

**rest** is more command-line options, if there's anything else you'd like to
include in the command.

## Usage

```
mrgrctrnl: make magic ssh tunnels
usage:	mrgrctrnl [-h] [-k]
	mrgrctrnl [-n] [-c CONF | -s SSH]

options:
	-h	show this help
	-k	kill all processes and exit
	-r	restart mrgrctrnl
	-n	do a dry run: just print what would happen
	-c CONFIG	use a different CONFIG file instead of
			$XDG_CONFIG_HOME/mrgrctrnl/config
	-s CMDLINE	directly input an ssh CMDLINE --
			don't load the config file.
```

## Requirements

- POSIX environment
- ssh

## Install

```
# make install
```

## Uninstall

```
# make uninstall
```