#!/bin/sh
# Copyright (C) 2018 The Meme Factory, Inc.  http://www.meme.com/

# This file is part of PGWUI.
#
# 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
# <http://www.gnu.org/licenses/>.
#

# Karl O. Pinc <kop@meme.com>

commit_version() {
  git add src/$1/VERSION
  vnum=$(cat src/$1/VERSION)
  git commit -m "Bump version number to ${vnum}"
  git tag -a v${vnum} -m "Version v${vnum}"
}

update_version() {
  cp ../../VERSION src/$1/
  commit_version $1
}

change_project() {
  if git diff --cached --quiet ; then
    git diff --quiet
    needstash=$?
    if [ $needstash -eq 1 ] ; then
      git stash save -k
    fi
    update_version $1
    if [ $needstash -eq 1 ] ; then
      git stash pop
    fi
  else
    printf "$1 has changes in the index" >&2
  fi
}

enter_project() {
  if [ "$2" != '' ] ; then
    (cd $2 \
     && change_project $1)
  fi
}

find_project() {
  enter_project $1 "$(find $1 -maxdepth 1 -mindepth 1 -iname $1)"
}

for d in $(ls -d pgwui_*); do
  if [ "$d" != 'pgwui_venv' ] ; then
    find_project "$d"
  fi
done
