GeoGet

Complete geocaching solutions

User Tools

Site Tools


user:skript:gipmaker

This is an old revision of the document!


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 instlač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člive 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.

flag-english.jpg

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

Nainstalovat do GeoGetu
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 .
Kliknuli jste na tlačítko a nic se nestalo? Máte opravdu spuštěný GeoGet ? Je to potřeba! Nebo možná máte zastaralý webový prohlížeč. Nevadí, instalaci doplňku můžete jednoduše vyvolat i prostým zkopírováním (označit text → klik pravým tlačítkem → kopírovat) následujícího odkazu do schránky: https://www.geoget.cz/doku.php/user:skript:gipmaker?download

Diskuze

Popis funkce

Podle souboru GipMaker.ini vytvari plugin příslušný gip soubor nasledují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ářse jménem pluginu podle proměnné DIR_TARGET v příslušné sekci GipMaker.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ého meta.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říkazz pro definci 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í:

  1. kopírování souborů do pracovního adresáře
  2. kopírování adresářů do pracovního adresáře
  3. mazání souborů z pracovního adresáře
  4. zazipování souborů v pracovním adresáři do instalačního balíčku

:!: Ukázkový soubor GipMaker.ini_demo je součástí instalace.

Popis v 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:

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ámkovaní řá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)
FILE_COPY_<n> kopírování souboru, cesta je vždy relativní vůči DIR_SOURCE
DIR_COPY_<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 namá 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
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 …
PREZIP_MESSAGE_<n> definuje text zprávy zobrazené před vytvořením vlastního zazipovaného balíčku
POSTZIP_MESSAGE_<n> definuje text zprávy zobrazené po vytvoření instalačního balíčku
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
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
POSTZIP_RUN_<n> definuje soubor (a případné parametry), který bude spuštěn po vytvořením vlastního zazipovaného balíčku

:!: _<n> je vždy pořadové číslo jak budou soubory zpracovány. Každý typ má své vlastní číslování počínaje _1.

:!: 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í číclo 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 dojdě 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í

FilenameFilesizeLast modified
gipmaker-1.0.1.gip7.7 KiB2012/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)

:!: Zobrazit změny ve starších verzích

Skrýt změny ve starších verzích

user/skript/gipmaker.1347881901.txt.gz · Last modified: 2012/09/17 00:00 (external edit)