Seite 1 von 1
Wunsch: Vorlagen fuer opsi-newprod
Verfasst: 10 Dez 2013, 10:29
von embl-structures
Hallo,
IMHO ein sehr nuetzliches Feature fuer `opsi-newprod` waere, wenn sich - z.B. als Kommandozeilenoption - ein Vorlagenverzeichnis angeben liesse, dessen Inhalt beim Erstellen eines neuen Paketes in das Verzeichnis CLIENT_DATA kopiert wuerde. Da vermutlich jeder, der selber einige Pakete gebaut hat, nach kurzer Zeit ein Set von eigenen Vorlagen und Verzeichnisstrukturen hat, wuerde dies das manuelle Kopieren der Daten ueberfluessig machen.
Gruss
frank
Re: Wunsch: Vorlagen fuer opsi-newprod
Verfasst: 10 Dez 2013, 13:00
von n.wenselowski
Hallo frank,
wenn ich das richtig sehe, erstellt opsi-newprod die entsprechenden Ordner / Dateien während der Ausführung und die Vorlagen sind im Script hinterlegt.
Von daher ist das kein ganz so kleiner Umbau, da hier erst die Funktionalität geschaffen werden muss von einem Template-Verzeichnis aus die Dateien zu kopieren.
Ich habe dafür ein internes Ticket aufgemacht.
Wie immer kann durch einen
Support-Vertrag die Umsetzung erheblich beschleunigt werden
Mit freundlichen Grüßen
N. Wenselowski
Re: Wunsch: Vorlagen fuer opsi-newprod
Verfasst: 10 Dez 2013, 13:53
von embl-structures
n.wenselowski hat geschrieben:[...]
wenn ich das richtig sehe, erstellt opsi-newprod die entsprechenden Ordner / Dateien während der Ausführung und die Vorlagen sind im Script hinterlegt.
Von daher ist das kein ganz so kleiner Umbau, da hier erst die Funktionalität geschaffen werden muss von einem Template-Verzeichnis aus die Dateien zu kopieren.
Eigentlich ist es - wie gerade durch etwas Herumprobieren herausgefunden habe - sogar sehr einfach

(ich hatte urspruenglich gemeint, opsi-newprod sei ein kompiliertes Binary):
- Zusaetzliche Kommandozeilenoption mit Argument fuer opsi-newprod definieren
- Am Ende des Skriptes - falls dieses Argument existiert - den Inhalt des Vorlagenverzeichnisses rekursiv kopieren
Anbei ein Patch fuer opsi-newprod, welches auf sehr krude Weise die Verwendung eines Templateverzeichnisses implementiert. Aufruf mit opsi-newprod [-t <template_directory>]. "Dank" meiner Python-Unkenntnisse ohne jegliche Fehlerbehandlung und ohne jegliche Tests. Das Feintuning ueberlasse ich gerne euch, sofern ihr eine solche Funktion ueberhaupt einbauen wollt.
Code: Alles auswählen
diff -c `which opsi-newprod` opsi-newprod
*** /usr/bin/opsi-newprod 2012-10-22 13:49:43.000000000 +0200
--- opsi-newprod 2013-12-10 13:49:00.000000000 +0100
***************
*** 49,54 ****
--- 49,55 ----
# Globals
ui = None
+ usetemplate = 0
try:
t = gettext.translation('opsi-utils', '/usr/share/locale')
***************
*** 70,76 ****
destDir = os.getcwd()
try:
! (opts, args) = getopt.getopt(argv, "h")
except getopt.GetoptError:
usage()
--- 71,77 ----
destDir = os.getcwd()
try:
! (opts, args) = getopt.getopt(argv, "ht:")
except getopt.GetoptError:
usage()
***************
*** 80,85 ****
--- 81,89 ----
if (opt == "-h"):
usage()
return
+ if (opt == "-t"):
+ templatedir = arg
+ usetemplate = 1
if (len(args) > 1):
logger.error(u"Too many arguments")
***************
*** 589,594 ****
--- 593,601 ----
print >> postinst, u'#'
postinst.close()
os.chmod(os.path.join(productSourceDir, 'OPSI', 'postinst'), 0700)
+
+ if usetemplate:
+ os.system("cp -rf " + templatedir + "/* " + os.path.join(productSourceDir, 'CLIENT_DATA'))
ui.showMessage(title=_('Done'), text = _("Package source directory '%s' created") % productSourceDir, width = 70, height = 3)
pcpatch@sauron:/home/opsiproducts$
Liebe Gruesse
frank
Re: Wunsch: Vorlagen fuer opsi-newprod
Verfasst: 16 Dez 2013, 10:56
von n.wenselowski
Hallo Frank,
vermutlich war meine Schätzung zu hoch, weil ich am liebsten alles auf ein Template-basierendes System umstellen wollte
Danke für deinen Patch!
Vermutlich wird das Feature sich in ähnlicher Weise in 4.0.4.3 wiederfinden (ohne Garantie

).
Viele Grüße
Niko
Re: Wunsch: Vorlagen fuer opsi-newprod
Verfasst: 17 Dez 2013, 10:58
von n.wenselowski
n.wenselowski hat geschrieben:Vermutlich wird das Feature sich in ähnlicher Weise in 4.0.4.3 wiederfinden (ohne Garantie

).
Feature ist eingebaut und sollte mit 4.0.4.3 den Weg an die Öffentlichkeit finden.
Gruß
Niko