Skip to content

Instantly share code, notes, and snippets.

@asimpson
Last active December 11, 2015 19:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save asimpson/4646138 to your computer and use it in GitHub Desktop.
Save asimpson/4646138 to your computer and use it in GitHub Desktop.
Bash script to kick start a new project using project-init - https://github.com/sparkbox/project-init/archive/master.zip
function sb_init {
local RED="\033[0;31m"
local NC="\033[0m"
if [ ! $# == 1 ]; then
echo -e "${RED}Please specify a project name, or action (update, revert).${NC}"
echo -e "Usage: init project-name / action\n"
elif [ "$1" == "--update"]; then
local name=$(node -e "console.log(require('./package.json').name)");
mv package.json package.bak.json;
mv node_modules node_modules_bak;
curl -sSOL http://raw.github.com/sparkbox/project-init/master/package.json;
sed -i.tmp "s/Project-Name/$name/g" package.json;
rm package.json.tmp;
npm install;
elif [ "$1" == "--revert"]; then
if [ -e node_modules_bak -a -e package.bak.json ]; then
rm -r node_modules;
rm package.json;
mv node_modules_bak node_modules;
mv package.bak.json package.json;
fi
else
echo -e "${RED}Downloading project-init${NC} 🚀\n"
curl -s -S -O -L http://github.com/sparkbox/project-init/archive/master.zip;
echo -e "${RED}Download finished.${NC}\n"
echo -e "${RED}Setting up project config files.${NC}\n"
unzip -qq master.zip;
rm master.zip;
mv project-init-master $1
sed -i.bak "s/Project-Name/$1/g" $1/package.json;
rm $1/package.json.bak;
sed -i.bak "s/Project-Name/$1/g" $1/.rvmrc;
rm $1/.rvmrc.bak;
cd $1
npm install;
bundle;
echo -e "${RED}Your project is all ready to go. Enjoy${NC}\n"
fi
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment