Created
May 5, 2014 04:05
-
-
Save livtanong/8b23d95de83b85b23bea to your computer and use it in GitHub Desktop.
A fish shell script to quickly boostrap a mithril app. Included are components that I find indispensable. I'm new to shell scripting, so you'll probably see things that need improvement. Please don't hesitate to let me know if I'm doing anything stupid. :P
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/opt/boxen/homebrew/bin/fish | |
echo Aye, smithing your app. | |
set PROJECT $argv[1] | |
set MAIN app | |
mkdir $PROJECT | |
if test -d $PROJECT | |
cd $PROJECT | |
mkdir styles | |
mkdir scripts | |
touch index.html | |
bower install mithril | |
bower install underscore | |
bower install font-awesome | |
git init | |
printf "<!doctype html> | |
<script src=\"bower_components/mithril/mithril.min.js\"></script> | |
<script src=\"bower_components/underscore/underscore.js\"></script> | |
<script src=\"scripts/$MAIN/model.js\"></script> | |
<script src=\"scripts/$MAIN/controller.js\"></script> | |
<script src=\"scripts/$MAIN/view.js\"></script> | |
<script src=\"scripts/routes/routes.js\"></script>" >> index.html | |
cd styles | |
mkdir sass | |
mkdir css | |
cd sass | |
bourbon install | |
neat install | |
cd ../../scripts | |
mkdir $MAIN | |
cd $MAIN | |
touch model.js | |
touch controller.js | |
touch view.js | |
printf "var $MAIN = {}" >> model.js | |
printf "$MAIN.controller = function(){\n\t//controller here\n}" >> controller.js | |
printf "$MAIN.view = function(ctrl){ | |
return $MAIN.template(ctrl, [ | |
m(\"div\", [ | |
\"From the Mines of Moria!\" | |
]) | |
]); | |
}" >> view.js | |
printf " | |
$MAIN.template = function(ctrl, options, content){ | |
switch(arguments.length){ | |
case 2: | |
ctrl = arguments[0]; | |
content = arguments[1]; | |
options = {}; | |
break; | |
case 3: | |
ctrl = arguments[0]; | |
options = arguments[1]; | |
content = arguments[2]; | |
break; | |
} | |
return m(\"html\", [ | |
m(\"head\", [ | |
m(\"link[href='styles/css/style.css'][rel='stylesheet'][type='text/css']\"), | |
m(\"link[href='bower_components/font-awesome/css/font-awesome.min.css'][rel='stylesheet'][type='text/css']\"), | |
]), | |
m(\"body\", options, content) | |
]) | |
}" >> view.js | |
cd .. | |
mkdir routes | |
cd routes | |
touch routes.js | |
printf "m.route(document, '/', {\n\t'/': $MAIN\n})" >> routes.js | |
echo Smithing complete! Now go kill some orcs! | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment