Initial commit
commit
83585f8802
@ -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…
Reference in New Issue