Ako automatizujem nudné vývojárske úlohy pomocou Makefile a Shell skriptov

Vieš, čo ma najviac nebaví pri programovaní? Nie je to debugovanie. Nie je to ani písanie dokumentácie (aj keď to je blízko). Je to opakovanie tých istých nudných úloh dokola ako zaseknutý vinyl: build, test, deploy, clean... znova a znova. Tak som si povedal dosť. A objavil som dvoch superhrdinov: Makefile a Shell skripty.

7/23/20253 min read

Ako automatizujem nudné vývojárske úlohy pomocou Makefile a Shell skriptov
Ako automatizujem nudné vývojárske úlohy pomocou Makefile a Shell skriptov

Ako automatizujem nudné vývojárske úlohy pomocou Makefile a Shell skriptov

Vieš, čo ma najviac nebaví pri programovaní? Nie je to debugovanie. Nie je to ani písanie dokumentácie (aj keď to je blízko). Je to opakovanie tých istých nudných úloh dokola ako zaseknutý vinyl: build, test, deploy, clean... znova a znova. Tak som si povedal dosť. A objavil som dvoch superhrdinov: Makefile a Shell skripty.

Tieto nástroje mi ušetrili stovky klikov, vypitých káv a frustrovaných povzdychov. A dnes ti ukážem, ako ich používam, aby som udržal svoju prácu plynulú, čistú a – čo je najdôležitejšie – nudné veci nechal na stroje.

Čo vôbec je Makefile a prečo sa o ňom rozprávame?

Makefile je ako recept pre tvoj projekt. Povie tvojej mašine: "Keď poviem make build, spusti tento príkaz. Keď poviem make test, urob hentô." Je to jednoduchý textový súbor, ktorý definuje ciele ("targets") a úlohy ("recipes").

Je to ako kuchárska kniha pre tvoje CLI.

Príklad? Nech sa páči:

build: gcc -o app main.c run: ./app

Takto si vytvoríš vlastný mini framework na automatizáciu. Stačí zadať make build a o zvyšok sa postará Make.

A kde do toho všetkého pasujú Shell skripty?

Shell skripty (či už Bash, Zsh alebo iný shell) sú skriptované príkazy, ktoré robia prácu za teba. Chceš vyčistiť build folder, pushnúť zmeny, spustiť testy, aktualizovať knižnice? Napíš skript raz, používaj navždy.

Skripty sú ako tvoji osobní asistenti – pracujú potichu, spoľahlivo a bez sťažovania.

Príklad jednoduchého skriptu:

#!/bin/bash npm install npm run test npm run build

Uložíš ako deploy.sh, nastavíš chmod +x deploy.sh a si za vodou.

Aké typy úloh môžem automatizovať pomocou Makefile a Shell skriptov?

Skvelá otázka! Možno by sa ti zdalo, že to je len na kompilovanie, ale opak je pravdou. Tu je zoznam vecí, ktoré ja pravidelne automatizujem:

  • Buildovanie projektu (kompilácia, bundling, minifikácia)

  • Testovanie (unit, e2e, linter)

  • Nasadzovanie na staging alebo produkciu

  • Synchronizácia databáz

  • Záloha alebo obnova dát

  • Spúšťanie CI pipeline

  • Generovanie dokumentácie

Automatizácia týchto krokov nielen šetrí čas, ale hlavne eliminuje chyby typu "zabudol som spustiť migráciu".

Kedy použiť Makefile namiesto Shell skriptu?

Shell skript je super, keď chceš rýchlo niečo vykonať. Ale ak potrebuješ:

  • definovať závislosti medzi krokmi,

  • vytvoriť viacero cieľov (build, run, test, clean),

  • a mať čítatelný formát, ktorý pozná každý dev,

...tak Makefile je lepšia voľba. Navyše funguje takmer na každom Unix-like systéme bez potreby čohosi navyše.

Shell skript = swisšák Makefile = LEGO stavebnica pre tvoje CLI workflowy

Musím dobre ovládať Bash, aby som efektívne používal Shell skripty?

Nie. A to je na tom to krásne.

Začiatok je jednoduchý. Pár príkazov, trošku syntaxe, a si tam. Stačí vedieť:

  • ako spustiť príkaz,

  • ako deklarovať premenné,

  • ako používať if-else alebo for-cyklus.

Základy sa naučíš za večer a postupne si to vyladíš na vlastný štýl. Skripty sa dajú kopírovať, upravovať, testovať... čo nie je láska?

Môžem kombinovať Makefile a Shell skripty?

Nielen že môžeš, mal by si.

Napríklad:

  • Makefile definuje ciele: make deploy

  • deploy spustí Shell skript, ktorý zvládne zložitejší deployment

Takto si zachováš čistotu a modulárnosť.

Pro tip: Skripty daj do priečinka /scripts, Makefile do rootu a získaš poriadok ako vo švajčiarskej banke.

Príklady zo života (alebo ako som prestal nenávidieť testovanie)

Predstav si pondelok ráno. Otvoríš projekt a vieš, že ťa čaká 5 vecí:

  1. git pull

  2. npm install

  3. npm run test

  4. npm run lint

  5. npm run dev

Myslíš, že som to robil ručne? Jasné, že nie. Urobil som si skript start.sh a Makefile cieľ make start. Teraz stačí jedno slovo.

A čo taký CI pipeline? Rovnako. Všetko som si rozdelil na Makefile targets, ktoré mô\užem volať jednotlivo alebo cez skript.

Čas ušetrený? Desiatky hodín mesačne. Frustrácia? Takmer nulová.

Zhrnutie (a malé nakopnutie na záver)

Automatizácia nie je len pre "profíkov". Je to pre každého, kto už nechce premrhať svoj čas na veci, ktoré sa dajú vybaviť jediným príkazom.

Makefile + Shell skripty = kombinácia, ktorá ti zmení workflow.

Takže ak si ešte nikdy nevyskúšal make, teraz je čas. Otvor editor, napíš si prvý target, alebo si vytvor start.sh. Nechaj stroje robiť robotu, ktorá ich baví, a ty sa venuj tomu, čo baví teba.

Chceš ukážkaý projekt alebo inšpiráciu? Napíš mi a pošlem ti svoj repo. Alebo rovno zdieľaj, ako ty automatizuješ svoje rutiny. Viac hláv, viac rozumu!