• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Xdialog für apt

A

Anonymous

Gast
==> EDIT MODERATOR
wurde aus diesem Thread abgespalten:
apt installiert nicht / apt -f install meldet Fehler
http://www.linux-club.de/viewtopic.php?t=26427
<== EDIT MODERATOR


oc2pus schrieb:
Dieses braucht XDialog.
Hallo oc2pus.
Ich habe mir so einige Scripte mit Xdialog ausgestattet, nur schade das Xdialog nicht per apt vefügbar ist. Ich hab mir das bisher immer selber übersetzt. Früher war das bei SuSE mal dabei, nun aber nicht mehr. Vielleicht bist da ja so nett es in deinem Repositorie zür Verfügung zustellen. Das ist bestimmt auch für andere Leute interesant. In den Sourcen ist ein fertiger Specfile dabei. Ansonsten wird mein Compiler bei einer neuen Version wieder seine Arbeit leisten. Hab mir bisher immer ein /usr/local Paket übersetzt :oops:

Ich hoffe ich überlaste dich nicht mit der Bitte.

http://thgodef.nerim.net/xdialog/

Gruß Holgi...
 

oc2pus

Ultimate Guru
misterhsp schrieb:
Ich habe mir so einige Scripte mit Xdialog ausgestattet, nur schade das Xdialog nicht per apt vefügbar ist. Ich hab mir das bisher immer selber übersetzt. Früher war das bei SuSE mal dabei, nun aber nicht mehr. Vielleicht bist da ja so nett es in deinem Repositorie zür Verfügung zustellen. Das ist bestimmt auch für andere Leute interesant. In den Sourcen ist ein fertiger Specfile dabei. Ansonsten wird mein Compiler bei einer neuen Version wieder seine Arbeit leisten. Hab mir bisher immer ein /usr/local Paket übersetzt :oops:

deinem Wunsche kann entsprochen werden ;)
 
OP
A

Anonymous

Gast
Ein großes dickes Dankeschön an oc2pus.

Und für alle die jetzt mal sehen möchen was mit Xdialog so möglich ist,
hier ein kleiner Script mit dem ich meine CD-ROMs aus Zeitschriften
archiviere. Man beachte dieses ist ein Kornshellscript. Des weiteren werden
die findutils-locate benötigt. Und natürlich an seine eigenen Verhältnisse anpassen.


Code:
#!/bin/ksh
#.....................................................................................
#.... Initialsierungen ...............................................................
#.....................................................................................
trap ''  1 2 3 15  # Ab jetzt die Signale 1 2 3 15 ignorieren ........................
#
DIALOG=`which Xdialog`
if [ "$DIALOG" = "" ]
	then
	echo "Xdialog not found."
	echo "required by `basename $0`."
	exit 1
fi
#
typeset -l -L1 ANTWORT
alias open=exec
typeset TMPDIR="/tmp"                  # hier erwünschten Pfad anpassen.
CDROM_IMAGES="$HOME/CD-Rom-Images"     # hier erwünschten Pfad anpassen.
CDROM_ARCHIVE="$HOME/datacd.db"        # hier erwünschten Pfad anpassen.
CDROM_DEV="/dev/dvd"                   # hier CD-ROM Device entsprechend ändern (Defaulf Einstellung).
MOUNT_POINT="/media/dvd"               # hier den Mountpunkt entsprechend ändern (Defaulf Einstellung).
LAUFWERK="DVD-ROM"                     # hier den Laufwerksnamen setzen (Defaulf Einstellung).
#
#.....................................................................................
#.... Function laufwerwaehlen ........................................................
#.....................................................................................
function laufwerwaehlen
{
#
"$DIALOG" --title "Daten CD-Verwaltung" \
--radiolist "Laufwerk auswählen." 0 0 0 \
		"/media/dvd" "(DVD-ROM Laufwerk)" on \
		"/media/cdrecorder" "(CD-Brenner)" off 2> "$TMPDIR"/mountpath.$$
#
	MOUNT_POINT=$(cat "$TMPDIR"/mountpath.$$)
	rm "$TMPDIR"/mountpath.$$
#
		if [[ -z "$MOUNT_POINT" ]]
			then return
		fi
#
	if [[ "$MOUNT_POINT" = "/media/dvd" ]]
		then	CDROM_DEV="/dev/dvd"
			LAUFWERK="DVD-ROM"
	fi
#
	if [[ "$MOUNT_POINT" = "/media/cdrecorder" ]]
		then	CDROM_DEV="/dev/cdrecorder"
			LAUFWERK="CD-Brenner"
	fi
}
#.... Function laufwerwaehlen Ende ...................................................
#
#.....................................................................................
#.... Function cd_lesen ..............................................................
#.....................................................................................
function cd_lesen
{
( sleep 1;echo "X"; ( mount "$CDROM_DEV" ; find "$MOUNT_POINT" -maxdepth 7 -print | sed "s;^$MOUNT_POINT;$1;" > "$CDROM_IMAGES"/$1.cdrom ; eject "$CDROM_DEV" ) ) | \
"$DIALOG" --title "Daten CD-Verwaltung" --no-buttons \
--infobox "\nCD wird eingelesen.\n\nbitte warten..." 10 35 0
UPDATE="YES"
}
#.... Function cd_lesen Ende .........................................................
#
#.....................................................................................
#.... Function neueintrag  ...........................................................
#.....................................................................................
function neueintrag
{
typeset INPUTDAT="$TMPDIR/dialinput.$$"
	"$DIALOG" --title "Daten CD-Verwaltung" \
	--inputbox "Eindeutigen Namen für die CD:\nReturn = zurück" 0 0 2>"$INPUTDAT"
	ANTWORT="$?"
	if [[ "$ANTWORT" = "0" ]]
		then	CD_NAME=$(cat "$INPUTDAT")
			rm -f "$INPUTDAT"
		else	rm -f "$INPUTDAT"
			return 0
        fi
#
	while [[ -n "$CD_NAME" ]]; do
	cd_lesen "$CD_NAME"

	"$DIALOG" --title "Daten CD-Verwaltung" \
	--inputbox "Eindeutigen Namen für die nächste CD:\nReturn = zurück" 0 0 2>"$INPUTDAT"
	ANTWORT="$?"
		if [[ "$ANTWORT" = "0" ]]
			then	CD_NAME=$(cat "$INPUTDAT")
				rm -f "$INPUTDAT"
			else	rm -f "$INPUTDAT"
				return 0
		fi
	done
# datenbank_aktualisieren
}
#.... Function neueintrag Ende .......................................................
#
#.....................................................................................
#... Function Datenbank aktualisieren ................................................
#.....................................................................................
function datenbank_aktualisieren
{
( sleep 1;echo "X"; ( cat "$CDROM_IMAGES"/*.cdrom | sort -f | /usr/lib/find/frcode >"$CDROM_ARCHIVE" umount "$CDROM_DEV" ) 2>/dev/null ) | \
"$DIALOG" --title "Daten CD-Verwaltung" --no-buttons \
--infobox "Aktualisiere Datenbank.\n\nbitte warten..." 10 35 0
}
#.....................................................................................
#... Function Datenbank aktualisieren Ende ...........................................
#.....................................................................................
#
#.....................................................................................
#.... Function loeschen ..............................................................
#.....................................................................................
function loeschen
{
DATEI=`"$DIALOG" --stdout --title "Zu löschender CD-Eintrag auswählen." --fselect "$CDROM_IMAGES" 0 0`
case "$?" in
	0)	rm -f "$DATEI"
		UPDATE="YES" ;;
	*)	return 0 ;;
esac
}
#.....................................................................................
#.... Function loeschen Ende .........................................................
#.....................................................................................
#
#.....................................................................................
#... Function suche ..................................................................
#.....................................................................................
function suche
{
        typeset INPUTDAT="$TMPDIR/dialinput.$$"
        typeset AUSGABEDAT="$TMPDIR/ausgabe.$$"
        typeset TMPDAT="$TMPDIR/gefunden.$$"
        typeset MUSTER
#.....................................................................................
	if (($# == 0))
		then	"$DIALOG" --title "Daten CD-Verwaltung" \
			--inputbox "Muster für das zu suchende Programm:\nReturn = zurück" 0 0 2>"$INPUTDAT"
			ANTWORT="$?"
			if [[ "$ANTWORT" = "0" ]]
				then	MUSTER=$(cat "$INPUTDAT")
					rm -f "$INPUTDAT"
				else	rm -f "$INPUTDAT"
					return 0
                	fi
		else MUSTER="$1"
	fi
#
while [[ -n "$MUSTER" ]]
do	( sleep 1;echo "X"; ( locate -d "$CDROM_ARCHIVE" "$MUSTER" >"$TMPDAT" 2>/dev/null
		if [[ -s "$TMPDAT" ]]
			then	open 3< "$TMPDAT"
				while read -u3 -r ZEILE
				do	echo "$ZEILE" >>"$AUSGABEDAT"
				done
				rm -f "$TMPDAT"
				"$DIALOG" --title "Daten CD-Verwaltung" --no-cancel --textbox "$AUSGABEDAT" 0 0
				rm -f "$AUSGABEDAT"
			else	"$DIALOG" --title "Daten CD-Verwaltung" --beep \
				--msgbox "\nProgramm '$MUSTER' nicht gefunden" 0 0
				rm -f "$TMPDAT"
                fi ) ) | \
		"$DIALOG" --title "Daten CD-Verwaltung" --no-buttons \
		--infobox "\ndurchsuche Datenbank.\n\nbitte warten..." 10 35 0
#
	if (($# != 0))
		then break
	fi
#
	"$DIALOG" --title "Daten CD-Verwaltung" \
	--inputbox "Muster für das zu suchende Programm:\nReturn = zurück" 0 0 2>"$INPUTDAT"
	ANTWORT="$?"
	if [[ "$ANTWORT" = "0" ]]
		then	MUSTER=$(cat "$INPUTDAT")
			rm -f "$INPUTDAT"
		else	rm -f "$INPUTDAT"
			return 0
	fi
done
}
#.... Function suche Ende ............................................................
#
#.....................................................................................
#.... Hauptprogramm ..................................................................
#.....................................................................................
#
if [[ ! -f "$CDROM_ARCHIVE" ]]
then	"$DIALOG" --title "H S P" \
--yesno "CD-ROM Archive\n'$CDROM_ARCHIVE'\nexistiert nicht.\n\nSoll es erstellt werden ?" 0 0
#
	AUSWAHL="$?"
	if [[ "$AUSWAHL" != "0" ]]
	then	 exit 1
	fi
	>"$CDROM_ARCHIVE" ||
		{
		"$DIALOG" --title "Information" --beep \
		--msgbox "Anlegen von CD-ROM Archive\n'$CDROM_ARCHIVE' nicht möglich" 0 0 >&2
		exit 1
		}
fi
#
if [[ ! -d "$CDROM_IMAGES" ]]
	then	"$DIALOG" --title "H S P" \
	--yesno "CD-ROM Image Verzeichnis\n'$CDROM_IMAGES'\nexistiert nicht.\n\nSoll es erstellt werden ?" 0 0
	AUSWAHL="$?"
	if [[ "$AUSWAHL" != "0" ]]
		then	exit 1
	fi
fi
mkdir -p "$CDROM_IMAGES"
#.....................................................................................
if (( $# != 0 ))
	then	for i
		do suche "$i"
		done
	exit 0
fi
#.....................................................................................
while : ; do
typeset DIALMENU="$TMPDIR/dialmenu.$$"
DATEN_ANZ=`ls "$CDROM_IMAGES" | wc -l`
#
"$DIALOG" --title "H S P" \
--menu "Daten CD-Verwaltung\n\n\
Datenbank enthält $DATEN_ANZ Datensätze." 15 45 5 \
	"1" "Programm suchen." \
	"2" "Neueintrag." \
	"3" "Eintrag löschen." \
	"4" "Laufwerk wählen (Ausgewählt ist "$LAUFWERK")." \
	"5" "CD-Verwaltung beenden." 2>"$DIALMENU"
#
	AUSWAHL="$?"
	if [[ "$AUSWAHL" = "0" ]]
		then	MENUPKT=$(cat "$DIALMENU")
			if [[ "$MENUPKT" = "1" ]] ; then suche ; fi
			if [[ "$MENUPKT" = "2" ]] ; then neueintrag ; fi
			if [[ "$MENUPKT" = "3" ]] ; then loeschen ; fi
			if [[ "$MENUPKT" = "4" ]] ; then laufwerwaehlen ; fi
				if [[ "$MENUPKT" = "5" ]]
					then	rm -f "$DIALMENU"
						break
                        	fi
		else	rm -f "$DIALMENU"
			break
	fi
done

if [[ "$UPDATE" = "YES" ]]
	then	datenbank_aktualisieren
fi
#
chmod 600 $CDROM_IMAGES/*
chmod 600 $CDROM_ARCHIVE
 

oc2pus

Ultimate Guru
herpes schrieb:
Xdialog liegt vor im Repository suser-oc2pus für SuSE-9.2 und SuSE-9.1
liegt bitte wo???

füge folgende Zeile in deine /etc/apt/sources.list ein:
Code:
rpm http://ftp.gwdg.de/pub/linux/suse/apt/ SuSE/9.2-i386 suser-oc2pus

bzw 9.1 oder 8.2
danach apt update nicht vergessen :)

Installation von Xdialog erfolgt dann mit
apt install Xdialog
 
Oben