Seminár k operačným systémom: záverečné zadania 2018

  1. Termín odovzdania je _______
  2. Vypracujte obe zadania.

    • jedno zadanie vypracujte v PowerShelli.
    • druhé zadanie vypracujte v unixovskom shelli.
  3. Zadanie musí implementovať celú požadovanú funkcionalitu. Vynechanie ktoréhokoľvek bodu má za následok zamietnutie zadania a hodnotenie FX.

  4. Hodnotenie sa odvíja od spôsobu implementácie zadania a od odpovedí na kontrolné otázky zamerané na pochopenie vypracovania.

  5. Zadanie spokojne vzájomne konzultujte. Vypracovanie však musí byť samostatné a jednoznačné.

  6. Plagiátorstvo a identický kód je trestaný okamžitým hodnotením FX. Ak využijete kusy kódu alebo rady z internetu, ste povinní uviesť do zdrojového kódu odkaz na zdroj (URL blogu, odkaz na StackOverflow a pod.) V opačnom prípade je zadanie zamietnuté ako plagiát.

  7. Zadanie bude obhájené individuálne a ústne v termíny uvedené vyššie.

Balíčkovací správca BalPackage

BalPackage je balíčkovací správca (package manager), ktorý uľahčuje inštaláciu softvéru.

Inštalácia balíčka sa riadi receptom, teda XML súborom popisujúcim jednotlivé inštalačné kroky.

BalPackage podporuje nasledovné príkazy:

  • Get-BalRecipe: stiahnutie receptu
  • Install-BalRecipe: spustenie receptu

Príkazy

Stiahnutie receptu

Get-BalRecipe totalcommander

Balíčkovací správca stiahne recept totalcommander z úložiska receptov. Úložisko receptov môže byť ľubovoľná pevná lokácia, napr. s.ics.upjs.sk alebo github.com.

Príkaz Get-BalRecipe vypíše informácie o balíčku z receptu. (Viď nižšie).

Príklad použitia:

Get-BalRecipe totalcommander

> Package 'totalcommander' downloaded.
> Description:
>   Total Commander: A two-pane File Manager

Spustenie inštalácie

Install-BalRecipe totalcommander

Spustí inštaláciu na základe krokov v recepte.

Recepty

V recepte sú podporované nasledovné kroky:

  • download: stiahne súbor z konkrétnej URL adresy
  • exec: spustí ľubovoľný súbor s danou cestou
  • copy: skopíruje súbor z aktuálneho adresára do cieľového adresára
  • registry: založí v registroch hodnotu s daným kľúčom

Koreňový element description obsahuje informácie o balíčku, z ktorých sa preberajú informácie pri príkaze Get-BalRecipe.

Príklad receptu:

<recipe description="Total Commander: A two-pane File Manager">
    <download url="http://tcmd900.s3.amazonaws.com/tcmd900x32.exe">
    <exec command="tcmd900x32.exe" />
    <download url="http://github.com/settings.ini">
    <copy from="settings.ini" to="C:/Temp"/>
    <registry path="HKCU:\Software\Ghisler\Total Commander" key="Installed" Value="Yes" />
</recipe>

Tento recept stiahne súbor do aktuálneho adresára, následne ho spustí. Následne stiahne súbor settings.ini, ktorý skopíruje do dočasného adresára. V poslednom kroku nastaví hodnotu v registroch.

Redakčný systém shellpress

Firma ShellPress si objednala redakčný systém s názvom shellpress, ktorý musí byť – z neznámeho dôvodu – implementovaný v linuxovom shelli. Články v redakčnom systéme sú písané vo formáte MarkDown, s drobnými obmenami (viď nižšie). Systém shellpress prevedie články do formátu HTML a vygeneruje niekoľko dodatočných obslužných stránok.

Požiadavky

Vstupné súbory

shellpress pracuje nad adresárom s článkami, v ktorom sa nachádza niekoľko súborov s príponou .markdown.

Každý súbor obsahuje:

  • názov článku uvedený ako prvý markdownovský nadpis prvej úrovne
  • dátum vzniku uvedený ako dátum poslednej modifikácie súboru (linuxový atribút mtime).

Ukážkový súbor about.markdown

# Hamlet
Hamlet (angl. The Tragedy of Hamlet, Prince of Denmark, dosl. 
Tragédia o Hamletovi, princovi dánskom) je nájznámejšou a najčastejšie
citovanou divadelnou hrou anglického dramatika Williama Shakespearea.

Hamlet patrí medzi najinscenovanejšie hry vo všetkých krajinách západnej 
kultúry a taktiež patrí medzi najprekladanejšie literárne diela na svete.    
Okrem iného je považovaný za akúsi skúšku ohňom pre vyspelosť herca. 
Zrejme najznámejšou scénou z hry je Hamletov monológ o zmysle života 
z tretieho dejstva, začínajúci otázkou „Byť, a či nebyť?“ 

Vygenerovanie HTML súborov

Nasledovný príkaz vygeneruje HTML súbory pre všetky články v adresári s článkami. HTML súbory nech sa uložia do adresára site v adresári s článkami. shellpress

Vygenerovanie zoznamu článkov

Nasledovný príkaz vygeneruje stránku index.html so zoznamom všetkých článkov na portáli. Každá položka zoznamu nech obsahuje názov článku (z prvého nadpisu), dátum zverejnenia a hypertextový odkaz na text článku.

shellpress -i

Vygenerovanie HTML súborov pre vybrané články

Nasledovný príkaz vygeneruje HTML súbory pre vybrané články:

shellpress intro.markdown about.markdown test.markdown

Štatistické informácie

Nasledovný príkaz vygeneruje HTML súbor so štatistickými informáciami, kde je nutné uviesť:

  • počet článkov
  • počet slov vo všetkých článkoch

Generovanie zapneme parametrom -s:

shellpress -s

Technické poznámky

  • na generovanie HTML súborov použite nástroj pandoc
  • shellpress implementujte ako shellskript. Dodržte, pokiaľ možno, kompatibilitu s POSIX. V rámci shellového skriptu môžete používať iné štandardné linuxové nástroje (awk a pod).
  • funkčnosť shellového skriptu overujte pomocou nástroja shellcheck.

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *