Table of Contents
Gip Maker
Plugin slouží k automatizaci vytváření instalačních balíčků. Vše řídí definiční soubor, v kterém je určeno co všechno má který instalační balíček obsahovat. Ukázkový soubor definiční soubor je součástí instalace.
Už se vám někdy stalo, že jste do instalačního balíčku omylem dali soubor, který tam nepatří, nebo tam naopak nedali důležitý soubor? Mě se to stalo několikrát a vždy to přineslo potíže uživatelům. Předsevzetí, že budu pečlivě kontrolovat každý instalační soubor, který vytvořím, mi vydrželo vždy tak tři-čtyři instalace. Tak jsem se rozhodl s tím něco udělat. Teď už se mi to nestane. Jednou připravím definici a mám vystaráno.
Autor
Pokud se Vám doplněk líbí, kliknutím na tlačítko Donate můžete přispět na jeho vývoj.
Nekamarádíte se s PayPalem? Napište mi email a domluvíme se na jiném způsobu, třeba převodu na účet.
Automatická instalace
|
Instalaci doplňku spustíte kliknutím na tlačítko vlevo. Následně budete v prostředí GeoGetu provedeni instalačním procesem. Pro zajištění této funkce je třeba mít na počítači již
nainstalovaný a
spuštěný program GeoGet
.
|
Diskuze
Diskuze o tomto skriptu je k dispozici na Geocaching.cz.
Popis funkce
Podle souboru GipMaker.ini vytváří plugin příslušný gip soubor následujícím postupem:
- plugin nabídne uživateli seznam připravených šablon (sekcí) v
GipMaker.ini
, podle nichž může vytvářet instalační balíčky (*.gip soubory), uživatel si z nabídky vybere a spustí vytvoření instalačního balíčku - plugin pak vymaže obsah pracovního adresáře
- vytvoří v něm adresáře jménem pluginu podle proměnné
DIR_TARGET
v příslušné sekciGipMaker.ini
; mohou být vytvořeny i vnořené adresáře, např.lib\RelToAbsPath
- ze zadaného
meta.ini
(proměnnáMETA_INI_FILE
) získá verzi a optá se uživatele, zda ji ponechat; pokud ji uživatel změní, zapíše novou verzi do zdrojovéhometa.ini
- nakopíruje do pracovního adresáře všechny potřebné soubory
- zkontroluje existenci jediného
*.meta.ini
- v zadaném souboru (proměnná
REMOVE_DEBUGGER_FROM
) zapoznámkuje příkaz pro definici konstanty řídící podmíněný překlad ladících informací - v cílovém adresáři (DIR_GIP) vytvoří *.gip zazipováním obsahu pracovního adresáře, jméno bude doplněno o příslušnou verzi pluginu
Plugin provádí příkazy v následujícím pořadí:
- kopírování souborů do pracovního adresáře
- kopírování adresářů do pracovního adresáře
- mazání souborů z pracovního adresáře
- zazipování souborů v pracovním adresáři do instalačního balíčku
Ukázkový soubor GipMaker.ini_demo
je součástí instalace.
Konfigurace, popis souboru GipMaker.ini
GipMaker.ini je hlavní soubor, který řídí vytváření instalačního balíčku. Každý vytvářený balíček má vlastní sekci, jméno sekce je v hranatých závorkách tak, jak je v INI souborech běžné. Na příklad
[GipMaker]
Všechna jména sekcí jsou ze souboru načtena a nabídnuta uživateli v prvním kroku k zpracování. Další pak závisí na obsahu sekce, použitých proměnných. Jejich seznam je zde (v pořadí, jak je plugin vykonává):
Proměnná, příkaz | Význam |
---|---|
DIR_SOURCE | zdrojový adresář, odkud jsou načítány soubory (cesta relativní vůči GEOGET_SCRIPTDIR) |
DIR_TARGET | cílový adresář, do kterého bude prováděna automatická instalace balíčku (cesta relativní vůči GEOGET_SCRIPTDIR) |
DIR_GIP | cílový adresář, do kterého bude zkopírován vytvořený instalační balíček (cesta relativní vůči GEOGET_DATADIR) |
META_INI_FILE | soubor, který řídí instalaci instalačního balíčku (cesta relativní vůči DIR_SOURCE) |
REMOVE_DEBUGGER_FROM | definuje soubor, v kterém bude hledán příkaz pro vložení ladicí knihovny, provedením tohoto příkazu dojde k zapoznámkování řádku. Toto bude provedeno jen v souboru zařazeného do instalačního balíčku, zdrojový soubor zůstane nedotčen. ({$define DEBUG} - obecný parametr, {$define DEBUG_HELPER} - knihovna LittleDebugHelper, {$define DEBUG_INFO} - knihovna DebigInfo, {$define PROFILE} - knihovna Profile) |
PRECOPY_MESSAGE_<n> | definuje text zprávy zobrazené před zahájením kopírování souborů. Příkladem může být Nezapomeňte vymazat přístupová hesla ze souboru … |
PRECOPY_RUN_<n> | definuje soubor (a případné parametry), který bude spuštěn před zahájením kopírování do pracovního adresáře. To se hodí třeba pro spuštění dávky, která vytváří jazykové mutace pluginu |
COPY_FILE_<n> | kopírování souboru, cesta je vždy relativní vůči DIR_SOURCE |
COPY_DIR_<n> | kopírování adresáře včetně všech podadresářů, cesta je vždy relativní vůči DIR_SOURCE |
DEL_FILE_<n> | z pracovního adresáře vymaže soubor. To je vhodné např. při zkopírování mnoha souborů v adresáři, kdy jeden soubor z adresáře nemá v instalačním balíčku být. Cesta je relativní vůči DIR_SOURCE , tedy jakoby byl soubor kopírován do pracovního adresáře |
DEL_DIR_<n> | z pracovního adresáře vymaže zadaný adresář. To je vhodné např. při zkopírování mnoha souborů v adresáři, kdy jeden podadresář v zkopírovaném adresáři nemá v instalačním balíčku být. Cesta je relativní vůči DIR_SOURCE |
PREZIP_RUN_<n> | definuje soubor (a případné parametry), který bude spuštěn před vytvořením vlastního zazipovaného balíčku |
PREZIP_MESSAGE_<n> | definuje text zprávy zobrazené před vytvořením vlastního zazipovaného balíčku |
PRE_POSTZIPRUN_MESSAGE_<n> | definuje text zprávy zobrazené po zazipování, ale před spuštěním příkazů v POSTZIP_RUN_<n> |
POSTZIP_RUN_<n> | definuje soubor (a případné parametry), který bude spuštěn po vytvoření zazipovaného balíčku |
POSTZIP_MESSAGE_<n> | definuje text zprávy zobrazené po vytvoření instalačního balíčku a spuštění všech příkazů, tedy něco jako “Všechno je hotovo” |
_<n>
je vždy pořadové číslo jak budou příkazy stejného typu zpracovány. Každý typ má své vlastní číslování počínaje _1.
Každé zobrazení zprávy končí otázkou, zda pokračovat. Je tedy např. možné po vytvoření zazipovaného balíčku příkazem PRE_POSTZIPRUN_MESSAGE
zobrazit dotaz ještě před tím, než bude spuštěn příkaz POSTZIP_RUN
, který tak je možné přeskočit (např. závěrečné zkopírování vytvořeného *.gip
souboru na FTP server.
Příkazy typu *_RUN jsou prováděny pomocí příkazu RunShell
, takže je možné spouštět jakýkoli soubor, který je obsluhován systémem (*.exe, *_*.bat, *.html, ). Cesty jsou absolutní nebo relativní vůči GEOGET_DATADIR, je možné používat i proměnné %GG_DATADIR%, %GG_SCRIPTDIR%, %GG_PROGPATH% a případně v systému definované proměnné.
Verze vytvářeného pluginu
V řídícím INI souboru je příkaz META_INI_FILE
, který definuje meta.ini soubor. Tento soubor obsahuje verzi pluginu a GipMaker
načte v něm uvedenou verzi předloží ji uživateli k úpravě. Upravená verze je zapsána do zdrojového souboru, do souboru, který bude součástí instalačního balíčku, i do jména vytvářeného balíčku (gip souboru). Tento postup má výhodu v tom, že údržba verze je jednotná a jednoduchá. Při správném použití není třeba nikde v ostatních souborech pluginu číslo verze používat a tedy ani měnit. Já používám v každém pluginu relativně univerzální funkci, která mi vrátí číslo verze pluginu zjištěné právě z meta.ini souboru:
function GetPluginVersion:string; begin Result:=GeoGetPackageVersion(ReplaceString(GEOGET_SCRIPTFULLNAME,'.ggp.pas','.meta.ini')); end;
Místo použití konstanty pak všude používám volání této funkce a nemusím v různých částech zdrojového kódu upravovat další texty či definice konstant.
Potlačení ladicích informací
Příkaz REMOVE_DEBUGGER_FROM
kromě funkce popsané v tabulce příkazů plní ještě jakousi vedlejší funkci, resp. ona vedlejší funkce je vedlejším efektem funkce popsané. Jde o to, že GeoGet udržuje datum a čas změny hlavního souboru pluginu (*.ggp.pas), který by měl obsahovat funkce vracející text pro menu a pro hint (tooltip). Může se stát, že úpravy pluginu vedoucí k vydání nové verze jsou takového charakteru, že nevyžadují změnu tohoto hlavního souboru (změna formuláře, změna překladových textů či změna v jiných zdrojových souborech). Pokud je součástí textů pro menu nebo pro hint i verze pluginu, GeoGet by změnu nezobrazil. Jelikož použitím příkazu REMOVE_DEBUGGER_FROM dojde k aktualizaci data a času hlavního souboru, bude GeoGet nucen si aktualizovat text vracený těmito funkcemi.
Ukázky
Stažení
Stáhnout aktuální verzi: gipmaker-1.0.1.gip
Seznam dostupných verzí
Filename | Filesize | Last modified |
---|---|---|
gipmaker-1.0.1.gip | 7.7 KiB | 2012/09/17 00:00 |
Seznam změn
1.0.1 (17.9.2012)
- změna: vypuštěno zpětné lomítko za GEOGET_PROGPATH
- oprava: chybné nastavení nové verze vytvářeného pluginu
1.0.0 (3.9.2012, staženo: 3 x)
- Úvodní verze