#!/bin/bash # # Register an existing hydra # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public # License along with this program. If not, see # . # Load source $APP_BASE/lib/hydra/functions || exit 1 hydra_config_load # Command line arguments BASEDIR="$1" REMOTE="$2" # Validation if [ -z "$BASEDIR" ]; then echo "Usage: hydra [hydra] init [remote]" exit 1 elif grep -q -e "^$HYDRA=" $CONFIG &> /dev/null; then echo "Hydra $HYDRA already defined" exit 1 fi # Reparse basedir to force absolute folder BASEDIR="`cd $BASEDIR && pwd`" # Add entry echo "Registering hydra $HYDRA..." mkdir -p $BASEDIR chmod 700 $BASEDIR echo "$HYDRA=\"$BASEDIR\"" >> $CONFIG # Optional remote configuration if [ ! -z "$REMOTE" ]; then echo "Using $REMOTE as private gitolite address." echo "PRIVATE_REPOS=$REMOTE" >> $PREFERENCES else # TODO: setup remotes and README content # No remote was given, so we assume this is a shiny new hydra! mkdir $BASEDIR/{config,doc} ( cd $BASEDIR/config touch README.md git init git add . git commit -m "Initial import" ) ( cd $BASEDIR/doc touch README.md git init git add . git commit -m "Initial import" ) fi # Sync repositories hydra $HYDRA sync