Skip to content

Instantly share code, notes, and snippets.

@leandrosilva
Created June 4, 2012 20:03
Show Gist options
  • Save leandrosilva/2870539 to your computer and use it in GitHub Desktop.
Save leandrosilva/2870539 to your computer and use it in GitHub Desktop.
Wapijure Command - This is the script to generate a Compojure project to build a Web API

wapijure command

Wapijure Command is the script to generate a Compojure project to build a Web API.

Usage

$ wget https://raw.github.com/gist/2870539/wapijure
$ chmod +x wapijure
$ ./wapijure new awesomeapi
$ cd awesomeapi
$ PORT=8080 lein run -m awesomeapi.core

About Wapijure

It's nothing more than a simple Compojure project template to build a Web API.

https://github.com/leandrosilva/wapijure

License

Copyright (C) 2012 Leandro Silva (CødeZøne)

Distributed under the Eclipse Public License, the same as Clojure.

#!/bin/bash
function do_help () {
echo ""
echo "Wapijure, a project template to build Web API based on Compojure"
echo "https://github.com/leandrosilva/wapijure"
echo ""
echo "Usage:"
echo " $ wapijure [option] [parameter]"
echo ""
echo " new [project name] Creates a new project."
echo " help Prints project help."
echo ""
echo "Example:"
echo " $ wapijure new aweome"
}
function do_new () {
if [ -z "$1" ]
then
echo "Missing project name!"
do_help
else
PROJECT_NAME=$1
PROJECT_DIR="`pwd`/$PROJECT_NAME"
PROJECT_REPO="https://github.com/leandrosilva/wapijure.git"
echo "Generating a new Compojure project."
echo ""
git clone $PROJECT_REPO $PROJECT_NAME
cd $PROJECT_NAME
echo ""
echo "Tailoring '$PROJECT_NAME'."
# no longer a Git project
rm -rf .git
# project.clj
sed "s/wapijure/$PROJECT_NAME/g" project.clj > project.clj.tmp
rm project.clj
mv project.clj.tmp project.clj
# README.md
sed "s/wapijure/$PROJECT_NAME/g" README.md > README.md.tmp
rm README.md
mv README.md.tmp README.md
# resources/public/index.html
sed "s/wapijure/$PROJECT_NAME/g" resources/public/index.html > resources/public/index.html.tmp
rm resources/public/index.html
mv resources/public/index.html.tmp resources/public/index.html
# src/wapijure/core.clj
sed "s/wapijure/$PROJECT_NAME/g" src/wapijure/core.clj > src/wapijure/core.clj.tmp
rm src/wapijure/core.clj
mv src/wapijure/core.clj.tmp src/wapijure/core.clj
# src/wapijure/web/handler.clj
sed "s/wapijure/$PROJECT_NAME/g" src/wapijure/web/handler.clj > src/wapijure/web/handler.clj.tmp
rm src/wapijure/web/handler.clj
mv src/wapijure/web/handler.clj.tmp src/wapijure/web/handler.clj
# src/wapijure
mv src/wapijure src/$PROJECT_NAME
# test/wapijure/test/core.clj
sed "s/wapijure/$PROJECT_NAME/g" test/wapijure/test/core.clj > test/wapijure/test/core.clj.tmp
rm test/wapijure/test/core.clj
mv test/wapijure/test/core.clj.tmp test/wapijure/test/core.clj
# test/wapijure
mv test/wapijure test/$PROJECT_NAME
echo "Done."
fi
}
case $1 in
help)
do_help
;;
new)
do_new $2
;;
*)
do_help
esac
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment