Compare commits

..

No commits in common. "master" and "v0.0.1" have entirely different histories.

4 changed files with 11 additions and 56 deletions

View File

@ -1,15 +1,13 @@
PT_VERSION ?= 0.0.1
all: prod
dev:
v -o pt src/
prod:
v -prod -skip-unused -cc gcc -cflags '-static -s' -o pt src/ \
-d pt_version=$$(git describe --tags) \
v -prod -cc gcc -cflags -static -o pt src/ \
-d pt_version=$(PT_VERSION) \
-d pt_piddir=pt \
-d pt_max_recursion_depth=10 \
-d pt_default_config_file=~/.ptrc
install:
install -Dm0755 pt $$HOME/.local/bin/pt
install -Dm0644 completion.bash $${XDG_DATA_HOME:-$$HOME/.local/share}/bash-completion/completions/pt

View File

@ -17,21 +17,15 @@ Run and manage background processes without daemon or root privileges. `pt` is a
## Install
### Prebuilt binary
Look for statically linked binaries on the [releases page](https://github.com/gechandesu/pt/releases).
### Build from source
First install [V compiler](https://github.com/vlang/v).
Then do:
Clone this repo and do:
```
git clone https://github.com/gechandesu/pt.git
cd pt
make
make install
install -Dm0755 pt $HOME/.local/bin/pt
install -Dm0644 completion.bash ${XDG_DATA_HOME:-$HOME/.local/share}/bash-completion/completions/pt
```
Next step is configuration.
@ -41,40 +35,3 @@ Next step is configuration.
Default configuration file is `~/.ptrc`. This is [TOML](https://toml.io) format file.
See full configuration example with comments in [ptrc.toml](ptrc.toml).
## Usage
For example run SOCKS5 proxy over SSH. For this example to work, your computer must have ~/.ssh/config configured and the remote server must also have your SSH key. The ~/.ptrc content:
```toml
# vim: ft=toml
[entry.ssh-tunnel]
description = 'SSH tunnel to %server%'
labels = ['ssh', 'pl']
exec = [
'/usr/bin/ssh',
'-NT',
'-oServerAliveInterval=60',
'-oExitOnForwardFailure=yes',
'-D',
'127.0.0.1:1080',
'192.168.0.1', # server address or hostname here
]
```
Start process:
```
$ pt start ssh-tunnel
```
Show running processes:
```
$ pt ps
```
Stop `ssh-tunnel`:
```
$ pt stop ssh-tunnel
# OR send signal explicitly
$ pt signal TERM ssh-tunnel
```

View File

@ -11,13 +11,13 @@ _pt_completions()
;;
-l|-label)
if [[ ${COMP_WORDS[*]} =~ start ]]; then
COMPREPLY+=($(compgen -W "$(pt labels)" -- "$cur"))
COMPREPLY+=($(compgen -W "$(./pt labels)" -- "$cur"))
fi
;;
*)
local words=($(pt ls -o brief) start stop signal)
local words=($(./pt ls -o brief) start stop signal)
if [[ ${words[*]} =~ $prev ]]; then
COMPREPLY+=($(compgen -W "$(pt ls -o brief)" -- "$cur"))
COMPREPLY+=($(compgen -W "$(./pt ls -o brief)" -- "$cur"))
fi
local commands='start stop ls ps help version signal labels'
local invoked=()

View File

@ -19,7 +19,7 @@ fn (em EntryManager) labels() []string {
for _, val in em.config.entries {
labels << val.labels
}
return arrays.uniq(labels.sorted())
return arrays.uniq(labels)
}
fn (em EntryManager) by_labels(labels []string) []Entry {