Initial commit

master
Felix Stupp 6 years ago
commit 83585f8802
Signed by: zocker
GPG Key ID: 93E1BD26F6B02FB7

@ -0,0 +1,13 @@
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004
Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. You just DO WHAT THE FUCK YOU WANT TO.

@ -0,0 +1,119 @@
# recht Plugin for ZSH
Erlaubt das schnelle Anzeigen von deutschen Rechtstexten bereitgestellt durch gesetze-im-internet.de. Gesetzestexte werden lokal gespeichert und können dann ohne Internetverbindung erneut aufgerufen werden.
**EN**: This ZSH plugin targets German users only because the used service targets German users only.
## Repository Klon
Das originale Repository wird auf [GitHub](https://github.com/Zocker1999NET/zsh-recht) gespeichert,
von welchem natürlich das Plugin für die Verwendung in ZSH heruntergeladen werden kann.
Issues und Pull Requests werden auf GitHub für alle gesammelt.
Das Repository wird auf meinen eigenen Server geklont,
von welchem dieses auch gerne geklont werden kann (siehe [Klon](https://git.banananet.work/zsh-plugins/recht)).
## Installation
### Benötigte Drittprogramme
- `curl`
### zsh (ohne Plugin Manager)
1. Projekt klonen
2. Folgende Zeile zur `.zshrc` hinzufügen:
```sh
SOURCE "path/to/repo/recht.plugin.zsh"
```
### oh-my-zsh
1. Projekt nach `~/.oh-my-zsh/custom/plugins/recht` klonen
2. `recht` zur Pluginliste hinzufügen
```sh
plugins=(… recht …)
```
### Antigen
1. Folgende Zeile zur `.zshrc` hinzufügen:
```sh
antigen bundle Zocker1999NET/zsh-recht # GitHub if default repository unchanged
antigen bundle https://git.banananet.work/zsh-plugins/recht # Own Server
```
or
1. Repository zur Pluginliste hinzufügen
```sh
antigen bundles <<EOBUNDLES
Zocker1999NET/zsh-recht # GitHub if default repository unchanged
https://git.banananet.work/zsh-plugins/recht # Own Server
EOBUNDLES
```
### Antibody
1. Folgende Zeile zur `.zshrc` hinzufügen:
```sh
antibody bundle Zocker1999NET/zsh-recht # GitHub if default repository unchanged
antibody bundle https://git.banananet.work/zsh-plugins/recht # Own Server
```
or
1. Repository zur Pluginliste hinzufügen
```sh
antibody bundles <<EOBUNDLES
Zocker1999NET/zsh-recht # GitHub if default repository unchanged
https://git.banananet.work/zsh-plugins/recht # Own Server
EOBUNDLES
```
## Konfiguration
- `ZSH_PLUGIN_RECHT_DOCS_DIR`: Der Ordner, in welchem die Gesetze gespeichert werden, `<GESETZ-ABK>.pdf` benannt, standardmäßig in `~/.zsh-recht-docs`
- `ZSH_PLUGIN_RECHT_DOC_VIEWER`: Das Programm, in welchem der Gesetzestext geöffnet werden soll, standardmäßig `xdg-open` (also Standardviewer durch Desktopumgebung gegeben)
Zusätzlich sind folgende Werte konfigurierbar für seltene Ausnahmefälle:
- `ZSH_PLUGIN_RECHT_SERVER_URL`: Die URL des Servers, welche die Rechtsdokumente bereitstellt. Diese müssen in einem ähnlichen Format wie `gesetze-im-internet.de` bereitgestellt werden, daher ist der Standardwert `https://www.gesetze-im-internet.de`
## Verwendung
```sh
recht <GESETZ-ABK>
```
Dabei muss *GESETZ-ABK* die offizielle Abkürzung des Namen des Gesetzes sein.
Die Groß-/Kleinschreibung muss die der offiziellen Abkürzung entsprechen.
Wird dem Gesetz eine Jahreszahl angehängt (Bsp: [BSV 1999](https://www.gesetze-im-internet.de/bsv_1999/)), so muss diese Jahreszahl mit einen Unterstrich `_` (vgl. URL zum Gesetz) angehängt werden, hier also `recht BSV_1999`.
Gab es ein Gesetz bereits in mehreren Neu-Fassungen (siehe [BSIG](https://www.gesetze-im-internet.de/bsig_2009/)),
wird manchmal auf dem Server die Jahreszahl beim Namen des Ordners,
jedoch nicht beim Name der PDF (somit auch nicht Teil der Abkürzung des Gesetzes),
angehängt (URL zur PDF: [`/bsig_2009/BSIG.pdf`](https://www.gesetze-im-internet.de/bsig_2009/BSIG.pdf)).
Bei solchen Fällen muss das Gesetz entweder manuell heruntergeladen und im Ordner abgelegt werden,
oder, wenn einem die PDF URL bekannt ist,
kann diese verwendet werden: `recht bsig_2009/BSIG`.
Nach dem Herunterladen kann die heruntergeladene PDF Datei durch beide Befehlsvarianten ohne Internetverbindung angezeigt werden:
```sh
recht bsig_2009/BSIG # ist eine BSIG.pdf vorhanden, wird diese bevorzugt
recht BSIG # nur, wenn BSIG.pdf vorhanden
```
## Lizenz
Das Plugin ist lizensiert unter der WTFPL.
Es darf frei verwendet, bearbeitet und verbreitet werden.
Es wird gerne gesehen, dass Verbesserungen am Plugin wieder zurück zu diesem Repository finden.
## Verbesserungen
Wer einen Bugfix oder eine Verbesserung betragen möchte,
einfach einen Pull Request erstellen.
Code bitte auf Englisch kommentieren.

@ -0,0 +1,36 @@
function recht() {
# Load configuration values
local serverUrl="${ZSH_PLUGIN_RECHT_SERVER_URL:-https://www.gesetze-im-internet.de}"
local docsDir="${ZSH_PLUGIN_RECHT_DOCS_DIR:-~/.zsh-recht-docs}";
local docViewer="${ZSH_PLUGIN_RECHT_DOC_VIEWER:-xdg-open}";
# Create output directory if not exists already
mkdir --parents "$docsDir";
# Load arguments
local docName="$1";
local docPartUrl="${1:l}/$1";
if <<<"$1" grep "/" >/dev/null; then
# Load argument as docPartUrl if it seems to be a path instead of a name
docName="$(<<< "$1" grep --only-matching --perl-regexp '(?<=/)[^/]*$')";
docPartUrl="$1";
fi
# Complain if name / path is not given
if [ -z "$1" ]; then
echo "Missing document name to open!" >/dev/stderr;
return 1;
fi
# Generate local path and remote url
local docPath=~/"Documents/Uni/Recht/_docs/${docName}.pdf";
local docUrl="${serverUrl}/${docPartUrl}.pdf";
# Download if local version not given
if [ ! -e "$docPath" ]; then
echo "Download document from gesetze-im-internet …";
curl --fail --silent --output "$docPath" "$docUrl";
fi
# Try to open document
if [ -e "$docPath" ]; then
$docViewer "$docPath" >/dev/null 2>&1 &!;
else
echo "Document $1 not found" >/dev/stderr;
return 1;
fi
}
Loading…
Cancel
Save