#!/bin/bash set -euo pipefail # this script makes an existing private repo public by creating a public.conf # # USAGE: # ssh git@ make-public # # EXAMPLES: # ssh git@treybastian.com make-public myrepo # ssh git@treybastian.com make-public myrepo.git REMOTE_BASE_URL="git@treybastian.com:repos" usage() { echo "Usage: make-public " echo "" echo "Examples:" echo " make-public myrepo" echo " make-public myrepo.git" exit 1 } if [ "$#" -ne 1 ]; then echo "Error: expected 1 argument, got $#" usage fi PROJECT_NAME="$1" if [[ "$PROJECT_NAME" != *.git ]]; then PROJECT_NAME="${PROJECT_NAME}.git" fi if [ ! -d "$PROJECT_NAME" ]; then echo "Error: '$PROJECT_NAME' does not exist" exit 1 fi if [ -f "${PROJECT_NAME}/public.conf" ]; then echo "Error: '$PROJECT_NAME' is already public" exit 1 fi echo "${REMOTE_BASE_URL}/${PROJECT_NAME}" > "${PROJECT_NAME}/public.conf" ssh git@treybastian.com new-repo "repos/${PROJECT_NAME}" echo "repo is now public: ${REMOTE_BASE_URL}/${PROJECT_NAME}" # vim: filetype=bash