Skip to content

Instantly share code, notes, and snippets.

@Brawl345
Last active November 26, 2021 06:39
Show Gist options
  • Save Brawl345/8261916 to your computer and use it in GitHub Desktop.
Save Brawl345/8261916 to your computer and use it in GitHub Desktop.
Skripte
#!/bin/bash
# Baut ein Paket aus dem Arch User Repository
# © 2014 Brawl345
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
# Setup
# Standard Konfigurationsdatei
CONFIG_FILE=~/.aurbuild
# Auf Konfigurationsdatei prüfen und laden
if [[ -e $CONFIG_FILE ]]; then
# Lade Konfigurationen
source "$CONFIG_FILE" 2>/dev/null
# Geladene Daten prüfen
if [[ $BUILDDIR == "" || $REPO == "" || $REPONAME == "" ]]; then
echo -ne "Fehler beim Laden von $CONFIG_FILE...\n"
echo -ne "Bitte lösche die $CONFIG_FILE und versuche es erneut.\n"
exit 1
fi
# Neues Setup...
else
while (true); do
echo -n " # Verzeichnis, in dem das Paket gebaut wird: "
read BUILDDIR
echo -n " # Verzeichnis, in dem deine Repo liegt: "
read REPO
echo -n " # Name deiner Repo: "
read REPONAME
echo -n " # Zusätzliche makepkg Parameter: "
read MAKEPKGPARAM
echo -n " # Zusätzliche repo-add Parameter: "
read REPOADDPARAM
echo -n " # Was soll nach dem ganzen Zirkus veranstaltet werden? "
read CUSTOM
echo -ne "\n > Alles korrekt? [j/n]: "
read ANTWORT
if [[ $ANTWORT == "j" ]]; then
break;
fi
done
# Speichern...
echo "BUILDDIR=$BUILDDIR" > "$CONFIG_FILE"
echo "REPO=$REPO" >> "$CONFIG_FILE"
echo "REPONAME=$REPONAME" >> "$CONFIG_FILE"
echo "MAKEPKGPARAM=\"$MAKEPKGPARAM\"" >> "$CONFIG_FILE"
echo "REPOADDPARAM=\"$REPOADDPARAM\"" >> "$CONFIG_FILE"
echo "CUSTOM=$CUSTOM" >> "$CONFIG_FILE"
echo -ne "\n Setup abgeschlossen!\n"
fi
# Wenn nichts gesetzt ist
if [[ -z "$1" ]];
then
echo -e "Andis AUR-Builder\n"
echo "Benutzung:"
echo "$0 aur-paket [Parameter] "
echo "Parameter: --new für neues Paket"
exit 1
fi
# Variablen
PAKET="${1,,}" # nicht anpassen
TWOLETTERS="$(echo $PAKET | head -c 2)" # nicht anpassen
TARGZNAME="$PAKET.tar.gz" # nicht anpassen
PRESIGNING="y" # (y/n) - bei "y" wird zufällige Datei in /tmp/ erstellt und vor dem eigentlichen Download-Prozess gesigned. Dies ist nützlich, falls man Pakete signiert und einen Daemon laufen lässt, der nur alle paar Stunden nach dem Passwort für den Schlüssel fragt. Man kann dann das Skript einfach unbeobachtet laufen lassen, ohne, dass es beim Passwort einen time-out gibt und einem die Repo shreddert.
ZUFALLSDATEI="$RANDOM"
# Hier geht's los
# Prüfe auf REPO
if [ ! -d $REPO ];
then
echo "Erstelle $REPO"
mkdir -p "$REPO"
if [ ! -d $REPO ];
then
echo "FEHLER! "
echo "$REPO konnte nicht erstellt werden. Hast du Schreibzugriff?"
exit 1
fi
fi
# Erstelle BUILDDIR
if [ ! -d $BUILDDIR ];
then
echo "Erstelle $BUILDDIR"
mkdir -p "$BUILDDIR"
if [ ! -d $BUILDDIR ];
then
echo "FEHLER! "
echo "$BUILDDIR konnte nicht erstellt werden. Hast du Schreibzugriff?"
exit 1
fi
fi
cd "$BUILDDIR"
# PRESIGINING, falls angeschaltet
if [ "$PRESIGNING" == "y" ];
then
echo "Presigning wird ausgeführt"
touch "/tmp/$ZUFALLSDATEI"
gpg --detach-sign "/tmp/$ZUFALLSDATEI"
if [ ! -f /tmp/$ZUFALLSDATEI.sig ];
then
echo "FEHLER! "
echo "Presigning konnte nicht durchgeführt werden - breche sicherheitshalber ab"
rm "/tmp/$ZUFALLSDATEI"
exit 1
fi
echo "Presigning wurde erfolgreich ausgeführt."
rm /tmp/$ZUFALLSDATEI*
fi
# Downloade .tar.gz Paket
echo "Downloade $PAKET..."
curl -O -# "https://aur.archlinux.org/packages/$TWOLETTERS/$PAKET/$TARGZNAME"
if [ ! -f $TARGZNAME ];
then
echo "FEHLER! "
echo "Datei konnte nicht heruntergeladen werden."
exit 1
fi
# Lösche vorhandenen Ordner
if [ -d $PAKET ];
then
rm -rf $PAKET
if [ -d $PAKET ];
then
echo "FEHLER! "
echo "Verzeichnis $PAKET konnte nicht gelöscht werden."
exit 1
fi
fi
# Entpacke .tar.gz
tar -vxzf "$TARGZNAME"
if [ ! -d $PAKET ];
then
echo "FEHLER! "
echo "$TARGZNAME konnte nicht entpackt werden."
exit 1
fi
rm $TARGZNAME
cd $PAKET
makepkg $MAKEPKGPARAM
# Prüfe, ob das Bauen geklappt hat
PKGCHECK=`ls -1 *.pkg.tar.xz 2>/dev/null | wc -l`
if [ $PKGCHECK = 0 ]
then
echo "FEHLER! "
echo "PKG konnte nicht gebaut werden."
echo "Aufräumen..."
rm -rf $PAKET
exit 1
fi
# Lösche vorhandene .pkg.tar.xz
if [ ! "$2" = "--new" ];
then
rm $REPO/$PAKET*
fi
mv *.pkg.tar.xz* "$REPO"
cd $REPO
repo-add -n "$REPONAME.db.tar.gz" *.pkg.tar.xz $REPOADDPARAM
$CUSTOM
echo "Aufräumen..."
rm -rf $PAKET
echo "Erfolg! "
exit 0
#!/bin/bash
# Lädt die aktuellste WiiFlow-Beta
echo "Downloade WiiFlow"
cd /tmp
# Die aktuelle WiiFlow-Beta laden, die immer im 7Z-Format auf FIX94s Seite hochgeladen ist
wget -r --level 1 -A 7z "http://fix94.no-ip.org/wf_revs/"
cd fix94.no-ip.org/wf_revs
# Die aktuellste WiiFlow-Revision auslesen. Nicht schön, klappt aber!
basename boot* > /tmp/wiiflowrev
sed s/boot_r//g /tmp/wiiflowrev > /tmp/wiiflowrev2
REV=$(sed s/.7z//g /tmp/wiiflowrev2)
echo "WiiFlow Revision ist r$REV - 3 Sekunden zum Abbrechen"
sleep 3
notify-send -t 8000 -i /usr/share/icons/gnome/32x32/status/info.png "WiiFlow" "r$REV wird vorbereitet"
# Entpacken der 7Z
7za x boot_r* -Oex/
cd ex/
# Überflüssiges löschen
rm -r bins/ imgs/
# LAAAAANGE URL-Liste mit allen WiiFlow-relevanten Daten (Sprachdateien, icon.png, meta.xml, Hilfedateien, Einstellungen, Theme)
wget https://open-wiiflow-mod.googlecode.com/svn/trunk/wii/apps/wiiflow/icon.png https://open-wiiflow-mod.googlecode.com/svn/trunk/wii/apps/wiiflow/meta.xml https://open-wiiflow-mod.googlecode.com/svn/trunk/wii/docs/Controls.txt https://open-wiiflow-mod.googlecode.com/svn/trunk/wii/docs/FAQ.txt https://open-wiiflow-mod.googlecode.com/svn/trunk/wii/docs/Readme.txt https://open-wiiflow-mod.googlecode.com/svn/trunk/wii/wiiflow/Languages/arab.ini https://open-wiiflow-mod.googlecode.com/svn/trunk/wii/wiiflow/Languages/brazilian.ini https://open-wiiflow-mod.googlecode.com/svn/trunk/wii/wiiflow/Languages/chinese_s.ini https://open-wiiflow-mod.googlecode.com/svn/trunk/wii/wiiflow/Languages/chinese_t.ini https://open-wiiflow-mod.googlecode.com/svn/trunk/wii/wiiflow/Languages/danish.ini https://open-wiiflow-mod.googlecode.com/svn/trunk/wii/wiiflow/Languages/dutch.ini https://open-wiiflow-mod.googlecode.com/svn/trunk/wii/wiiflow/Languages/english.ini https://open-wiiflow-mod.googlecode.com/svn/trunk/wii/wiiflow/Languages/finnish.ini https://open-wiiflow-mod.googlecode.com/svn/trunk/wii/wiiflow/Languages/french.ini https://open-wiiflow-mod.googlecode.com/svn/trunk/wii/wiiflow/Languages/gallego.ini https://open-wiiflow-mod.googlecode.com/svn/trunk/wii/wiiflow/Languages/german.ini https://open-wiiflow-mod.googlecode.com/svn/trunk/wii/wiiflow/Languages/hungarian.ini https://open-wiiflow-mod.googlecode.com/svn/trunk/wii/wiiflow/Languages/italian.ini https://open-wiiflow-mod.googlecode.com/svn/trunk/wii/wiiflow/Languages/japanese.ini https://open-wiiflow-mod.googlecode.com/svn/trunk/wii/wiiflow/Languages/korean.ini https://open-wiiflow-mod.googlecode.com/svn/trunk/wii/wiiflow/Languages/norwegian.ini https://open-wiiflow-mod.googlecode.com/svn/trunk/wii/wiiflow/Languages/polish.ini https://open-wiiflow-mod.googlecode.com/svn/trunk/wii/wiiflow/Languages/portuguese.ini https://open-wiiflow-mod.googlecode.com/svn/trunk/wii/wiiflow/Languages/russian.ini https://open-wiiflow-mod.googlecode.com/svn/trunk/wii/wiiflow/Languages/spanish.ini https://open-wiiflow-mod.googlecode.com/svn/trunk/wii/wiiflow/Languages/swedish.ini https://open-wiiflow-mod.googlecode.com/svn/trunk/wii/wiiflow/Languages/tagalog.ini https://open-wiiflow-mod.googlecode.com/svn/trunk/wii/wiiflow/Languages/turkish.ini https://open-wiiflow-mod.googlecode.com/svn/trunk/wii/wiiflow/boxcovers/JODI.png https://open-wiiflow-mod.googlecode.com/svn/trunk/wii/wiiflow/fanart/GAMEID.ini https://open-wiiflow-mod.googlecode.com/svn/trunk/wii/wiiflow/help/danish.txt https://open-wiiflow-mod.googlecode.com/svn/trunk/wii/wiiflow/help/dutch.txt https://open-wiiflow-mod.googlecode.com/svn/trunk/wii/wiiflow/help/french.txt https://open-wiiflow-mod.googlecode.com/svn/trunk/wii/wiiflow/help/german.txt https://open-wiiflow-mod.googlecode.com/svn/trunk/wii/wiiflow/help/italian.txt https://open-wiiflow-mod.googlecode.com/svn/trunk/wii/wiiflow/help/spanish.txt https://open-wiiflow-mod.googlecode.com/svn/trunk/wii/wiiflow/settings/gameconfig1.ini https://open-wiiflow-mod.googlecode.com/svn/trunk/wii/wiiflow/settings/gameconfig2.ini https://open-wiiflow-mod.googlecode.com/svn/trunk/wii/wiiflow/source_menu/Setup.txt https://open-wiiflow-mod.googlecode.com/svn/trunk/wii/wiiflow/themes/default.ini
# Erstelle der WiiFlow-Ordner
mkdir apps apps/wiiflow-beta docs wiiflow wiiflow/Languages wiiflow/boxcovers wiiflow/fanart wiiflow/help wiiflow/settings wiiflow/source_menu wiiflow/themes
# Ein paar mv-Kommandos zum Verschieben der Daten
mv boot.dol icon.png meta.xml apps/wiiflow-beta
mv Controls.txt FAQ.txt Readme.txt docs/
mv GAMEID.ini wiiflow/fanart
mv gameconfig*.ini wiiflow/settings
mv default.ini wiiflow/themes
mv Setup.txt wiiflow/source_menu
mv *.txt wiiflow/help
mv *.ini wiiflow/Languages
mv JODI.png wiiflow/boxcovers
# Zippen und verschieben
zip -r WiiFlow-Beta.zip *
mv WiiFlow-Beta.zip "~/Downloads/WiiFlow Beta.zip"
notify-send -t 8000 -i /usr/share/icons/gnome/32x32/status/info.png "WiiFlow" "ABGESCHLOSSEN!"
exit 0
#!/bin/sh
# Liest Link aus Zwischenablage ein, fragt per wget den Server nach der richtigen URL und fügt ihn per xclip wieder ein
# xsel, xclip und wget benötigt
# Lese Adresse aus der Zwischenablage ein
ADRESSE=$(xsel -b)
echo "Vorgang eingeleitet - $ADRESSE wird ausgelesen..."
# notify-send -t 5000 -i /usr/share/icons/gnome/32x32/status/dialog-warning.png "Vorgang eingeleitet" "$ADRESSE wird ausgelesen..."
# Frage per wget den Server nach der richtigen Location
URL=$(wget --max-redirect=0 --server-response -qO- "$ADRESSE" 2>&1 | grep [Ll]ocation | awk '{print $2}')
# Umweg über /tmp/, da xclip zu doof ist oder ich zu doof für xclip
echo "$URL"
echo "$URL" > /tmp/linkextender
# Füge Link in Zwischenablage ein
cat /tmp/linkextender | xclip -selection clipboard
notify-send -t 8000 -i /usr/share/icons/gnome/32x32/status/stock_attach.png "$ADRESSE ist" "$URL"
# rm /tmp/linkextender
exit 0
#!/bin/bash
#
# Dieses Skript sichert die Namen der installierten Pakete (auch die aus dem AUR) in einer Liste, die Pacman.conf und die mirrorlist, damit du
# alle nach einer Neuinstallation einfach wiederherstellen kannst!
#
# Du benötigst:
# Pacman-Paketverwaltung
# libnotify
# tar
# angepasste Variablen für externe Festplatte.
#
# Siehe zur Wiederherstellung: https://wiki.archlinux.org/index.php/pacman_Tips#Backing_up_and_retrieving_a_list_of_installed_packages
#
# © 2014 Brawl345
# Variablen setzen
SICHERUNGSNAME="Pacman.tar.gz"
SICHERUNGSZIEL="$HOME/Dokumente/"
EXTERNESICHERUNG="1" # Ein zweites Sicherungsziel festlegen (z.B. Externe Festplatte)? 0 = aus; 1 = an
EXTERNEHDD="/run/media/$USER/PLATTE"
EXTERNESSICHERUNGSZIEL="/run/media/$USER/PLATTE/GGF/UNTERVERZEICHNISSE/"
# ------------------- AB HIER NICHTS MEHR ANPASSEN ------------------- #
# Paketliste sichern
cd ~/
pacman -Qqen > pkglist
pacman -Qqm > pkglist-aur
# Pacman.conf + mirrorlist sichern
cp /etc/pacman.conf pacman.conf
cp /etc/pacman.d/mirrorlist mirrorlist
# Packe die Sicherung in eine .tar.gz
tar -czf "$SICHERUNGSNAME" pacman.conf pkglist pkglist-aur mirrorlist
# Sicherung wird in "Dokumente" verschoben, vorhandene überschrieben
cp "$SICHERUNGSNAME" "$SICHERUNGSZIEL"
# Sicherung auf externe Festplatte speichern
if [ "$EXTERNESICHERUNG" == "1" ];
then
if [ -d "$EXTERNEHDD" ];
then
if [ -d "$EXTERNESSICHERUNGSZIEL" ];
then
cp "$SICHERUNGSNAME" "$EXTERNESSICHERUNGSZIEL"
else
mkdir -p "$EXTERNESSICHERUNGSZIEL"
cp "$SICHERUNGSNAME" "$EXTERNESSICHERUNGSZIEL"
fi
else
echo "Externes Sicherungsziel nicht angeschlossen - Überspringe..."
fi
fi
# Aufräumen
rm pkglist pkglist-aur pacman.conf mirrorlist $SICHERUNGSNAME
# Benachrichtigung senden
if [ "$EXTERNESICHERUNG" == "1" ];
then
if [ -d "$EXTERNEHDD" ];
then
notify-send -t 8000 -i /usr/share/icons/gnome/32x32/status/info.png "Ausgeführt" "Die Sicherung der Pakete und Sources wurde erfolgreich ausgeführt - es wurde auch auf die externe Festplatte gesichert."
echo "Die Sicherung der Pakete und Sources wurde erfolgreich ausgeführt - es wurde auch auf die externe Festplatte gesichert."
else
notify-send -t 8000 -i /usr/share/icons/gnome/32x32/status/info.png "Ausgeführt" "Die Sicherung der Pakete und Sources wurde erfolgreich ausgeführt."
echo "Die Sicherung der Pakete und Sources wurde erfolgreich ausgeführt."
fi
else
notify-send -t 8000 -i /usr/share/icons/gnome/32x32/status/info.png "Ausgeführt" "Die Sicherung der Pakete und Sources wurde erfolgreich ausgeführt."
echo "Die Sicherung der Pakete und Sources wurde erfolgreich ausgeführt."
fi
#!/bin/bash
# Du benötigst:
# apt-get deb. Paketverwaltung (Ubuntu und Derrivate)
# libnotify-bin
# tar
# Siehe zur Wiederherstellung: http://wiki.ubuntuusers.de/Paketverwaltung/Tipps#Paketliste-zur-Wiederherstellung-erzeugen
#
# © 2014 Brawl345
# Variablen setzen
SICHERUNGSNAME="Paketverwaltung.tar.gz"
SICHERUNGSZIEL="$HOME/Dokumente/"
EXTERNESICHERUNG="1" # Ein zweites Sicherungsziel festlegen (z.B. Externe Festplatte)? 0 = aus; 1 = an
EXTERNEHDD="/media/$USER/PLATTE"
EXTERNESSICHERUNGSZIEL="/media/$USER/PLATTE/GENAUES/UNTERVERZEICHNIS/"
# ------------------- AB HIER NICHTS MEHR ANPASSEN ------------------- #
# Pakete und deren Status sichern
dpkg --get-selections | awk '!/deinstall|purge|hold/ {print $1}' > ~/packages.list
apt-mark showauto > ~/package-states-auto
# Sources sichern
find /etc/apt/sources.list* -type f -name '*.list' -exec bash -c 'echo -e "\n## $1 ";grep "^[[:space:]]*[^#[:space:]]" ${1}' _ {} \; > ~/sources.list.sav
# Packe die Sicherung in eine .tar.gz
cd ~/
tar -czf "$SICHERUNGSNAME" packages.list package-states-auto sources.list.sav
# Sicherung wird in "Dokumente" verschoben, vorhandene überschrieben
cp "$SICHERUNGSNAME" "$SICHERUNGSZIEL"
# Sicherung auf externe Festplatte speichern
if [ "$EXTERNESICHERUNG" == "1" ];
then
if [ -d "$EXTERNEHDD" ];
then
if [ -d "$EXTERNESSICHERUNGSZIEL" ];
then
cp "$SICHERUNGSNAME" "$EXTERNESSICHERUNGSZIEL"
else
mkdir -p "$EXTERNESSICHERUNGSZIEL"
cp "$SICHERUNGSNAME" "$EXTERNESSICHERUNGSZIEL"
fi
else
echo "Externes Sicherungsziel nicht angeschlossen - Überspringe..."
fi
fi
# Aufräumen
rm packages.list package-states-auto sources.list.sav $SICHERUNGSNAME
# Benachrichtigung senden
if [ "$EXTERNESICHERUNG" == "1" ];
then
if [ -d "$EXTERNEHDD" ];
then
notify-send -t 8000 -i /usr/share/icons/gnome/32x32/status/info.png "Ausgeführt" "Die Sicherung der Pakete und Sources wurde erfolgreich ausgeführt - es wurde auch auf die externe Festplatte gesichert."
echo "Die Sicherung der Pakete und Sources wurde erfolgreich ausgeführt - es wurde auch auf die externe Festplatte gesichert."
else
notify-send -t 8000 -i /usr/share/icons/gnome/32x32/status/info.png "Ausgeführt" "Die Sicherung der Pakete und Sources wurde erfolgreich ausgeführt."
echo "Die Sicherung der Pakete und Sources wurde erfolgreich ausgeführt."
fi
else
notify-send -t 8000 -i /usr/share/icons/gnome/32x32/status/info.png "Ausgeführt" "Die Sicherung der Pakete und Sources wurde erfolgreich ausgeführt."
echo "Die Sicherung der Pakete und Sources wurde erfolgreich ausgeführt."
fi
#!/bin/sh
# Macht einen Screenshot mit Scrot, lädt ihn auf Dropbox hoch, erzeugt einen Direktlink und kopiert diesen in die Zwischenablage
# © 2014 Brawl345
# Benötigt wird der "Dropbox-Uploader" von https://github.com/andreafabrizi/Dropbox-Uploader, welcher mit einem einfachen "curl "https://raw.github.com/andreafabrizi/Dropbox-Uploader/master/dropbox_uploader.sh" -o dropbox_uploader.sh" geholt werden kann. Dieser muss einmalig aufgerufen werden und alle Einstellungen vorgenommen werden. Erzeuge dann einen Symlink vom dropbox_uploader.sh in /usr/local/bin und nenne diese "dropbox_uploader"
# Die App sollte VOLLEN DROPBOX-ZUGRIFF haben.
#
# Optionen:
# -s: Auswählen eines Bereiches
# -u: Screenshot des aktuellen Fensters machen (nutzt scrot -ub für den Rahmen)
# --help: Hilfe anzeigen
# Setze Variablen
dbfolder="Bilder/Bildschirmfotos" # Verzeichnis, in das die Bilder auf Dropbox hochgeladen werden
scrotdir="$HOME/Bilder/Bildschirmfotos" # Das Verzeichnis, in dem die Bilder lokal gespeichert werden
scrotname="Bilschirmfoto vom `date +%Y-%m-%d` `date +%T`.png" # Name des Bildes
# Prüfe, ob User eine Option gesetzt hat
if [ "$1" = "-s" ]; then
gnome-screenshot -af "$scrotdir/$scrotname"
if [ ! -f "$scrotdir/$scrotname" ];
then
echo "Vorgang wurde von User abgebrochen"
exit 0
fi
else
if [ "$1" = "-u" ]; then
gnome-screenshot -wbf "$scrotdir/$scrotname" --border-effect=shadow
if [ ! -f "$scrotdir/$scrotname" ];
then
echo "Vorgang wurde von User abgebrochen"
exit 0
fi
else
if [ "$1" = "--help" ]; then
echo "Screenshot To Dropbox by Andreas Bielawski"
echo "Benutzung : ./screenshot [OPTIONEN]"
echo " Internetverbindung benötigt. Ohne gibt es lustige Nebenwirkungen!"
echo " Du musst dir den Dropbox-Uploader von"
echo " https://github.com/andreafabrizi/Dropbox-Uploader"
echo " laden und einen Systemlink in /usr/local/bin mit dem Namen"
echo " 'dropbox_uploader' erstellen!"
echo ""
echo " Keine Option Den gesamten Bildschirm aufnehmen"
echo " -s Einen frei wählbaren Bereich aufnehmen"
echo " -u Das aktuelle Fenster aufnehmen"
echo ""
echo "<http://wiidatabase.de/>"
exit 0
else
gnome-screenshot -f "$scrotdir/$scrotname"
if [ ! -f "$scrotdir/$scrotname" ];
then
echo "Vorgang wurde von User abgebrochen"
exit 0
fi
fi
fi
fi
# 1 Sekunde Wartezeit, damit die Benachrichtigung nicht mit auf dem Screenshot ist.
sleep 1
# Sende Benachrichtigung
cd "$scrotdir"
notify-send -t 3000 -i /usr/share/icons/gnome/32x32/status/info.png "Screenshot" "...wird hochgeladen"
# Uploade den Screenshot
dropbox_uploader -p upload "$scrotname" "$dbfolder/$scrotname"
# Teile den Screenshot, nehme den Link...
URL=$(dropbox_uploader share "$dbfolder/$scrotname" | awk '{print $4}')
# ...und ersetze "www.dropbox.com" durch "dl.dropboxusercontent.com" und füge diesen in die Zwischenablage ein. Bei dl.dropboxusercontent.com wird das Bild direkt angezeigt.
echo "$URL" > /tmp/dropboxlink
sed s/www.dropbox/dl.dropboxusercontent/g /tmp/dropboxlink | xclip -selection clipboard
notify-send -t 8000 -i /usr/share/icons/gnome/32x32/status/info.png "Screenshot" "Link in Zwischenablage kopiert"
exit 0
#!/bin/sh
# Macht einen Screenshot mit Scrot, lädt ihn auf Dropbox hoch, erzeugt einen Direktlink und kopiert diesen in die Zwischenablage
# © 2014 Brawl345
# Benötigt wird der "Dropbox-Uploader" von https://github.com/andreafabrizi/Dropbox-Uploader, welcher mit einem einfachen "curl "https://raw.github.com/andreafabrizi/Dropbox-Uploader/master/dropbox_uploader.sh" -o dropbox_uploader.sh" geholt werden kann. Dieser muss einmalig aufgerufen werden und alle Einstellungen vorgenommen werden. Erzeuge dann einen Symlink vom dropbox_uploader.sh in /usr/local/bin und nenne diese "dropbox_uploader"
# Die App sollte VOLLEN DROPBOX-ZUGRIFF haben.
#
# Optionen:
# -s: Auswählen eines Bereiches
# -u: Screenshot des aktuellen Fensters machen (nutzt scrot -ub für den Rahmen)
# --help: Hilfe anzeigen
# Setze Variablen
dbfolder="Bilder/Bildschirmfotos" # Verzeichnis, in das die Bilder auf Dropbox hochgeladen werden
scrotdir="$HOME/Bilder/Bildschirmfotos" # Das Verzeichnis, in dem die Bilder lokal gespeichert werden
scrotname="Bilschirmfoto vom `date +%Y-%m-%d` `date +%T`.png" # Name des Bildes
# Prüfe, ob User eine Option gesetzt hat
if [ "$1" = "-s" ]; then
scrot -s "$scrotdir/$scrotname"
if [ ! -f "$scrotdir/$scrotname" ];
then
echo "Vorgang wurde von User abgebrochen"
exit 0
fi
else
if [ "$1" = "-u" ]; then
scrot -ub "$scrotdir/$scrotname"
if [ ! -f "$scrotdir/$scrotname" ];
then
echo "Vorgang wurde von User abgebrochen"
exit 0
fi
else
if [ "$1" = "--help" ]; then
echo "Screenshot To Dropbox by Andreas Bielawski"
echo "Benutzung : ./screenshot [OPTIONEN]"
echo " Internetverbindung benötigt. Ohne gibt es lustige Nebenwirkungen!"
echo " Du musst dir den Dropbox-Uploader von"
echo " https://github.com/andreafabrizi/Dropbox-Uploader"
echo " laden und einen Systemlink in /usr/local/bin mit dem Namen"
echo " 'dropbox_uploader' erstellen!"
echo ""
echo " Keine Option Den gesamten Bildschirm aufnehmen"
echo " -s Einen frei wählbaren Bereich aufnehmen"
echo " -u Das aktuelle Fenster aufnehmen"
echo ""
echo "<http://wiidatabase.de/>"
exit
else
scrot "$scrotdir/$scrotname"
if [ ! -f "$scrotdir/$scrotname" ];
then
echo "Vorgang wurde von User abgebrochen"
exit 0
fi
fi
fi
fi
# 1 Sekunde Wartezeit, damit die Benachrichtigung nicht mit auf dem Screenshot ist.
sleep 1
# Sende Benachrichtigung
cd "$scrotdir"
notify-send -t 3000 -i /usr/share/icons/gnome/32x32/status/info.png "Screenshot" "...wird hochgeladen"
# Uploade den Screenshot
dropbox_uploader upload "$scrotname" "$dbfolder/$scrotname"
# Teile den Screenshot, nehme den Link...
URL=$(dropbox_uploader share "$dbfolder/$scrotname" | awk '{print $4}')
# ...und ersetze "www.dropbox.com" durch "dl.dropboxusercontent.com" und füge diesen in die Zwischenablage ein. Bei dl.dropboxusercontent.com wird das Bild direkt angezeigt.
echo "$URL" > /tmp/dropboxlink
sed s/www.dropbox/dl.dropboxusercontent/g /tmp/dropboxlink | xclip -selection clipboard
notify-send -t 8000 -i /usr/share/icons/gnome/32x32/status/info.png "Screenshot" "Link in Zwischenablage kopiert"
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment