Forum » Programiranje » [Bash] Kreiranje nove datoteke iz predloge s parametri
[Bash] Kreiranje nove datoteke iz predloge s parametri
zhigatsey ::
Živjo,
Pri delu bi rabil bi malo pohitriti kreiranje novih .h datotek. Naredil bi si različne
template, ki bi vsebovali spremenljivke, ki bi se ob kreiranju zamenjale z podanimi vrednostmi.
Spodaj je primer kako bi lahko predloga izgledala...
Moj cilj je izdelati neko bash skripto, ki ima kot vhodne parametre recimo
template_file: Datoteka predloge
output_file: Izhodna datoteka
namespace: Imenovano področje
classname: Ime razreda
in kreira novo datoteko... Ker nisem ravno vešč v bashu, bi vas prosil za pomoč...
Ali kakšno podobno orodje že obstaja...
Hvala za odgovore...
Pri delu bi rabil bi malo pohitriti kreiranje novih .h datotek. Naredil bi si različne
template, ki bi vsebovali spremenljivke, ki bi se ob kreiranju zamenjale z podanimi vrednostmi.
Spodaj je primer kako bi lahko predloga izgledala...
#ifndef $UPPERCASE_CLASSNAME$_H #define $UPPERCASE_CLASSNAME$_H namespace $NAMESPACE$ { class $CLASSNAME$ { public: $CLASSNAME$(); virtual ~$CLASSNAME$(); }; }; // end of namespace $Namespace$ #endif // $UPPERCASE_CLASSNAME$_H
Moj cilj je izdelati neko bash skripto, ki ima kot vhodne parametre recimo
template_file: Datoteka predloge
output_file: Izhodna datoteka
namespace: Imenovano področje
classname: Ime razreda
in kreira novo datoteko... Ker nisem ravno vešč v bashu, bi vas prosil za pomoč...
Ali kakšno podobno orodje že obstaja...
Hvala za odgovore...
Tutankhamun ::
Če delaš v Visual Studiu, pol se lahk mal z makroji poigraš. Mogoče pa obstaja že kej tazga kar rabš, pa se ti sploh zajebavat ni treba.
AMD Phenom QUAD 9950 Black Edition, 8GB
Jean-Paul ::
#!/bin/bash
TEMPLATEFILE=$1
NAMESPACE=$2
CLASSNAME=$3
UPPERCASECLASSNAME=$(echo $CLASSNAME | tr 'a-z' 'A-Z')
sed \
-e "s/[$]CLASSNAME[$]/$CLASSNAME/g" \
-e "s/[$]UPPERCASE_CLASSNAME[$]/$UPPERCASECLASSNAME/g" \
-e "s/[$]NAMESPACE[$]/$NAMESPACE/g" \
$TEMPLATEFILE
TEMPLATEFILE=$1
NAMESPACE=$2
CLASSNAME=$3
UPPERCASECLASSNAME=$(echo $CLASSNAME | tr 'a-z' 'A-Z')
sed \
-e "s/[$]CLASSNAME[$]/$CLASSNAME/g" \
-e "s/[$]UPPERCASE_CLASSNAME[$]/$UPPERCASECLASSNAME/g" \
-e "s/[$]NAMESPACE[$]/$NAMESPACE/g" \
$TEMPLATEFILE
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Slo-Tech userscriptsOddelek: Izdelava spletišč | 5228 (2680) | jype |
» | Python keyError 3Oddelek: Programiranje | 1201 (839) | filips |
» | Python napaka: IndentationError: unindent does not match any outer indentation levelOddelek: Programiranje | 806 (736) | jan_g |
» | [Java]kompailiranje iz cmdOddelek: Programiranje | 1333 (1057) | ragezor |
» | [C++] for {}Oddelek: Programiranje | 1726 (1420) | Gundolf |