ORCUS Logo
Datenschutz Impressum Kontakt
Referenzen News Externe Links
email

externer Anbieter: translate.google.com

Datenschutz-Hinweis: Durch Auswahl von "OK":

OK

externer Anbieter: validator.w3.org

Datenschutz-Hinweis: Durch Auswahl von "OK":

OK

externer Anbieter: validator.w3.jigsaw.w3.org

Datenschutz-Hinweis: Durch Auswahl von "OK":

OK
prev. page next page / HOME / Workarounds / IRC - linux mint support /[ot-snippet.sh - simple IRC-helper]

Über ot-snippet.sh

logo - ot-snippet

ot-snippet bietet eine einfache Verwaltung von parametrisierten mehrzeiligen Textblöcken (snippets) zur Nutzung in IRC-Clients (HexChat). Ein snippet wird durch seinen "Namen" (snippet-key) ausgewählt.

Im Zusammenspiel mit einem user-command (im Beispiel /s ) lassen sich häufig benötigte Texte durch ein kurzes Kommando ausgeben.

Um einen allgemeinen Begrüßungstext (snippet-key hi) auszugeben, ist es ausreichend /s hi im IRC einzugeben, um zu folgender Ausgabe zu expandieren:

[00:00:25] <orcus> Welcome to the linux mint support channel - all languages are welcome - english will often get more/faster replies.
[00:00:25] <orcus> To get support: Give some details about your issue, including your used mint version (19.2 ?) and DE (cinnamon, mate, xfce ?); stay connected afterwards = do not ask and leave after 1 minute...
[00:00:25] <orcus> Use    #linuxmint-chat    for general/non-support chat (right-click onto the channel-name + select join).
		

Um den Text dynamisch zu ergänzen, können in snippets Platzhalter verwendet werden, für die beim Aufruf entsprechende Werte - z.B. einen nickname - übergeben werden:


/s ask demo
		

- expandiert im IRC zu:

[00:00:46] <orcus> demo> If you need support - describe your issue, giving some (more) details + version used: 19.x? + DE: cinnamon, mate, xfce? - if anybody has an answer she/he will reply.
[00:00:46] <orcus> demo> Stay connected afterwards == do not ask and leave after 1 minute.
		

Auch wenn ot-snippet eine Auswahl von verwendbaren snippets vorhält, ist es im wesentlich dazu bestimmt, eigene snippets zu definieren. Für das Erstellen und Bearbeiten von snippets kann jeder einfache Texteditor verwendet werden.

Anforderungen

ot-snippet.sh ist für einen Nutzung mit bash als shell vorgesehen; d.h. es werden insbesondere für bash spezifische Umgebungsvariablen genutzt.

ot-snippet ist für eine Nutzung in einer Desktop-Umgebung vorgesehen. Die Ergebnisse bestimmter Kommandos werden via Terminal-Fenster bzw. als zenity-Dialog angezeigt.

Aktuell werden die folgenden Terminal-Anwendungen unterstützt:

Setup

ot-snippet bereitstellen

Aktuelle Version von ot-snippet herunterladen und in einem aktuellen Suchpfad bereitstellen.

Unter Linux Mint wird ein existierender Order "bin" im Home-Verzeichnis des Benutzers ($HOME/bin) bei der Anmeldung automatisch im Suchpfad aufgenommen.

Wird eine andere Distribution verwendet, muss ggf. $HOME/bin per export-Anweisung in ~/.profile dem Suchpfad (der PATH-Variable) hinzugefügt werden. Nach Änderungen an ~/.profile : ab- und wieder anmelden, damit der Suchpfad aktualisiert wird.

Um die Option --sel verwendet zu können (empfehlenswert), wird zenity benötigt.


# to be used with debian-based linux-installations having apt available

# create bin-folder and use it (just ignore if ~/bin would already be there)
mkdir ~/bin
cd ~/bin

# download ot-snippet and make it executable
wget https://www.orcus.de/Entities/linux/ot-snippet.sh -O ot-snippet.sh
chmod +x ot-snippet.sh

# zenity is required to be able to use the --sel -feature (which you should have)
# if zenity is already installed - apt will say so... (and could be ignored)
apt install zenity
			

Falls ~/bin neu angelegt wurde: ab- und wieder anmelden, damit $HOME/bin automatisch dem Pfad hinzugefügt wird (Linux Mint).

IRC user-command anlegen

Für die Nutzung aus IRC-Clients wird lediglich ein einzelnes user-command definiert, das übergebene Parameter per /exec -Aufruf an ot-snippet.sh durchreicht.

Bei einem abweichenden IRC-Client muss ggf. die Definition angepasst werden.

HexChat

In Hexchat, Menü Einstellungen -> Benutzer-Kommando aufrufen. Einen neues Benutzer-Kommando anlegen - der Name ist frei wählbar - im Beispiel wurde "S" wie snippet verwendet.

logo - [Vergrößern per Mausklick]

[Vergrößern per Mausklick]

Hinweis für HexChat: Die Eingabe im Definitionsfeld muss mit Eingabe/Return beendet werden, bevor der Speichern-Knopf verwendet wird, da ansonsten eine leere Definition gespeichert wird.

user-cmdDefinition
Sexec -o ot-snippet.sh &2

weechat

In weechat muss das "exec"-Plugin verfügbar sein - d.h. es muss ggf. noch das weechat-plugins Paket installiert werden:

					
apt install weechat-plugins
				

Für eine einfachere Nutzung wird ein Alias (bzw. user-command) für das exec-Kommando in weechat definiert:

					
/alias S exec -o ot-snippet.sh
				

Wird weechat in einer Konsolen-Umgebung ohne Window-Manager verwendet, stehen die --help , --list , --show und --sel -Optionen nicht zur Verfügung. Der Aufruf von snippets per snippet-key funktioniert uneingeschränkt.

Die Option --new-custom kann zum Anlegen eines neuen custom-files genutzt werden, es erlolgt lediglich keine Ausgabe am Bildschirm.

Details zu custom-files finden sich hier: custom-Datei ot-snippets.txt & Updates

Snippets testen

Um beim Ausprobieren von ot-snippet nicht unnötig die offiziellen #linuxmint-help und #linuxmint-chat -channels mit Text zu fluten, sollte vorzugsweise ein temporärer channel verwendet werden.


/join #mytmp
			

Man kann ot-snippet.sh natürlich auch aus einem Terminal heraus nutzen, um snippets vor deren Verwendung im IRC zu testen.

Nach dem Bereitstellen sollten die von ot-snippet detektierte Umgebung und die aktiven Optionen angezeigt werden:


ot-snippet.sh --help
			
ot-snippet V. 001#66 2019-12-05 - usage:
/home/oxs-build/bin/ot-snippet.sh <snippet-name> | :|--sel | _|--show | ?|--list | --help | --new-custom

setup-info:
term   = /usr/bin/mate-terminal  available - used 
	 version: MATE-Terminal 1.16.3
zenity = /usr/bin/zenity available - used 
	 version: 3.28.1
log    = /home/oxs-build/bin/ot-snippet.log missing or empty = no warnings/errors 
custom = /home/oxs-build/bin/ot-snippet.txt not available - ignored

fixes-info:
dbind-warning : inactive - not used
zenity-38-bug : inactive - not used
log-filters   : inactive - not used


press Shift+PgUp to scroll back
press RETURN to close window
			

Snippets nutzen

snippet direkt aufrufen

Ein snippet wird durch seinen Bezeichner/Key ausgewählt - $1 im Script. Weitere Parameter werden nach Bedarf einfach an das user-command angefügt, und werden von ot-snippet an den entsprechenden Stellen (als $2..$n ) genutzt.

Viele der vordefinierten snippets verwenden $2 um einen nickname am Zeilenanfang im Text zu platzieren:

/uc ask newuser

expandiert im IRC zu:

[00:58:36] <orcus> newuser> If you need support - describe your issue, giving some (more) details + version used: 19.x?, + DE: cinnamon, mate, xfce? - if anybody has an answer she/he will reply.
[00:58:36] <orcus> newuser> Stay connected afterwards == do not ask and leave after 1 minute.
			

Überzählige Parameter (kommt ja mal vor) werden nicht ausgewertet. Werden weniger Parameter als erwartet verwendet, werden die entsprechenden Platzhalter durch leeren Text (nichts) ersetzt.

/uc ask

expandiert im IRC zu:

[01:19:29] <orcus> > If you need support - describe your issue, giving some (more) details + version used: 19.x?, + DE: cinnamon, mate, xfce? - if anybody has an answer she/he will reply.
[01:19:29] <orcus> > Stay connected afterwards == do not ask and leave after 1 minute.
			

snippets auswählen / auflisten

Neben dem direkten Auswählen eines snippets per Parameter unterstützt ot-snippet das Auflisten oder auch interaktive Auswahl vorhandener snippets:

P. kurzP. langFunktion
:--selAuswahl snippet per Listbox
?--listListe verfügbare snippet-keys
_--showÜbersicht expandierte snippets

Hinweis: Die o.g. zusätzlichen Ausgaben erfolgen in neuen Fenstern. Für --list und --show wird eine neues Terminal-Fenster geöffnet. Für --sel erfolgt die Anzeige per zenity-Dialog. Die jeweiligen Funktionalitäten sind entsprechend nicht in einer reinen Terminal-Session verfügbar. Die direkte Nutzung von snippets über deren key ist unabhängig davon möglich.

: --sel

Zeigt eine Liste der verfügbaren snippet-keys als Listbox per zenity an (zenity muss installiert sein). Die Einträge werden in Reihenfolge ihrer Definition angezeigt.

Wird ein snippet-key ausgewählt, wird das snippet (zusammen mit den übrigen Parametern) zum Expandieren verwendet und das Ergebnis im IRC ausgegeben.

Der angezeigt Dialog unterstützt das dynamische Filtern: Es wird der beste Treffer zu einer Eingabe selektiert.

Wird die Auswahl per ESC-Taste oder durch Schließen des Fensters abgebrochen, wird kein Text/snippet im IRC ausgegeben.

logo - [Vergrößern per Mausklick]

[Vergrößern per Mausklick]

? --list

Zeigt eine Liste der verfügbaren snippet-keys in einem Terminal-Fenster an.

Es wird kein Text/snippet im IRC ausgegeben.

logo - [Vergrößern per Mausklick]

[Vergrößern per Mausklick]

_ --show

Zeigt eine Übersicht der expandierten snippets in einem Terminal-Fenster an. Zum Hervorheben von Parameter-Positionen werden dummy-Parameter [P2]..[P4] farblich im expandierten Text hervorgehoben.

Es wird kein Text/snippet im IRC ausgegeben.

logo - [Vergrößern per Mausklick]

[Vergrößern per Mausklick]

Übersicht, Grobstruktur ot-snippet.sh

Die nachfolgenden Informationen sind nicht zwingend notwendig um snippets zu Erstellen oder zu Bearbeiten, helfen aber bestehende Einschränkungen, Features und Konventionen zu verstehen.

ot-snippet.sh ist ein bash shell-Script, snippets sind nichts anderes als darin enthaltene benannte Array-Variablen.

Die Datei besteht aus drei Teilen:

Header

Im Header werden einige interne Variable definiert. Neben vordefinierten IRC Escape-Codes (für das clientseitige Einfärben von Text, sowie bold- und italic-Attributen) wird in der Variable "ot_log" der Name der Logdatei aus dem aktuellen Pfad von ot-snippet.sh abgeleitet/hinterlegt.

Fehlerausgaben werden nach $ot_log - mit den default-Einstellungen ~/bin/ot-snippet.log - umgeleitet und sollten damit auch nicht im IRC als störender Text angezeigt werden. Entsprechend sollte bei Fehlern oder unerwartetem Verhalten von ot-snippet, zunächst einmal die Logdatei durchgesehen werden. Im Idealfall sollte die Logdatei keine Einträge aufweisen und 0 Byte Umfang haben.

Snippets - Format snippet-Name

Snippets weisen das folgende Format auf:

freenode=("
$2> there exists a specialized channel at freenode irc $open_irc:
$2> ircs://chat.freenode.net/#$3")
			

Wichtig für das Auflisten von snippets: Der snippet-Name muss am Anfang einer neuen Zeile nur gefolgt von =(" stehen.

Der eigentliche Text folgt in den nächsten Zeilen und wird mit einem ") am Ende der letzten Zeile abgeschlossen. Zeilenumbrüche innerhalb des snippet-Textes werden 1:1 als neue Zeilen im IRC ausgegeben :-).

Footer

Im Footer befinden sich die Routinen zum Auswerten der Kommandozeilen-Argumente (im wesentlichen der $1 Parameter).

Wird eine der Optionen --list (aka ?) oder --show (aka _) verwendet, erstellt ot-snippet.sh einen Auszug der verfügbaren snippets, bzw. der snippet-Definitionen.

Intern führt ot-snippet.sh ein grep-Kommando und ggf. Test-Aufrufe (zum Expandieren der aktuellen Definitionen) auf sich selbst durch = hierdurch entfällt das Pflegen eines zusätzlichen Index.

Um den grep-Ausdruck möglichst einfach halten zu können, wird lediglich die o.g. Forderung an das Format des snippet-Namens beim Anlegen eines snippets gestellt.

Terminals für --list und --show

Die Anzeige der extrahierten snippet-Keys und -Definitionen erfolgt in getrennten Terminal-Fenstern.

ot-snippet testet die Verfügbarkeit der folgenden Terminal-Anwendungen (in dieser Reihenfolge):

  • gnome-terminal
  • xfce4-terminal
  • mate-terminal
  • lxterminal

Wird eine andere Terminal-Anwendung verwendet muss diese entsprechend ergänzt werden:

Neben dem Test auf die Terminal-Anwendung müssen ggf. die Terminal-spezifischen Parameter zur Anzeige der extrahierten Daten festgelegt werden (unterscheiden sich je nach Terminal-Anwendung, sollten sich aber einfach per man-page oder --help von dieser ermitteln lassen):

Beispiel-Parameter gnome-terminal
ParameterDefinition
ot_execflag"-e"
ot_titelflag"-T"

Aufrufparameter und interne Variablen

Wird ot-snippet.sh aufgerufen, bestimmt der erste Parameter (aka $1 im bash-Script) das entsprechende snippet (snippet-key) und wird zum Expandieren der gleichnamigen Variable verwendet.

Expandiert der verwendet snippet-key zu einem leeren Ergebnis (undefinierter snippet-key, Schreibfehler) erfolgt keine Ausgabe im IRC.

Innerhalb von snippets vorkommende $2, $3, ... -Variablen werden beim Expandieren implizit/automatisch durch die aktuellen Aufrufparameter von ot-snippet.sh ersetzt :-).

Analog zu den Aufrufparametern $2..$n werden beim Expandieren eines snippets auch beliebige andere (z.B. global definierte) Variablen ausgewertet, deren Wert dann entsprechend eingesetzt wird.

Damit lassen sich wiederholt genutzte Textanteile als string-Variable definieren - z.B.:

# trailing text for (freenode) irc-channels
freenode_info="$2> (at (most) freenode-channels, only registered user are able to write/ask)"
		

und dann innerhalb der snippets verwenden:

fbash=("
$2> there esists a bash-related channel at freenode-irc $open_irc:
$2> ircs://chat.freenode.net/#bash
$freenode_info")
		

Für den Upload von Programmausgaben und sonstige Daten wird häufig ein Paste-Service verwendet. Da sich dieser der Vergangenheit gelegentlich geändert hat, ist es sinnvoll, das entsprechende Teilkommando zentral zu definieren - aktuell:

# current paste-service
paster="|nc termbin.com 9999"
#paster="|pastebinit -b paste.ubuntu.com"
		

Hinweis: vordefinierte String-Variablen, sollten selbst NICHT in der Notation von snippets angelegt werden, da diese Ansonsten bei --list , --show , --sel mit angezeigt würden.

ot-snippet.sh (snippets) bearbeiten

Snippet-Namen

Jeder in bash gültige/zulässiger Variablenname kann als snippet-Bezeichner bzw. snippet-key verwendet werden.

Wobei es natürlich naheliegend ist, einen kurzen und leicht zu merkenden snippet-key zu verwenden.

Für eine Übersicht aktuell verfügbarer/definierter snippets:


# Kurzform
ot-snippet.sh ?
# Langform
ot-snippet.sh --list

			

Ein snippet anlegen

Mit einem beliebigen Editor ot-snippet.sh öffnen. Neue Snippets werden nach folgendem Kommentar angelegt:

# SNIPPETS ====================================================================

- z.B.:

my1st=("
$2> first line of my first snippet
$2> second line with an extra param '$3'
$2> last line...")
			

Nach dem Speichern kann man das snippet direkt im Terminal testen:

ot-snippet.sh my1st somename someparamused toomanyparams
			

- und expandiert im terminal zu:

somename> first line of my first snippet
somename> second line with an extra param 'someparamused'
somename> last line...")
			

Das neue Snippet wird genauso per --list (?) oder --show (_) angezeigt, wie es per --sel (:) zur Auswahl angezeigt werden kann:

ot-snippet.sh : somename someparamused toomanyparams
			
logo -

Werden snippets vorübergehend nicht benötigt, ist es ausreichend diese auszukommentieren. Die entsprechenden snippets werden dann weder bei --list , --show oder --sel angezeigt und sind auch nicht aufrufbar.

Aufruf-Parameter

Da ot-snippet wie jedes andere shell-tool aufgerufen wird, existieren Einschränkungen bzw. der Parameter.

Soll ein channel-Name (beginnen typischer Weise mit einem # als führendes Zeichen), so muss dieser zusammen mit einfachen oder doppelten Anführungszeichen benutzt werden (würde sonst als Anfang eines Kommentars beim Aufruf interpretiert und damit nicht genutzt werden).

Das vordefinierte snippet "freenode" vermeidet dies z.B., indem das # Zeichen als fester Bestandteil des snippets angelegt ist. Beim Aufruf wird entsprechend das führende # vom channel-Namen weggelassen:

# freenode --------------------------------------------------------------------
# a generic snippet expecting <nick> <channel-name> (without leading #)
freenode=("
$2> there exists a specialized channel at freenode irc $open_irc:
$2> ircs://chat.freenode.net/#$3")
			

custom-Datei ot-snippets.txt & Updates

Beim Starten überprüft ot-snippet.sh ob im gleichen Verzeichnis eine custom-Datei (ot-snippets.txt) vorhanden ist.

Existiert die custom-Datei, wird diese automatisch von ot-snippet.sh eingebunden und die darin enthaltenen globalen Variablen und snippets an Stelle der lokalen Definitionen genutzt (direkte Auswahl, --sel , --list und --show ).

Die custom-Datei ist hilfreich, um beim Bereitstellen einer neue Version von ot-snippet.sh, die lokal vorgenommenen Änderungen der snippets weiterhin verwenden zu können, ohne diese wiederholt manuell in die neue Version kopieren zu müssen.

Seit Version 001#66 kann eine custom-Datei über die Option --new-custom angelegt werden:


ot-snippet.sh --new-custom
		
ot-snippet V. 001#66 2019-12-05
custom = /home/oxs-build/bin/ot-snippet.txt
created new custom-file



press Shift+PgUp to scroll back
press RETURN to close window
		

Existiert bereits eine custom-Datei, versucht ot-snippet diese erst umzubenennen.

ot-snippet V. 001#66 2019-12-05
custom = /home/oxs-build/bin/ot-snippet.txt
renamed existing custom-file to '/home/oxs-build/bin/ot-snippet.bak' 
created new custom-file



press Shift+PgUp to scroll back
press RETURN to close window
		

Scheitert das Umbenennen, wird eine bestehende Datei nicht ersetzt und eine entsprechende Meldung ausgegeben. Sie müssen in diesem Fall die bestehende Datei von Hand umbenennen oder löschen.

Wird eine ältere Version von ot-snippet verwendet, musss zum Anlegen eines custom-files per Editor der Bereich zwischen den folgenden Kommentaren aus aus ot-snippet.sh kopiert und als ot-snippet.txt gespeichert werden:

# =============================================================================
# for a custom snippet-file >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
# START COPY HERE
		
# END COPY HERE
# for a custom snippet-file <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
		

Wichtiger Hinweis: In ot-snippet.txt sollten möglichst nur snippet-Definitionen und von diesen genutzte globale Variablen abgelegt werden. Es dürfen insbesondere keine der internen Funktionen zur Auswertung der Aufrufparameter aus ot-snippet.sh enthalten sein.

Hintergrund: Auch wenn eine direkte Kopie von ot-snippet.sh als ot-snippet.txt zunächst scheinbar gut als custom-file funktioniert, stellt dies eine versteckte Falle dar, wenn ot-snippet.sh zu einem sp#teren Zeitpunkg durch eine neue Version ersetzt wird: Durch das "sourcen" des custom-files werden neben den snippets auch die im custom-file enthaltenen, potentiell veralteten Funktions- und sonstige Verwaltungs-Definitionen verwendet und "verdecken" die geänderten Versionen von ot-snippet.sh.

Es ist selbstversändlich möglich mit einer selbst erstellten custom-Datei zu arbeiten, die keines der vordefinierten snippets verwendet.

Mehrere custom-Files - softlink

(ot-snippet Version >= 001-#56:) Der Name des Custom-Files wird intern aus dem Namen des aktuell ausgeführten Kommandos / shell-scripts abgeleitet. Dabei wird die Datei-Extension ".sh" durch ".txt" ersetzt.

Ist man in unterschiedlichen IRC-channels aktiv und möchte hierfür getrennte custom-files verwenden, kann man das über jeweils einen Softlink auf ot-snippet.sh und ein dazu passendes zusätzliches user-command erreichen.

Der Soflink muss dabei ebenfalls zwingend ".sh" als Extension aufweisen. Der übrige Name ist soweit egal (=muss auch nicht "ot-snippet" als Text enthalten).

Durch Nutzung des softlinks ergibt sich indirekt eine anderer Name für die entspechende custom-Datei...


# add a softlink - to make use of another custom-file (e.g. ubuntu)
# the softlink has to end with an ".sh" file-extension:
cd ~/bin
ln -s ot-snippet.sh ots-ubuntu.sh
			

Durch Nutzung des softlinks ergibt sich indirekt ein anderer Name für die entspechende custom-Datei...


ots-ubuntu.sh --new-custom
			
ot-snippet V. 001#66 2019-12-05
custom = /home/oxs-build/bin/ots-ubuntu.txt
created new custom-file



press Shift+PgUp to scroll back
press RETURN to close window

			

Die dann entsprechend über den softlink genutzt werden kann


ots-ubuntu.sh --help
			
ot-snippet V. 001#66 2019-12-05 - usage:
/home/oxs-build/bin/ots-ubuntu.sh <snippet-name> | :|--sel | _|--show | ?|--list | --help | --new-custom

setup-info:
term   = /usr/bin/mate-terminal  available - used 
	 version: MATE-Terminal 1.16.3
zenity = /usr/bin/zenity available - used 
	 version: 3.28.1
log    = /home/oxs-build/bin/ots-ubuntu.log missing or empty = no warnings/errors 
custom = /home/oxs-build/bin/ots-ubuntu.txt available - used

fixes-info:
dbind-warning : inactive - not used
zenity-38-bug : inactive - not used
log-filters   : inactive - not used


press Shift+PgUp to scroll back
press RETURN to close window

			

Log-files - softlink

Der Name des log-files wird analog zum Namen des custom-files durch Ersetzen von ".sh" durch ".log" ermittelt. Entsprechend wird bei Nuztung eines softlinks auch ein eigenes log-file genutzt/angelegt :-).

Jenseits von "einfach ersetzen"

Da die snippets per eval expandiert werden, hat man sämtliche Möglichkeiten eines bash shell-sripts zur Verfügung und kann damit mehr machen, als einfach nur übergebene Parameter im Text zu platzieren.

Das snippet search nutzt eine kleine Helper-Funktion um alle Parameter $3..$n zu einem per "+" konkatenierten String für Suchmaschinenabfragen zu verbinden. Der String wird, dann in einer Abfrage-URL für startpage.com eingesetzt.

Für das gewünschte Umformatieren des Suchstrings wurde einen Funktion QS - wie query-string - angelegt:

# snippet-helper: merge args to query-string using +
# to be used with search-queries
# $@ - word-list
# output via echo
function QS
{
    vmerge="${@}"
    echo "${vmerge// /\+}"  
}
		

Die Funktion kann dann in snippets mit Parametern versorgt werden und liefert den Ersatztext zur Laufzeit:

# this one is special: - uses QS-function to chain $3..$n with + for search query
search=("
$2> using some alternative search-enginge does often help to get answers (instead of advertisement)
$2> https://www.startpage.com/do/dsearch?query=$(QS ${@:3}) $open_htm")
		

Anmerkung: ${@:3} expandiert zu einer Liste aller Aufrufparameter ab dem dritten Parameter (=die übergebenen Suchparameter) $3..$n

Im IRC kann man dann einfach das search-snippet mit dem usernamen und einer bliebigen Wortliste füttern:

/s search demouser install chrome linux mint

Was dann zur Laufzeit zu einem korrekt formatierten Suchlink umgesetzt wird, den der entsprechende Benutzer direkt anklicken kann:

[22:31:38] <orcus> demouser> using some alternative search-enginge does often help to get answers (instead of advertisement)
[22:31:38] <orcus> demouser> https://www.startpage.com/do/dsearch?query=install+chrome+linux+mint (<- click onto link(s) to open)
		

Known Issues

Es bietet sich an ot-snippet.sh zu Fehlersuche im Terminal zu testen. Fehlerausgaben werden intern in der Log-Datei ot-snippet.log im gleichen Verzeichnis wie ot-snippet.sh gespeichert.

Im Idealfall sollte ein Lauf von ot-snippet.sh zu keinen Einträgen in der Log-Datei führen. Abhängig von der genutzten Installation können dennoch einzelne Einträge auftreten, die hier beschrieben werden. Sofern möglich, werden hier Workarounds zum Vermeiden entsprechender Meldungen gegeben.

dbind-warning

Unter CentOS7 führt die Nutzung von mate-terminal zu Warnungen im Log (bekannter Bug):

(mate-terminal:10017): dbind-WARNING **: 20:39:15.346: Couldn't connect to accessibility bus: Failed to connect to socket /tmp/dbus-5JpJNPCMtv: Connection refused
			

Die Warnung kann im Prinzip ignoriert werden und lässt sich durch Definieren von:

export NO_AT_BRIDGE=1

unterdrücken.

In ot-snippet.sh ist im Headerbereich bereits eine entsprechende Zeile als Kommentar hinterlegt und muss nur aktiviert werden.

# uncomment to suppress dbind-warnings at ot-snippet.log (centos/mate-terminal)
# details https://orcus.de/main_workarounds/pub_irc/ot-snippet.htm#ki-dbind
export NO_AT_BRIDGE=1
			

Alternativ kann der export der Variable auch in ~/.profile eingetragen werden und unterdrückt die Warnung nach einer Neuanmeldung global für alle Anwendungen.

GLib-warning

Die im Test unter Arch Linux mit LXDE genutzte default zenity-Version 3.32.0+17+gfb0938f-1 hat einen bekannten Bug, der zu Log-Einträgen der Form führt:

(zenity:584): GLib-WARNING **: 11:30:09.587: ../glib/glib/giounix.c:410Error while getting flags for FD: Bad file descriptor (9)
			

Die Warnung kann im Prinzip ignoriert werden.

Muss in zenity behoben werden - aktuell ist kein alternativer workaround bekannt.

Die Warnung kann beim Loggen der zenity Aufrufe gefiltert werden. Hierzu muss lediglich im Header von ot-snippet.sh das Kommentarzeichen vor dem Filterstring entfernt werden:

# Glib-warnings (arch/zenity) - details:
# https://orcus.de/main_workarounds/pub_irc/ot-snippet.htm#ki-glib
#	'Error while getting flags for FD'
			

GtkDialog warning

Wie viele andere Anwendungen ist zenity von einer Änderung in gtk betroffen, die zur Anzeige einer Warnung führt (arch,mint):

Gtk-Message: 03:21:25.615: GtkDialog mapped without a transient parent. This is discouraged.
			

Die Warnung kann im Prinzip ignoriert werden.

Muss in zenity behoben werden - aktuell ist kein alternativer workaround bekannt.

Die Warnung kann beim Loggen der zenity Aufrufe gefiltert werden. Hierzu muss lediglich im Header von ot-snippet.sh das Kommentarzeichen vor dem Filterstring entfernt werden:

# GtkDialog-warnings (arch/zenity) - details:
# https://orcus.de/main_workarounds/pub_irc/ot-snippet.htm#ki-gtkdialog
	'GtkDialog mapped without a transient parent'
			

prev. page next page / HOME / Workarounds / IRC - linux mint support /[ot-snippet.sh - simple IRC-helper]