#!/bin/bash

if [[ -n "$(ls | grep -e '.editorconfig')" ]]; then
	echo "Wrong directory!" >&2
	exit 1
fi

rm -rf revision.h
mkdir -p src/simutrans
mkdir src/simutrans/tool
mkdir src/simutrans/world
mkdir src/Windows

svn add src

svn mv  squirrel src/
svn mv  makeobj src/
svn mv nettools src/nettool

svn mv  obj src/simutrans/
svn mv  boden/wege/ src/simutrans/obj/way
svn mv  vehicle src/simutrans/

svn mv  bauer src/simutrans/builder
svn mv  boden src/simutrans/ground

svn mv  dataobj descriptor display gui io music network player script sound sys tpl utils src/simutrans/

# Additional reorganizations

svn mv unicode.{h,cc} src/simutrans/utils
svn mv simdepot.cc src/simutrans/obj/depot.cc
svn mv simdepot.h src/simutrans/obj/depot.h

svn mv  simmenu.{h,cc} src/simutrans/tool/

svn mv simworld.{h,cc} src/simutrans/world/
svn mv simplan.{h,cc} src/simutrans/world/
svn mv simcity.{h,cc} src/simutrans/world/

find . -maxdepth 1 -type f -name "*.h" -exec svn mv {} src/simutrans \;
find . -maxdepth 1 -type f -name "*.cc" -exec svn mv {} src/simutrans \;

svn mv finder/*.{h,cc} src/simutrans/world
svn rm --force finder

svn mv ifc/simtestdriver.h src/simutrans/vehicle/
svn mv ifc/sync_steppable.h src/simutrans/obj/
svn rm --force ifc

svn mv  simres.rc src/Windows
svn mv  Simutrans.manifest src/Windows
svn mv  nsis src/Windows

svn mv  OSX src
svn mv  android src

svn mv  scripts tools
svn mv  distribute.sh tools
svn mv  findversion.sh tools
svn mv  get_lang_files.* tools
svn mv  get_pak.* tools
svn mv  get_revision.* tools
svn mv  install-building-libs* tools
svn mv  revision.jse tools
svn mv  ../base.tab src
svn mv ../zipsrc.sh tools

svn mv ../patches src/

svn mv  *.ico src/simutrans
svn mv  simutrans.svg src/simutrans


# Remove _t suffix from files
find . -type f -name "*_t.cc" -o -name "*_t.h" | while read f; do svn mv $f $(echo $f | sed 's/_t\././'); done


# Update CMake source list
echo "" > cmake/SimutransSourceList.cmake

printf "target_sources(simutrans PRIVATE\n\t\$\{CMAKE_SOURCE_DIR\}\/revision.h\n" >> cmake/SimutransSourceList.cmake

f=$(find src/simutrans -type f -name "*.cc" | sort -u)
printf "\t$f" >> cmake/SimutransSourceList.cmake

printf "\n)" >> cmake/SimutransSourceList.cmake

# TODO fix include pathes

# TODO Update makeobj/nettool/Makefile/MSVC project + fix compile errors
# TODO Update location of paksetinfo.h in get_pak.sh

# TODO fix distribution and github actions

# prissi prefernces
# TODO add file prefixes to some files (like obj_ for objects)
# TODO rename xxx_vehicle.cc to vehicle_xxx.cc and so on
