#!/usr/bin/env bash

# Copyright (C) 2014-2019 Maciej Delmanowski <drybjed@gmail.com>
# Copyright (C) 2015-2019 DebOps <https://debops.org/>
# SPDX-License-Identifier: GPL-3.0-only

# This file is managed by Ansible, all changes will be lost

set -e

# If no project name is given, display help
if [ $# -eq 0 ] ; then
    cat <<-EOF
Usage: $(basename "${0}") <repository> <newrepository>

Change name of <repository> to <newrepository>
EOF
    exit 1
fi

if [ -n "${1}" ] ; then
    # Sanitize repository name
    repository=${1//[^a-zA-Z0-9\.\/\_-]/}
    project=$(echo "${repository}" | sed -e 's/^\///i' -e 's/\.\././g' -e 's/^\.//i' -e 's/\.git$\|$/.git/i')
else
    echo "Error: No repository name given" && exit 1
fi

if [ -n "${2}" ] ; then
    # Sanitize new repository name
    newrepository=${2//[^a-zA-Z0-9\.\/\_-]/}
    newproject=$(echo "${newrepository}" | sed -e 's/^\///i' -e 's/\.\././g' -e 's/^\.//i' -e 's/\.git$\|$/.git/i')
else
    echo "Error: No new repository name given" && exit 1
fi


if [ -d "${project}" ] ; then

    if [[ ${newrepository} == */* ]] ; then
        mkdir -p "$(dirname "${HOME}/${newrepository}")"
    fi
    if [ -d "${newproject}" ] ; then
        echo "Error: Repository ${newrepository} already exists" && exit 1
    else
        mv "${HOME}/${project}" "${HOME}/${newproject}"
        echo "Repository ${repository} renamed to ${newrepository}"
        exit 0
    fi
else
    echo "Error: Repository ${repository} not found" && exit 1
fi
