Lazarus_Config_Dir

Für Installationen unter Linux-Systemen
Antworten
mori
Beiträge: 53
Registriert: Di 24. Okt 2006, 08:31
OS, Lazarus, FPC: Winux (L 1.1.xy FPC 2.7.1.z)
CPU-Target: xxBit
Wohnort: Mixdorf
Kontaktdaten:

Lazarus_Config_Dir

Beitrag von mori »

Hallo zusammen,
leider konnte ich mich in letzter Zeit nicht mit Lazarus und Co. beschaeftigen.
Heute kam mir aber gleich eine Idee, die ich gern umsetzen wuerde:

Hier laeuft Lazarus ausschliesslich im Userspace!
Ich moechte allerdings 3 Versionen zur Auswahl haben, was ohne weiteres moeglich ist
und derzeit auch laeuft.
Das einzige, was mich nervt ist: "LAZARUS_CONFIG_DIR"
Alle Versionen schreiben nach "~./lazarus"
Ich haette die Config's jedoch gern so abgelegt:

./lazarus # latest stable version
./lazarus_svn_2.0.4 # svn mit fpc 2.0.4 compiliert
./lazarus_svn_2.3.1 # svn mit fpc_svn compiliert

Bisher habe ich vergeblich nach einer Option gesucht, die ich Lazarus beim Start mitgeben kann.
In den Umgebungseinstellungen der IDE waere die Optionswahl sicher am besten untergebracht!
Jedesmal nach dem SVN-Update in den Makefiles zu Wuseln ist nervig.
Hat jemand eine Idee, wie ich das config_dir beim Start mitschicken kann?

Besten Dank!

MfG mori

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Ich wüsste jetzt nicht das das geht, aber du kannst doch recht einfach die verzeichnisse beim start mit einem shellscript austauschen ...
Oder du implementierst die Funktion
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

mori
Beiträge: 53
Registriert: Di 24. Okt 2006, 08:31
OS, Lazarus, FPC: Winux (L 1.1.xy FPC 2.7.1.z)
CPU-Target: xxBit
Wohnort: Mixdorf
Kontaktdaten:

Beitrag von mori »

Hallo Christian,
na logisch, das war zu einfach! ManOhMan.
Also werde ich das erst einmal per bash loesen.
Danke Dir fuer den Schlag auf den Hinterkopf!

PS.: Da kribbelt es aber gleich wieder unter den Haaren...
WiX und Batch... Die Option in den Umgebungs-Einstellungen
waere also doch was Feines :-) Vielleicht melde ich meinen
Wunsch mal in der Lazarus-ML an.

MfG mori

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Beitrag von monta »

Mir fehlt da gerade der Ansatz und das Wissen zur Shell unter Linux.

Wie soll das Scellscript denn aussehen?
Das ich das Verzeichnis erstmal in das Confi-Dir kopieren kann, bzw. einfah umbenennen ist mir ja klar, aber wie soll ich dann die Änderungen zurücksichern, bevor ich das nächste mal ne andere Konfiguration brauche?

mori
Beiträge: 53
Registriert: Di 24. Okt 2006, 08:31
OS, Lazarus, FPC: Winux (L 1.1.xy FPC 2.7.1.z)
CPU-Target: xxBit
Wohnort: Mixdorf
Kontaktdaten:

Beitrag von mori »

Hallo monta,
Du brauchst dazu ein File zum Merken.
Dort schreibst Du die aktuelle Konfig rein:
zB.: echo "lazarus_stable" > "~/mylazrc"
Jetzt willst Du angenommen "Lazarus_svn_204"
starten:
-mylazrc auslesen und Konfig-Dir unter dem
ausgelesenen Namen speichern.
".lazarus" umbenennen nach "lazarus_stable"
wenn ohne Fehler, dann
-umbenennen des _benoetigten_ Konfig-Dirs zB.:
"lazarus_svn_204" nach ".lazarus" und schreibst
ins Merkfile
zB.: echo "lazarus_svn_204" > "~/mylazrc"
Jetzt wird Lazarus aus dem richtigen Build gestartet.
cd ~/(Dir aus Merkfile) && ./startlazarus
(auch aus dem Script heraus!)
Vielleicht geht es auch noch einfachen, aber so
habe ich immer den Ueberblick, was zuletzt benutzt
wurde.
Sorry, schlecht erklaeren konnte ich schon immer gut!

MfG mori

mori
Beiträge: 53
Registriert: Di 24. Okt 2006, 08:31
OS, Lazarus, FPC: Winux (L 1.1.xy FPC 2.7.1.z)
CPU-Target: xxBit
Wohnort: Mixdorf
Kontaktdaten:

Beitrag von mori »

Ich habe mal das Script etwas erweitert.
Bitte um Fehlermeldungen und Vorschlaege.

BITTE NICHT OHNE ZU PRUEFEN UEBERNEHMEN !!!
IST NICHT INS DETAIL GETESTET!

Code: Alles auswählen

#!/bin/bash
 
set -e
 
function nodir()
{
  err=`expr $err + 1`
  echo -e "\n\n"
  echo -e " Konfig-Dir /.$1 nicht gefunden!"
  echo -e " Lazarus startet mit leerer Konfiguration!\n" 
}
 
 
function nobuilddir()
{
  err=`expr $err + 10`
  echo -e "\n\n"
  echo -e " Lazarus-Build-Dir /$1 nicht gefunden!"
  echo -e " Das Script wird beendet!\n" 
}
 
 
function switchcfg()
{
if ! [ -d "$1" ]; then
  nobuilddir "$1"
else 
  if ! [ "$lastv" == "$1" ]; then
    if [ -d ".lazarus" ]; then
      mv ".lazarus" ".$lastv"
    fi
    if [ -d ".$1" ]; then   
      mv ".$1" ".lazarus"
    else
      nodir "$1"
    fi
  fi
  echo "$1" > "$rcfile"
  cd "$1"
fi 
}
 
# ==========================================================
#                         Hauptteil
# ==========================================================
 
if [ `pidof lazarus` ]; then
  echo -e "\n ==========================================="
  echo -e " Lazarus laeuft bereits! Bitte erst beenden!"
  echo -e " ===========================================\n"
exit
fi
 
myuser="mori"
cd "/home/$myuser"
rcfile=".mylazrc"   # Merkfile
lazv1="lazarus_stable"   # Lazarus stable mit FPC 2.0.4 gebacken
lazv2="lazarus_svn_204" # Lazarus SVN mit FPC 2.0.4 gebacken
lazv3="lazarus_svn"   # Lazarus SVN mit FPC SVN gebacken
 
lastv=`tail -n1 "$rcfile"`
 
err=0
ok=false
auswahl=""
 
while [ $ok = false ]; do
  clear
  echo -e "\n\n"
  echo -e " Welche Version von Lazarus willst Du starten?\n"
  echo -e " 1) Lazarus STABLE"
  echo -e " 2) Lazarus SVN mit FPC 2.0.4"
  echo -e " 3) Lazarus SVN mit FPC SVN\n"
  read -n 1 -p " Bitte waehle 1,2,3 (Abbruch mit Ctrl-c): " auswahl
 
  case $auswahl in
    1) switchcfg "$lazv1"; ok=true;;
    2) switchcfg "$lazv2"; ok=true;;
    3) switchcfg "$lazv3"; ok=true;;
    *) ok=false;;
  esac
done
 
if [ $err -gt 9 ]; then
  exit
else
  if [ $err -gt 0 ];then
    read -n 1 -p " Taste druecken zum Start von Lazarus "
  fi
  exec=`./startlazarus &`
fi
 
exit


Schaut mal, ob da was draus zu machen ist.
Bist spaeter. MfG mori
Zuletzt geändert von mori am Di 3. Apr 2007, 20:15, insgesamt 4-mal geändert.

mori
Beiträge: 53
Registriert: Di 24. Okt 2006, 08:31
OS, Lazarus, FPC: Winux (L 1.1.xy FPC 2.7.1.z)
CPU-Target: xxBit
Wohnort: Mixdorf
Kontaktdaten:

Beitrag von mori »

Mist, das Schreiben des rcfile fehlt ja noch komplett... Das habe ich per Hand in der Konsole gemacht...Sorry!!!
Hab's gerade noch schnell dazugemalt :-)
MfG mori

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Beitrag von monta »

Danke, werd ich mir mal anschauen und ich kann mich gleich mal bisschen in die Shellscripterei einarbeiten.

mori
Beiträge: 53
Registriert: Di 24. Okt 2006, 08:31
OS, Lazarus, FPC: Winux (L 1.1.xy FPC 2.7.1.z)
CPU-Target: xxBit
Wohnort: Mixdorf
Kontaktdaten:

Beitrag von mori »

Habe schnell noch die Abfrage reingebastelt, ob lazarus schon laeuft!
s.oben
MfG mori

mori
Beiträge: 53
Registriert: Di 24. Okt 2006, 08:31
OS, Lazarus, FPC: Winux (L 1.1.xy FPC 2.7.1.z)
CPU-Target: xxBit
Wohnort: Mixdorf
Kontaktdaten:

Beitrag von mori »

Habe das Script noch etwas erweitert.
s.oben.

MfG mori

mori
Beiträge: 53
Registriert: Di 24. Okt 2006, 08:31
OS, Lazarus, FPC: Winux (L 1.1.xy FPC 2.7.1.z)
CPU-Target: xxBit
Wohnort: Mixdorf
Kontaktdaten:

Lazarus_Config_Dir - Vergesst die Script-erei!

Beitrag von mori »

Es kann so einfach sein, warum muss mich erst der "Vincent Snijders" mit der Nase drauf stossen?
Auf meinem Schlepptop, den ich eigentlich zum Proggen nutze, bleibt allerdings die Option "--help"
leer und der Prompt erscheint. Nach der Mail von Vincent habe ich auf meiner 64-bit-Kiste mit Erstaunen
feststellen muessen, dass es eigentlich garkein Problem gibt:

Code: Alles auswählen

./lazarus_stable --help would give:
 
--help or -?             this help message
 
--primary-config-path= <path>
or --pcp= <path>
                       primary config directory, where Lazarus stores its
                       config files. Default is C:\lazarus\source\lazarus
 
Try this option.

Und genau DAS funktioniert (zumindest hier auf der einen Kiste).
Also vergesst die Bastelei per Script und nutzt ./lazarus_xyz --pcp=...

MfG mori

Antworten