GeoGet

Complete geocaching solutions

User Tools

Site Tools


user:skripty:autor:gip

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
user:skripty:autor:gip [2013/11/10 12:21] – [Metasoubor plugin.meta.ini] gorduser:skripty:autor:gip [2020/12/27 11:51] (current) mikrom
Line 1: Line 1:
 ===== Tvorba instalačních balíčků *.gip ===== ===== Tvorba instalačních balíčků *.gip =====
 +
 ==== Co je to GIP? ==== ==== Co je to GIP? ====
 GIP je balíček, který obsahuje plugin pro program GeoGet. Pomocí balíčků je řešena automatizovaná instalace pluginů a online kontrola dostupnosti případných novějších verzí pluginu. Je to standardní soubor ** *.zip ** se změněnou příponou a definovaným obsahem. GeoGet podle tohoto obsahu: GIP je balíček, který obsahuje plugin pro program GeoGet. Pomocí balíčků je řešena automatizovaná instalace pluginů a online kontrola dostupnosti případných novějších verzí pluginu. Je to standardní soubor ** *.zip ** se změněnou příponou a definovaným obsahem. GeoGet podle tohoto obsahu:
Line 8: Line 9:
   * pro správně nainstalovaný plugin umí určit jeho verzi a vyhledat verzi novější, pokud existuje   * pro správně nainstalovaný plugin umí určit jeho verzi a vyhledat verzi novější, pokud existuje
  
-<box round 95#DEE7EC+<WRAP center round important 80%> 
-:!: Je velmi důležité zvolit správně jméno pluginu (a tedy i instalačního souboru). Jednak by mělo být výstižné a také by mělo být v rámci všech pluginů jedinečné a pokud možno nezaměnitelné s jiným pluginem. Odstrašujícím příkladem mohou být [[user:skript:ggstat|GgStat]] a naštěstí již neexistující **ggstat2**, který způsoboval zmatky u některých uživatelů ještě rok po jeho přejmenování na dnešní [[user:skript:AutoStat|AutoStat]]. +Je velmi důležité zvolit správně jméno pluginu (a tedy i instalačního souboru). Jednak by mělo být výstižné a také by mělo být v rámci všech pluginů jedinečné a pokud možno nezaměnitelné s jiným pluginem. Odstrašujícím příkladem mohou být [[user:skript:ggstat|GgStat]] a naštěstí již neexistující **ggstat2**, který způsoboval zmatky u některých uživatelů ještě rok po jeho přejmenování na dnešní [[user:skript:AutoStat|AutoStat]]. 
-</box>+</WRAP>
  
-<box round 100#FFE7FF+<WRAP center round tip 80%> 
-:!: Existuje plugin [[user:skript:gipmaker|GipMaker]], který tvorbu instalačních balíčků usnadňuje. I k jeho použití jsou však potřeba jisté znalosti, např. nevytváří ''*.meta.ini'' soubor. +Existuje plugin [[user:skript:gipmaker|GipMaker]], který tvorbu instalačních balíčků usnadňuje. I k jeho použití jsou však potřeba jisté znalosti, např. nevytváří ''*.meta.ini'' soubor. 
-</box>+</WRAP>
  
 ==== Struktura GIPu ==== ==== Struktura GIPu ====
-V zásadě lze říci, že **gip** obsahuje adresář (nebo adresáře) a v něm všechny soubory, které mají být instalovány. Adresář a všechny soubory v něm obsažené GeoGet při instalaci zkopíruje do **DATADIR\script**. Kromě všech souborů, které potřebuje plugin ke své práci, musí být v **gipu** ještě [[user:skripty:autor:gip#metasoubor_pluginmetaini|metasoubor]] a volitelně také [[user:skripty:autor:gip#instalacni_skript|instalační skript]]. Následující struktura ukazuje ve stromové struktuře obsah **gipu** pro instalaci fiktivního pluginu jménem PLG_JM:+V zásadě lze říci, že **GIP** obsahuje adresář (nebo adresáře) a v něm všechny soubory, které mají být instalovány. Adresář a všechny soubory v něm obsažené GeoGet při instalaci zkopíruje do **DATADIR\script**. Kromě všech souborů, které potřebuje plugin ke své práci, musí být v **GIPu** ještě [[user:skripty:autor:gip#metasoubor_pluginmetaini|metasoubor]] a volitelně také [[user:skripty:autor:gip#instalacni_skript|instalační skript]]. Následující struktura ukazuje ve stromové struktuře obsah **GIPu** pro instalaci fiktivního pluginu jménem PLG_JM:
  
 <code> <code>
Line 31: Line 32:
 </code> </code>
  
-:!: Obecně není nutné, aby plugin byl instalován v adresáři stejného jména, ale je to doporučené. Výjimkou z tohoto pravidla jsou knihovny instalované do adresáře **lib** a různé speciální pluginy jako například šablony pro [[user:skript:ggstat|GgStat]] resp. jeho plugin [[user:skript:ggsexpr|GgsExpr]]. Instalace do jiného adresáře by měla mít dobrý důvod, protože může dojít k zmatkům a třeba i k vymazání pluginu při odinstalování pluginu jiného. Zároveň je velmi vhodné nastavit v souboru [[user:skripty:autor:gip#metasoubor_pluginmetaini|metasoubor]] také závislost balíčku na tom pluginu, do jehož adresáře jsou nějaké soubory instalovány.+<WRAP center round info 80%> 
 +Obecně není nutné, aby plugin byl instalován v adresáři stejného jména, ale je to doporučené. Výjimkou z tohoto pravidla jsou knihovny instalované do adresáře **lib** a různé speciální pluginy jako například šablony pro [[user:skript:ggstat|GgStat]] resp. jeho plugin [[user:skript:ggsexpr|GgsExpr]]. Instalace do jiného adresáře by měla mít dobrý důvod, protože může dojít k zmatkům a třeba i k vymazání pluginu při odinstalování pluginu jiného. Zároveň je velmi vhodné nastavit v souboru [[user:skripty:autor:gip#metasoubor_pluginmetaini|metasoubor]] také závislost balíčku na tom pluginu, do jehož adresáře jsou nějaké soubory instalovány. 
 +</WRAP>
  
-:!: Uživatelské nastavení pluginů je uloženo v souboru ***.config.pas**. Je však velmi nevhodné tento soubor dávat do instalačního balíčku, protože při aktualizaci balíčku bude uživatelovo nastavení přepsáno. Místo něj instalovaný plugin obsahuje soubor ***.default.pas** s implicitním nastavením a GeoGet z něj při prvním spuštění pluginu soubor **config.pas** udělá sám. Rovněž se, při použití verze **config.pas** ze starší verze pluginu, postará o doplnění nových konfiguračních proměnných nebo ignorování proměnných starých a již neplatných.+<WRAP center round important 80%> 
 +Uživatelské nastavení pluginů je uloženo v souboru ***.config.pas**. Je však velmi nevhodné tento soubor dávat do instalačního balíčku, protože při aktualizaci balíčku bude uživatelovo nastavení přepsáno. Místo něj instalovaný plugin obsahuje soubor ***.default.pas** s implicitním nastavením a GeoGet z něj při prvním spuštění pluginu soubor **config.pas** udělá sám. Rovněž se, při použití verze **config.pas** ze starší verze pluginu, postará o doplnění nových konfiguračních proměnných nebo ignorování proměnných starých a již neplatných. 
 +</WRAP>
  
 ==== Metasoubor plugin.meta.ini ==== ==== Metasoubor plugin.meta.ini ====
-Úkolem metasoboru je podat GeoGetu informace o verzi, souborech a závislostech instalovaného nebo odinstalovávaného pluginu. Jméno souboru je odvozené od jména pluginu doplněného o příponu **meta.ini**. Soubor má pevnou strukturu, ale pokud nemají být některé položky využité, nemusejí být v souboru uvedeny vůbec. V následujícím příkladě nahrazuje PLG_JM skutečné jméno pluginu):+Úkolem metasouboru je podat GeoGetu informace o verzi, souborech a závislostech instalovaného nebo odinstalovávaného pluginu. Jméno souboru je odvozené od jména pluginu doplněného o příponu **meta.ini**. Soubor má pevnou strukturu, ale pokud nemají být některé položky využité, nemusejí být v souboru uvedeny vůbec. V následujícím příkladě nahrazuje PLG_JM skutečné jméno pluginu):
  
 <code ini PLG_JM.meta.ini> <code ini PLG_JM.meta.ini>
Line 53: Line 58:
 ; Webová stránka s pluginem. Pokud položku neuvedete, ; Webová stránka s pluginem. Pokud položku neuvedete,
 ; je odkaz generován automaticky na web GeoGetu (doporučeno!). ; je odkaz generován automaticky na web GeoGetu (doporučeno!).
-web=http://geoget.ararat.cz/doku.php/user:skript:PLG_JM+web=http://www.geoget.cz/doku.php/user:skript:PLG_JM
  
 ; Příkaz pro zjištěni aktuální verze pluginu. Pokud položku neuvedete, ; Příkaz pro zjištěni aktuální verze pluginu. Pokud položku neuvedete,
-; je odkaz generován automaticky na web GeoGetu (doporučeno!). +; je odkaz generován automaticky na web GeoGetu (doporučeno!).  
-webversion=http://geoget.ararat.cz/doku.php/user:skript:PLG_JM?current_version+; Pokud se jedná například GIP s dávkou pro Combine, můžete použít pro kontrolu soubor s příponou *.ver,  
 +; ve kterém bude zapsáno číslo aktuální verze pluginu
 +webversion=http://www.www.geoget.cz/doku.php/user:skript:PLG_JM?current_version
  
 ; Příkaz pro staženi instalačního balíčku s nejčerstvější dostupnou verzi. ; Příkaz pro staženi instalačního balíčku s nejčerstvější dostupnou verzi.
 ; Pokud položku neuvedete, je odkaz generován automaticky na web GeoGetu (doporučeno!). ; Pokud položku neuvedete, je odkaz generován automaticky na web GeoGetu (doporučeno!).
-webupdate=http://geoget.ararat.cz/doku.php/user:skript:PLG_JM?download+webupdate=http://www.geoget.cz/doku.php/user:skript:PLG_JM?download
  
 ; Výchozí skupina (kategorie v menu Pluginy), do které budou spustitelné skripty obsažené v balíčku zařazeny. ; Výchozí skupina (kategorie v menu Pluginy), do které budou spustitelné skripty obsažené v balíčku zařazeny.
Line 69: Line 76:
 DefaultPluginGroup_cs=Nástroje DefaultPluginGroup_cs=Nástroje
  
-od verze 2.8 je možné používat správci pluginů definovat plugin, kterému tebto patří+Od verze 2.8 je možné správci pluginů určit plugin, ke kterému tento patří
 +; Správce pak zobrazí tento plugin mimo abecední pořadí hned u toho rodičovského. 
 +; Uvádí se pouze jméno pluginu, bez cesty a přípon ggp.pas, gge.pas, ...
 Parent=Jméno_nadřízeného_pluginu Parent=Jméno_nadřízeného_pluginu
  
 [install] [install]
-; Instalační skript. Může obsahovat funkce InstallWork : String a +; Instalační skript. Může obsahovat funkce InstallWork:String a 
-; UninstallWork : String.+; UninstallWork:String 
 +; tyto funkce jsou volány při instalaci nebo odinstalaci pluginu 
 +; (pokud je zde instalační skript uveden)
 script=PLG_JM\PLG_JM.ggi.pas script=PLG_JM\PLG_JM.ggi.pas
  
Line 81: Line 92:
 ; která je dostupná ke stažení na dané adrese. Pokud položku neuvedete, ; která je dostupná ke stažení na dané adrese. Pokud položku neuvedete,
 ; je odkaz generován automaticky na web GeoGetu (doporučeno!). ; je odkaz generován automaticky na web GeoGetu (doporučeno!).
-VarSubstLib|1.2=http://geoget.ararat.cz/VarSubstLib.gip+VarSubstLib|1.2=https://www.geoget.cz/VarSubstLib.gip
  
 ; závislost na knihovně (bez definované verze) ; závislost na knihovně (bez definované verze)
-StringLib=http://geoget.ararat.cz/doku.php/user:skript:stringlib?download+StringLib=https://www.geoget.cz/doku.php/user:skript:stringlib?download
  
 ; závislost na knihovně (vyhledává se automaticky na webu GeoGetu) ; závislost na knihovně (vyhledává se automaticky na webu GeoGetu)
Line 90: Line 101:
  
 [uninstall] [uninstall]
-; Při odinstalování smazat cely obsah instalačního adresáře včetně něj. +; Při odinstalování smazat celý obsah instalačního adresáře včetně něj. 
-; Pro dodržení formátu ini souboru je třeba vždy zakončit radek pomoci znaku =.+; Pro dodržení formátu INI souboru je třeba vždy zakončit řádek pomocí znaku =.
 PLG_JM= PLG_JM=
  
Line 97: Line 108:
 ..\offline\PLG_JM.*= ..\offline\PLG_JM.*=
 ..\offline\PLG_JM\= ..\offline\PLG_JM\=
 +
 </code> </code>
  
-==== Instalační skript ==== +<WRAP round important> 
-Ve složitějších případech může instalace kromě kopírování souborů vyžadovat ještě další činnosti. V tom případě musí autor vytvořit instalační skript typu [[user:skripty:ggi|ggi]], který příslušné úkony zajistí. GeoGet pak po zkopírování všech souborů tento skript spustí (resp. spustí jeho funkci **InstallWork**) a převezme návratovou hodnotu. Podle hodnoty pak informuje uživatele o úspěšné instalaci.+Pokud je v sekci [install] uveden instalační skript, při instalaci je z něj spouštěna funkce **InstallWork** (existuje-li) a při odinstalování spouští GeoGet funkci (existuje-li). 
 +</WRAP> 
 + 
 +==== Instalace a odinstalace pluginu ==== 
 + 
 +**Instalace** 
 +Většinou k instalaci pluginu stačí standardní "rozbalení" instalačního balíčku. Ve složitějších případech ale může instalace kromě kopírování souborů vyžadovat ještě další činnosti. V tom případě musí autor vytvořit instalační skript typu [[user:skripty:ggi|GGI]], který příslušné úkony zajistí. Na něj pak uvede odkaz v ''*.meta.ini'' souboru. GeoGet pak po zkopírování všech souborů tento skript spustí (resp. spustí jeho funkci **InstallWork**) a převezme návratovou hodnotu. Podle hodnoty pak informuje uživatele o úspěšné instalaci.
  
 Výsledek instalačního skriptu (funkce InstallWork) je string. Buď je prázdný (=OK), nebo bude text přidán k chybovým hlášením. Výsledek instalačního skriptu (funkce InstallWork) je string. Buď je prázdný (=OK), nebo bude text přidán k chybovým hlášením.
 +
 +**Odinstalování**
 +Stejně jako při instalaci, stačí většinou pro odinstalování uvést v sekci [uninstall] soubory a adresáře, které je třeba vymazat. (Soubor ''*.meta.ini'' není třeba uvádět, ten se maže automaticky.) V některých případech ale může být potřeba dělat i jiné činnosti než prosté mazání souborů a/nebo adresářů. V takovém případě je třeba v instalačním skriptu vytvořit funkci **UninstallWork**.
 +
 +Pokud je v ''*.meta.ini'' souboru uveden instalační skript, je spouštěn i při odinstalování, resp. je v něm spuštěna právě funkce **UninstallWork**.
  
 ==== Popis průběhu instalace či aktualizace ==== ==== Popis průběhu instalace či aktualizace ====
Line 116: Line 139:
   - pokud bylo vše OK, vypíše uživateli zprávu spolu s upozorněním, že v PluginManageru si může určit, v jakém menu se nový skript má objevit a jestli má být na toolbaru   - pokud bylo vše OK, vypíše uživateli zprávu spolu s upozorněním, že v PluginManageru si může určit, v jakém menu se nový skript má objevit a jestli má být na toolbaru
  
-Když se instaluje plugin, který ma uvedené závislosti včetně URL adres na stažení, tak pokud závislé balíčky neexistují, GeoGet se pokusí je sám stáhnout a nainstalovat.+Když se instaluje plugin, který má uvedené závislosti včetně URL adres na stažení, tak pokud závislé balíčky neexistují, GeoGet se pokusí je sám stáhnout a nainstalovat.
  
 Pokud dojde k jakémukoliv problému při instalaci balíčku, při instalaci závislých balíčků atd., všechny chybové hlášky se sbírají a na konci Pokud dojde k jakémukoliv problému při instalaci balíčku, při instalaci závislých balíčků atd., všechny chybové hlášky se sbírají a na konci
 instalace se zobrazí. instalace se zobrazí.
user/skripty/autor/gip.1384082505.txt.gz · Last modified: 2013/11/10 00:00 (external edit)