Merge branch 'feature-win-setup'

This commit is contained in:
Glen De Cauwsemaecker 2014-04-01 01:07:27 +02:00
commit b0403cf1cd
60 changed files with 1085 additions and 145 deletions

View file

@ -1,3 +1,6 @@
version=1.0
author=GlenDC
copyright=CodeCombat.com © 2013-2014
copyright=CodeCombat.com © 2013-2014
github_url=https://github.com/codecombat/codecombat.git
github_ssh=git@github.com:codecombat/codecombat.git
database_backup=http://23.21.59.137/dump.tar.gz

View file

@ -2,19 +2,21 @@
[32]
nodejs=http://nodejs.org/dist/v0.10.25/node-v0.10.25-x86.msi
ruby=http://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.0.0-p353.exe?direct
python=http://www.python.org/ftp/python/2.7.6/python-2.7.6.msi
python=https://www.python.org/ftp/python/2.7.6/python-2.7.6.msi
[64]
nodejs=http://nodejs.org/dist/v0.10.25/x64/node-v0.10.25-x64.msi
ruby=http://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.0.0-p353-x64.exe?direct
python=http://www.python.org/ftp/python/2.7.6/python-2.7.6.amd64.msi
python=https://www.python.org/ftp/python/2.7.6/python-2.7.6.amd64.msi
winsdk=http://download.microsoft.com/download/A/6/A/A6AC035D-DA3F-4F0C-ADA4-37C8E5D34E3D/winsdk_web.exe
[general]
gitbash=https://msysgit.googlecode.com/files/Git-1.8.5.2-preview20131230.exe
[win7]
visualstudio2010=http://download.microsoft.com/download/1/D/9/1D9A6C0E-FC89-43EE-9658-B9F0E3A76983/vc_web.exe
[Win7]
[32]
mongodb=http://fastdl.mongodb.org/win32/mongodb-win32-i386-2.5.4.zip
[64]
mongodb=http://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2008plus-2.5.4.zip
[vista]
[Vista]
[64]
mongodb=http://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2.5.4.zip
[32]

View file

@ -0,0 +1,7 @@
______ _____ _ _ _____ _____ _ _ ___________
| ___|_ _| \ | |_ _/ ___| | | || ___| _ \
| |_ | | | \| | | | \ `--.| |_| || |__ | | | |
| _| | | | . ` | | | `--. \ _ || __|| | | |
| | _| |_| |\ |_| |_/\__/ / | | || |___| |/ /
\_| \___/\_| \_/\___/\____/\_| |_/\____/|___/

View file

@ -0,0 +1,7 @@
_____ _____ _____ _ _ _ _______
| __ \_ _|_ _| | | | | | | ___ \
| | \/ | | | | | |_| | | | | |_/ /
| | __ | | | | | _ | | | | ___ \
| |_\ \_| |_ | | | | | | |_| | |_/ /
\____/\___/ \_/ \_| |_/\___/\____/

View file

@ -1,9 +0,0 @@
======================================================================
_____ _ _____ _ _
/ __ \ | | / __ \ | | | |
| / \/ ___ __| | ___ | / \/ ___ _ __ ___ | |__ __ _| |_
| | / _ \ / _` |/ _ \ | | / _ \| '_ ` _ \| '_ \ / _` | __|
| \__/\ (_) | (_| | __/ | \__/\ (_) | | | | | | |_) | (_| | |_
\____/\___/ \__,_|\___| \____/\___/|_| |_| |_|_.__/ \__,_|\__|
======================================================================

View file

@ -0,0 +1,7 @@
_____ ___________ _____ _ _ ___ ______ _____
/ ___|| _ | ___|_ _| | | |/ _ \ | ___ \ ___|
\ `--. | | | | |_ | | | | | / /_\ \| |_/ / |__
`--. \| | | | _| | | | |/\| | _ || /| __|
/\__/ /\ \_/ / | | | \ /\ / | | || |\ \| |___
\____/ \___/\_| \_/ \/ \/\_| |_/\_| \_\____/

View file

@ -0,0 +1,7 @@
_ _ _________ ___ ____________ _ _ _ _ _____ _ _
| \ | || ___ \ \/ | | ___ \ ___ \ | | | \ | / __ \| | | |
| \| || |_/ / . . | ______ | |_/ / |_/ / | | | \| | / \/| |_| |
| . ` || __/| |\/| | |______| | ___ \ /| | | | . ` | | | _ |
| |\ || | | | | | | |_/ / |\ \| |_| | |\ | \__/\| | | |
\_| \_/\_| \_| |_/ \____/\_| \_|\___/\_| \_/\____/\_| |_/

View file

@ -0,0 +1,29 @@
_____ _ _____ _ _
/ __ \ | | / __ \ | | | |
| / \/ ___ __| | ___ | / \/ ___ _ __ ___ | |__ __ _| |_
| | / _ \ / _` |/ _ \ | | / _ \| '_ ` _ \| '_ \ / _` | __|
| \__/\ (_) | (_| | __/ | \__/\ (_) | | | | | | |_) | (_| | |_
\____/\___/ \__,_|\___| \____/\___/|_| |_| |_|_.__/ \__,_|\__|
=============================================================================
Congratulations, you are now part of the CodeCombat community.
Now that your Develop Environment has been setup, you are ready to start
contributing and help us make this world a better place.
Do you have questions or would you like to meet us?
Talk with us on hipchat @ https://www.hipchat.com/g3plnOKqa
Another way to reach is, is by visiting our forum.
You can find it @ http://discourse.codecombat.com/
You can read about the latest developments on our blog site.
This one can be found @ http://blog.codecombat.com/
Last but not least, you can find most of our documentation
and information on our wiki @ https://github.com/codecombat/codecombat/wiki
We hope you'll enjoy yourself within our community, just as much as us.
- Nick, George, Scott, Michael, Jeremy and Glen

View file

@ -1,5 +1,7 @@
1) This program is all about automating the setup of the CoCo environment
2) When there is a question, please answer carefull and correct
3) This setup is still in beta and may contain bugs
4) You can report bugs @ 'https://github.com/codecombat/codecombat/issues'
5) Having questions/suggestions? Talk with us on HipChat via CodeCombat.com
1) When there is a question, please answer carefull and correct
2) This setup is still in beta and may contain bugs
3) You can report bugs @ 'https://github.com/codecombat/codecombat/issues'
4) Having questions/suggestions? Talk with us on HipChat via CodeCombat.com
You can find a step-by-step guide for this installation on our wiki.
https://github.com/codecombat/codecombat/wiki/<guide_path>

View file

@ -1,4 +0,0 @@
@echo off
setlocal EnableDelayedExpansion
get_var config/config.coco %1
endlocal

View file

@ -1,4 +0,0 @@
@echo off
setlocal EnableDelayedExpansion
get_var config/downloads.coco %1
endlocal

View file

@ -1,4 +0,0 @@
@echo off
setlocal EnableDelayedExpansion
get_var localisation/%1.coco %2
endlocal

View file

@ -0,0 +1,66 @@
[global]
native=Deutsch
intro=Ab jetzt senden wir unser Feedback in Englisch!
[install]
[system]
bit=-Bit System erkannt.
prefix=Es wurde das Betriebssystem
sufix=erkannt.
xp=Windows XP wird nicht unterstützt. Installation abgebrochen.
[process]
sks=Sind die für CodeCombat benötigten Programme bereits installiert?
skq=Wir empfehlen Ihnen, mit „Nein“ zu antorten, falls Sie unsicher sind.
skc=Überspringe Installation der Programme...
1=Ohne Software von Drittanbietern könnte CodeCombat nicht entwickelt werden.
2=Aus diesem Grund müssen Sie diese Software installieren,
3=um sich in der Community zu engagieren.
4=Wenn Sie ein Programm bereits installiert haben, brechen Sie die Installation bitte ab.
prefix=Haben Sie bereits die aktuellste Version von
sufix=installiert?
downloading=wird heruntergeladen...
installing=wird installiert...
unzipping=wird entpackt...
cleaning=wird aufgeräumt...
mongodbpath=Bitte geben Sie den kompletten Pfad an, an dem MongoDB installiert werden soll
[github]
[intro]
opensource=Wie Du bereits weißt, ist CodeCombat Open Source.
online=Unser Quellcode ist komplett auf Github.
manual=Wenn Du möchtest, kannst du das komplette Git Repository selbst herunterladen und nach deinen wünschen einrichten.
norec=Allerdings empfehlen wir, dass du den Prozess statt dessen uns überlässt.
[skip]
question=Willst du das lokale Git Setup selbst vornehmen?
consequence=Bit vergewissere dich, dass das Repository korrekt heruntergeladen wurde, bevor du fortfährst.
donotclose=Bitte schließe dieses Fenster nicht.
wait=Wenn du fertig bist, drücke eine beliebige Taste zum Fortfahren...
[process]
path=Gebe bitte den kompletten Pfad zu deinem CodeCombat Git Repository ein:
checkout=Bitte gib den kompletten Pfad ein, an dem du die CodeCombat Umgebung einrichten willst
bashi=Diese Installation benötigt die Git Bash.
bashp64=Die Git Bash ist standardmäßig in 'C:\Program Files (x86)\Git' installiert.
bashp32=Die Git Bash ist standardmäßig in 'C:\Program Files\Git' installiert.
bashq=Bitte gebe den kompletten Pfad zur Git Bash ein, oder drücke Enter, um den Standardpfad zu verwenden
ssh=Willst du das Repository via SSH auschecken?
[npm]
install=Installing bower, brunch, nodemon and sendwithus...
binstall=Installing bower packages...
sass=Installing sass...
npm=Installing npm...
brnch=Starting brunch....
mongodb=Setting up a MongoDB database for you...
database=Downloading the last version of the CodeCombat database...
script=Preparing the automatic startup script for you...
[error]
path=Dieser Pfad existiert bereits. Willst du ihn wirklich überschreiben?
exist=Dieser Pfad exisitert nicht. Bitte versuche es erneut...
[end]
succesfull=Die CodeCombat Entwicklungsumgebung wurde erfoglreich installiert.
thankyou=Vielen Dank für die Unterstützung und bis bald.
readme=Willst du das README lesen, um weitere Informationen zu erhalten?
[start]
1=Von nun an kannst du die Entwicklungsumgebung starten unter
2=einmal mit der Maus klicken.
3= 1) Einfach Doppelklicken
4=und warten bis die Entwicklungsumgebung fertig geladen hat.
5= 2) Jetzt 'localhost:3000' in deinem bevorzugten Browser aufrufen.
6=Fertig. Du bist nun bereit, bei CodeCombat mitzuarbeiten!

View file

@ -1,41 +1,66 @@
[global]
native=English
bye=Bye Bye!
intro=From now on we'll send our feedback in English!
[install]
begin=Installation has begun, this can take a while... Please stay tuned...
close=Don't close any windows please, unless specified explicitly.
[dai]
title=[DOWNLOADING AND INSTALLING 3RD PARTY SOFTWARE]
downloading=downloading:
installing=installing:
cancel=Download and Installation cancelled...
software=Software has been installed...
devenv=Installation of the Developers Environment is complete!
stop=Installation has been stopped...
unpacking=unpacking and moving:
bower=Installing bower, brunch, nodemon and sendwithus...
[git]
stored=CodeCombat is safely stored on a git repository.
clapp=Therefore you need a git command-line application (Git-bash).
examples=Examples: git-bash, CygWin, ...
question=Do you already have git-bash?
path=Enter the path to where you installed Git-bash
checkout=Checking out the Git Repository...
username=Please enter your github username:
[nodejs]
question=Do you already have the latest version of node-js installed?
path=Please enter the full path of the location you installed nodejs to:
[ruby]
question=Do you already have the latest version of ruby installed?
[mongodb]
question=Do you already have the latest version of mongo-db installed?
path=Enter the path where you would like to install MongoDB:
[python]
question=Do you already have the latest version of python installed?
[system]
bit=-bit computer detected.
prefix=The operating system
sufix=was detected.
xp=We don't support Windows XP, installation cancelled.
[process]
sks=Have you already installed all the software needed for CodeCombat?
skq=We recommand that you reply negative in case you're not sure.
skc=Skipping the installation of the software...
1=CodeCombat couldn't be developed without third-party software.
2=That's why you'll need to install this software,
3=in order to start contributing to our community.
4=Cancel the installation if you already have the application.
prefix=Do you already have the latest version of
sufix=installed?
downloading=is downloading...
installing=is installing...
unzipping=is unzipping...
cleaning=is cleaning...
mongodbpath=Please define the full path where mongodb should be installed
[github]
[intro]
opensource=CodeCombat is opensource, like you already know.
online=All our sourcecode can be found online at Github.
manual=You can choose to do the entire Git setup yourself.
norec=However we recommend that you instead let us handle it instead.
[skip]
question=Do you want to do the Local Git setup manually yourself?
consequence=Make sure you have correctly setup your repository before processing.
donotclose=Do not close this window please.
wait=When you're ready, press any key to continue...
[process]
path=Please give the full path of your CodeCombat git repository:
checkout=Please enter the full path where you want to install your CodeCombat environment
bashi=This installation requires Git Bash.
bashp64=Git bash is by default installed at 'C:\Program Files (x86)\Git'.
bashp32=Git bash is by default installed at 'C:\Program Files\Git'.
bashq=Please enter the full path where git bash is installed or just press enter if it's in the default location
ssh=Do you want to checkout the repository via ssh?
[npm]
install=Installing bower, brunch, nodemon and sendwithus...
binstall=Installing bower packages...
sass=Installing sass...
npm=Installing npm...
brnch=Starting brunch....
mongodb=Setting up a MongoDB database for you...
db=Downloading the last version of the CodeCombat database...
script=Preparing the automatic startup script for you...
[error]
xp=Sadly we can't support Windows XP... Please upgrade your OS!
os=Machine OS cannot be determined...
osreport=Report your OS to the developers @ CodeCombat.com...
nocleaning=... Cleaning up has been disabled... Terminating Script!
git_app_path=The path to your git application is incorrect, please try again...
invalid_path=The path you entered is invalid, please try again...
path=That path already exists, are you sure you want to overwrite it?
exist=That path doesn't exist. Please try again...
[end]
succesfull=The setup of the CodeCombat Dev. Environment was succesfull.
thankyou=Thank you already for your contribution and see you soon.
readme=Do you want to read the README for more information?
[start]
1=From now on you can start the dev. environment at
2=the touch of a single mouse click.
3= 1) Just double click
4= and let the environment start up.
5= 2) Now just open 'localhost:3000' in your prefered browser.
6=That's it, you're now ready to start working on CodeCombat!

View file

@ -0,0 +1,3 @@
en
nl
de

View file

@ -1,41 +1,66 @@
[global]
native=English
bye=Bye Bye!
native=Nederlands
intro=Vanaf nu geven we onze feedback in het Nederlands!
[install]
begin=De installatie is begonnen, dit kan een tijdje duren. Geduld alsjeblieft...
close=Don't close any windows please, unless specified explicitly.
[dai]
title=[DOWNLOADING AND INSTALLING 3RD PARTY SOFTWARE]
downloading=downloading:
installing=installing:
cancel=Download and Installation cancelled...
software=Software has been installed...
devenv=Installation of the Developers Environment is complete!
stop=Installation has been stopped...
unpacking=unpacking and moving:
bower=Installing bower, brunch, nodemon and sendwithus...
[git]
stored=CodeCombat is safely stored on a git repository.
clapp=Therefore you need a git command-line application (Git-bash).
examples=Examples: git-bash, CygWin, ...
question=Do you already have git-bash?
path=Enter the path to where you installed Git-bash
checkout=Checking out the Git Repository...
username=Please enter your github username:
[nodejs]
question=Do you already have the latest version of node-js installed?
path=Please enter the full path of the location you installed nodejs to:
[ruby]
question=Do you already have the latest version of ruby installed?
[mongodb]
question=Do you already have the latest version of mongo-db installed?
path=Enter the path where you would like to install MongoDB:
[python]
question=Do you already have the latest version of python installed?
[system]
bit=-bit computer gedetecteerd.
prefix=Het besturingsysteem
sufix=is gedetecteerd.
xp=Wij ondersteunen Windows XP niet, installatie geanulleerd.
[process]
sks=Heb je alle benodige software al geinstalleerd?
skq=We raden aan dat je negatief antwoord indien je niet zeker bent.
skc=De installatie van software wordt geanulleerd...
1=CodeCombat kon niet worden ontwikkeld zonder third-party software.
2=Dat is waarom je deze software moet installeren,
3=zodat je je kan beginnen met het bijdragen tot onze gemeenschap.
4=Annuleer de installatie als je de applicatie al hebt.
prefix=Heb je al de laatste versie van
sufix=geinstalleerd?
downloading=is aan het downloaden...
installing=is aan het installeren...
unzipping=is aan het uitpakken...
cleaning=is aan het opkuisen...
mongodbpath=Geef het volledige pad op, waar mongodb mag worden geinstalleerd
[github]
[intro]
opensource=CodeCombat is opensource, zoals je waarschijnlijk wel al weet.
online=Je kan al onze sourcecode vinden op Github.
manual=Indien je wil, kan je de Git setup manueel doen.
norec=Maar wij raden aan dat je ons dit automatisch laat afhandellen.
[skip]
question=Wil je de lokale Git setup manueel doen?
consequence=Zorg er zeker voor dat jouw git repository correct is.
donotclose=Sluit dit venster niet alsjeblieft.
wait=Wanneer je klaar bent, druk dan eender welke toets om verder te gaan...
[process]
path=Geef alsjeblieft het volledige pad van je CodeCombat git repository:
checkout=Geef alsjeblieft het volledige pad waar je de CodeCombat Ontwikkelings omgeving will installeren
bashi=Deze installatie maakt gebruik van Git Bash.
bashp64=Git bash is normaal geinstalleerd in 'C:\Program Files (x86)\Git'.
bashp32=Git bash is normaal geinstalleerd in 'C:\Program Files\Git'.
bashq=Geef alsjeblieft het volledige pad op van Git Bash of druk gewoon op enter indien je het pad niet gewijzigd heeft
ssh=Wil je het git project downloaden via ssh?
[npm]
install=Installing bower, brunch, nodemon and sendwithus...
binstall=Installing bower packages...
sass=Installing sass...
npm=Installing npm...
brnch=Starting brunch....
mongodb=Setting up a MongoDB database for you...
database=Downloading the last version of the CodeCombat database...
script=Preparing the automatic startup script for you...
[error]
xp=Sadly we can't support Windows XP... Please upgrade your OS!
os=Machine OS cannot be determined...
osreport=Report your OS to the developers @ CodeCombat.com...
nocleaning=... Cleaning up has been disabled... Terminating Script!
git_app_path=The path to your git application is incorrect, please try again...
invalid_path=The path you entered is invalid, please try again...
path=Dat pad bestaat al, ben je zeker dat je het wil overschrijven?
exist=Dat pad bestaat niet, probeer alsjeblieft opnieuw...
[end]
succesfull=De installatie van de CodeCombat-Ontwikkelings omgeving was succesvol.
thankyou=Alvast bedankt voor al je werk en tot binnenkort.
readme=Wil je de LEESMIJ lezen voor meer informatie?
[start]
1=Vanaf nu kan je de ontwikkelings omgeving opstarten
2=met het gemak van een enkele muisklik.
3= 1) Dubbelklik op
4=en laat de omgeving opstarten.
5= 2) Nu kan je 'localhost:3000' openen in je browser naar voorkeur.
6=Dat is het, je bent nu klaar om te starten met je werk aan CodeCombat.

View file

@ -1,4 +0,0 @@
@echo off
setlocal EnableDelayedExpansion
print_file config/header.coco
endlocal

View file

@ -1,4 +0,0 @@
@echo off
setlocal EnableDelayedExpansion
print_file config/info.coco
endlocal

View file

@ -1,4 +0,0 @@
@echo off
setlocal EnableDelayedExpansion
print_file config/license.coco
endlocal

View file

@ -1,4 +0,0 @@
@echo off
setlocal EnableDelayedExpansion
print_file config/tips.coco
endlocal

View file

@ -0,0 +1,5 @@
set /p res="%1 [Y/N]: "
set "result=unset"
if "%res%"=="Y" (set "result=true")
if "%res%"=="y" (set "result=true")
if "%result%"=="unset" (set "result=false")

View file

@ -0,0 +1,68 @@
set "temp_directory=c:\.coco\"
set "curl_app=..\utilities\curl.exe"
set "zu_app=..\utilities\7za.exe"
if NOT exist "%temp_directory%" (
md %temp_directory%
)
call get_local_text install-process-prefix
call get_local_text install-process-sufix
call ask_question "!install_process_prefix! %1 !install_process_sufix!"
if "%result%"=="true" (
goto:exit_installation
)
call print_dashed_seperator
call get_extension %2 download_extension
call get_local_text install-process-downloading
echo %1 !install_process_downloading!
set "install_file=!temp_directory!%1.!download_extension!"
%curl_app% -k %2 -o !install_file!
if "%download_extension%"=="zip" (
set "package_path=!temp_directory!%1\"
%zu_app% x !install_file! -o!package_path! -y
for /f "delims=" %%a in ('dir !package_path! /on /ad /b') do @set mongodb_original_directory=%%a
call print_dashed_seperator
goto:get_mongodb_path
:get_mongodb_path
call get_local_text install-process-mongodbpath
set /p "mongodb_path=!install_process_mongodbpath!: "
if exist "%mongodb_path%" (
call get_local_text error-path
call ask_question "!error_path!"
if "!result!"=="false" (
call print_dashed_seperator
goto:get_mongodb_path
) else (
rmdir /s /q %mongodb_path%
)
)
md %mongodb_path%
%systemroot%\System32\xcopy !package_path!!mongodb_original_directory! !mongodb_path! /r /h /s /e /y
goto:clean_up
)
call get_local_text install-process-installing
echo %1 !install_process_installing!
echo.
start /WAIT !install_file!
goto:clean_up
:clean_up
call get_local_text install-process-cleaning
echo %1 !install_process_cleaning!
rmdir /s /q "!temp_directory!"
goto:exit_installation
:exit_installation
call print_dashed_seperator

View file

@ -0,0 +1,48 @@
call print_install_header
call print_dashed_seperator
call get_local_text install-process-sks
echo !install_process_sks!
call get_local_text install-process-skq
call ask_question "!install_process_skq!"
call print_dashed_seperator
if "%result%"=="true" (
call get_local_text install-process-skc
echo !install_process_skc!
call print_dashed_seperator
goto:exit_setup
)
call get_system_information
call print_dashed_seperator
if %system_info_os% == XP (
call get_local_text install-system-xp
echo !install_system_xp!
call print_exit
)
call get_category ..\\config\\downloads.coco downloads download_names downloads_count general-general general-%system_info_bit% %system_info_os%-%system_info_bit%
call get_local_text install-process-1
call get_local_text install-process-2
call get_local_text install-process-3
call get_local_text install-process-4
echo !install_process_1!
echo !install_process_2!
echo !install_process_3!
echo !install_process_4!
call print_dashed_seperator
for /l %%i in (1, 1, !downloads_count!) do (
call download_and_install_app !download_names[%%i]! !downloads[%%i]!
)
goto:exit_setup
:exit_setup

View file

@ -0,0 +1,6 @@
set "file=%1"
set /a %3=0
for /F "usebackq delims=" %%a in ("%file%") do (
set /A %3+=1
call set %2[%%%3%%]=%%a
)

View file

@ -0,0 +1,3 @@
for /f "delims=" %%a in ('..\\utilities\\get_category.exe %*') do (
%%a
)

View file

@ -0,0 +1 @@
for /f "delims=" %%a in ('..\\utilities\\get_var.exe ..\\config\\config.coco %1') do set "%%a"

View file

@ -0,0 +1 @@
for /f "delims=" %%a in ('..\\utilities\\get_var.exe ..\\config\\downloads.coco %1') do set "%%a"

View file

@ -0,0 +1,3 @@
for /f "delims=" %%a in ('..\\utilities\\get_extension.exe %1 %2') do (
%%a
)

View file

@ -0,0 +1,36 @@
echo Some feedback is sent in your system's language
echo but most feedback is sent and localised by us.
echo Here is a list of languages:
call print_dashed_seperator
call get_array ..\\localisation\\languages.coco languages language_count
for /l %%i in (1,1,%language_count%) do (
call get_text !languages[%%i]! "global-native"
echo [%%i] !global_native!
)
goto:get_localisation_id
:get_localisation_id
call print_dashed_seperator
set /p "localisation_id=Enter the language ID of your preference and press <ENTER>: "
goto:validation_check
:validation_check
set "localisation_is_false="
set /a local_id = %localisation_id%
if !local_id! EQU 0 set localisation_is_false=1
if !local_id! LSS 1 set localisation_is_false=1
if !local_id! GTR !language_count! set localisation_is_false=1
if defined localisation_is_false (
echo The id you entered is invalid, please try again...
goto:get_localisation_id
) else (
set language_id=!languages[%local_id%]!
call get_text !language_id! "global-native"
call print_dashed_seperator
echo You have choosen !global_native! as your language.
call get_text !language_id! "global-intro"
echo !global_intro!
call print_seperator
)

View file

@ -0,0 +1 @@
call get_text %language_id% %1

View file

@ -0,0 +1,10 @@
goto:get_safe_path
:get_safe_path
set /p "tmp_safe_path=%1"
if not exist "%tmp_safe_path%" (
call get_local_text error-exist
echo !error_exist!
call print_dashed_seperator
goto:get_safe_path
)

View file

@ -0,0 +1,31 @@
if exist "%PROGRAMFILES(X86)%" (
call:set_bit 64
) else (
call:set_bit 32
)
for /f "tokens=4-5 delims=. " %%i in ('ver') do set VERSION=%%i.%%j
if "%version%" == "5.2" ( call:set_os XP )
if "%version%" == "6.0" ( call:set_os Vista )
if "%version%" == "6.1" ( call:set_os Win7 )
:: we handle win8.0 as win7
if "%version%" == "6.2" ( call:set_os Win7 )
:: we handle win8.1 as win7
if "%version%" == "6.3" ( call:set_os Win7 )
goto:end
:set_bit
call get_local_text install-system-bit
set system_info_bit=%~1
echo %system_info_bit%%install_system_bit%
goto:eof
:set_os
set system_info_os=%~1
call get_local_text install-system-prefix
call get_local_text install-system-sufix
echo %install_system_prefix% %system_info_os% %install_system_sufix%
goto:eof
:end

View file

@ -0,0 +1,3 @@
for /f "delims=" %%a in ('..\\utilities\\get_var.exe ..\\localisation\\%1.coco %2') do (
set "%%a"
)

View file

@ -0,0 +1,115 @@
call print_github_header
call print_dashed_seperator
call get_local_text github-intro-opensource
call get_local_text github-intro-online
call get_local_text github-intro-manual
call get_local_text github-intro-norec
echo !github_intro_opensource!
echo !github_intro_online!
echo !github_intro_manual!
echo !github_intro_norec!
call print_dashed_seperator
call get_local_text github-skip-question
call ask_question "!github_skip_question!"
call print_dashed_seperator
if "%result%"=="true" (
call get_local_text github-skip-consequence
echo !github_skip_consequence!
call get_local_text github-skip-donotclose
echo !github_skip_donotclose!
call get_local_text github-skip-wait
set /p "github_skip_wait=!github_skip_wait!"
call print_dashed_seperator
call get_local_text github-process-path
call get_path_safe "!github_process_path!"
set "repository_path=!tmp_safe_path!"
goto:exit_git_setup
)
goto:get_bash_path
:get_bash_path
call get_local_text github-process-bashi
echo !github_process_bashi!
if not defined install_system_bit (
call print_dashed_seperator
call get_system_information
call print_dashed_seperator
)
if "%system_info_bit%"=="64" (
call get_local_text github-process-bashp64
echo !github_process_bashp64!
) else (
call get_local_text github-process-bashp32
echo !github_process_bashp32!
)
call get_local_text github-process-bashq
set /p "git_bash_path=!github_process_bashq!: "
if not defined git_bash_path (
if "%system_info_bit%"=="64" (
set "git_bash_path=C:\Program Files (x86)\Git"
) else (
set "git_bash_path=C:\Program Files\Git"
)
goto:get_git_path
)
if not exist "%git_bash_path%" (
call get_local_text error-exist
echo !error_exist!
call print_dashed_seperator
goto:get_bash_path
) else (
goto:get_git_path
)
goto:eof
:get_git_path
call print_dashed_seperator
call get_local_text github-process-checkout
set /p "repository_path=!github_process_checkout!: "
if exist !repository_path! (
call get_local_text error-path
call ask_question "!error_path!"
if "!result!"=="false" (
call print_dashed_seperator
goto:get_git_path
) else (
rmdir /s /q %repository_path%
goto:git_checkout
)
) else (
goto:git_checkout
)
goto:eof
:git_checkout
md "%repository_path%"
set "repository_path=%repository_path%\coco"
call print_dashed_seperator
set "git_app_path=%git_bash_path%\bin\git.exe"
call get_config github_url
"%git_app_path%" clone "!github_url!" "%repository_path%"
goto:exit_git_setup
goto:eof
:exit_git_setup
call print_dashed_seperator
goto:eof

View file

@ -0,0 +1,89 @@
call print_npm_and_brunch_header
call print_dashed_seperator
set work_directory=%CD%
set "curl_app=..\utilities\curl.exe"
set "zu_app=..\utilities\7za.exe"
set "keystuff=..\utilities\keystuff.exe"
set "coco_root=!repository_path!\coco"
goto:automatic_script
call get_local_text npm-install
echo !npm_install!
cd !coco_root!
start /wait cmd /c "echo !npm_install! & npm install -g bower brunch nodemon sendwithus"
cd !work_directory!
call print_dashed_seperator
call get_local_text npm-binstall
echo !npm_binstall!
cd "!coco_root!"
start /wait cmd /c "echo !npm_binstall! & bower install"
cd "!work_directory!"
call print_dashed_seperator
call get_local_text npm-sass
echo !npm_sass!
cd "!coco_root!"
start /wait cmd /c "echo !npm_sass! & gem install sass"
cd "!work_directory!"
call print_dashed_seperator
call get_local_text npm-npm
echo !npm_npm!
cd "!coco_root!"
start /wait cmd /c "echo !npm_npm! & npm install"
cd "!work_directory!"
:: --- MONGODB
:mongodb
call print_dashed_seperator
call get_local_text npm-mongodb
echo !npm_mongodb!
set "mdb_directory=!repository_path!\cocodb"
if exist mdb_directory (
rmdir /s /q "!mdb_directory!"
)
md !mdb_directory!
call print_dashed_seperator
call get_local_text npm-db
echo !npm_db!
call get_config database_backup
cd !mdb_directory!
start cmd /c "%work_directory%\%keystuff% Alt-Tab && mongod --setParameter textSearchEnabled=true --dbpath !mdb_directory!"
%curl_app% -k !database_backup! -o dump.tar.gz
start /wait cmd /c "%work_directory%\%keystuff% Alt-Tab && %zu_app% e dump.tar.gz && del dump.tar.gz && %zu_app% x dump.tar && del dump.tar"
start /wait cmd /c "mongorestore dump"
rmdir /s /q db
:: --- AUTOMATIC SCRIPT
::automatic_script
call print_dashed_seperator
call get_local_text npm-script
echo !npm_script!
:: --- END
call print_dashed_seperator
pause

View file

@ -0,0 +1 @@
call open_text_file ..\\config\\readme.coco

View file

@ -0,0 +1 @@
start notepad.exe %1

View file

@ -0,0 +1,3 @@
echo.
echo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
echo.

View file

@ -0,0 +1,2 @@
set /p res="Press any key to exit..."
exit

View file

@ -1,7 +1,4 @@
@echo off
setlocal EnableDelayedExpansion
set "file=%1"
for /f "usebackq tokens=* delims=;" %%a in ("%file%") do (
echo.%%a
)
endlocal
)

View file

@ -0,0 +1 @@
call print_file ..\\config\\finished_header.coco

View file

@ -0,0 +1 @@
call print_file ..\\config\\github_header.coco

View file

@ -0,0 +1 @@
call print_file ..\\config\\header.coco

View file

@ -0,0 +1 @@
print_file ..\\config\\info.coco

View file

@ -0,0 +1 @@
call print_file ..\\config\\install_header.coco

View file

@ -0,0 +1 @@
print_file ..\\config\\license.coco

View file

@ -0,0 +1 @@
call print_file ..\\config\\npm_and_brunch_header.coco

View file

@ -0,0 +1,3 @@
echo.
echo -----------------------------------------------------------------------------
echo.

View file

@ -0,0 +1 @@
print_file ..\\config\\tips.coco

View file

@ -0,0 +1,67 @@
@echo off
setlocal EnableDelayedExpansion
Color 0A
mode con: cols=78 lines=55
call print_header
call print_dashed_seperator
call get_config version
call get_config author
call get_config copyright
echo Welcome to the automated Installation of the CodeCombat Dev. Environment!
echo v%version% authored by %author% and published by %copyright%.
call print_seperator
echo Before we start the installation, here are some tips:
call print_tips
call print_seperator
call sign_license
call get_language
call download_and_install_applications
call github_setup
:: This will be available in v2.0
::call npm_and_brunch_setup
call print_finished_header
call print_dashed_seperator
call get_local_text end-succesfull
call get_local_text end-thankyou
echo %end_succesfull%
echo %end_thankyou%
call print_dashed_seperator
call get_local_text start-1
call get_local_text start-2
call get_local_text start-3
call get_local_text start-4
call get_local_text start-5
call get_local_text start-6
echo !start_1!
echo !start_2!
echo.
echo !start_3! '!repository_path!\coco\SCOCODE.bat'
echo !start_4!
echo !start_5!
echo.
echo !start_6!
call print_dashed_seperator
call get_local_text end-readme
call ask_question "!end_readme!"
if "%result%"=="true" (
call open_readme
)
endlocal

View file

@ -0,0 +1,15 @@
echo In order to continue the installation of the developers environment
echo you will have to read and agree with the following license:
call print_dashed_seperator
call print_license
call print_dashed_seperator
call ask_question "Have you read the license and do you agree with it?"
call print_dashed_seperator
if "%result%"=="false" (
echo This setup can't happen without an agreement.
echo Installation and Setup of the CodeCombat environment is cancelled.
call print_exit
)

View file

@ -0,0 +1,2 @@
cd scripts
setup.bat

Binary file not shown.

View file

@ -5,26 +5,11 @@ setlocal EnableDelayedExpansion
set "ZU-app=batch\utilities\7za.exe"
set "title=coco-dev-win-setup"
call:parse_file_new "batch\config\config" cnfg n
set "sf=%cnfg[1]%"
cd batch\\scripts\\
call get_config version
cd ..\\..\\
%ZU-app% a "%title%-%sf%.zip" .\batch\*
:: ================= FUNCTIONS =========================
:parse_file
set "file=%~1"
for /F "usebackq delims=" %%a in ("%file%") do (
set /A %~3+=1
call set %~2[%%%~3%%]=%%a
)
goto:eof
:parse_file_new
set /A %~3=0
call:parse_file %~1 %~2 %~3
goto:eof
%ZU-app% a "%title%-%version%.zip" .\batch\*
:: =================== EOF =============================

View file

@ -0,0 +1,146 @@
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <vector>
#include <sstream>
#include <string>
#define tstring std::wstring
#define tcout std::wcout
static const tstring DEF_URL = L"http://www.google.com";
int ErrorReport(const tstring & str, int value = 0)
{
tcout << str.c_str();
return value;
}
void GetHashInfo(tstring id, std::vector<std::wstring> & info) {
while(id.size() > 0)
{
size_t pos = id.find(L'-');
tstring substr =
id.substr(0, pos == tstring::npos ? id.length() : pos);
info.push_back(substr);
if(pos == tstring::npos) id = L"";
else
{
++pos;
id = id.substr(pos, id.length() - pos);
}
}
}
void SetArrayVariable(
const tstring & name,
int id,
const tstring & line
)
{
tcout << L"set \"";
tcout << name;
tcout << L"[" << id << "]";
tcout << L"=" << line;
tcout << L"\"" << std::endl;
}
void FillArray(
const std::vector<tstring> & info,
const tstring & name,
const tstring & id_array_name,
const tstring & file,
int & id
)
{
if(info.size() == 0) return;
auto it = info.begin();
size_t indention = 0;
unsigned int nlc = 0;
std::wifstream infile(file.c_str(), std::ifstream::in);
if(!infile)
{
#ifdef _DEBUG
tcout << file.c_str() << std::endl;
tcout << strerror(errno) << std::endl;
#endif
return;
}
tstring line;
int counter = 1;
while (std::getline(infile, line))
{
size_t cpos = line.find('[');
if(cpos == tstring::npos)
{
cpos = line.find_first_not_of(L" \t\r\n");
}
if(nlc++ == 0 || cpos == indention)
{
indention = cpos;
if(it == info.end())
{
size_t pos = line.find(L'=') + 1;
SetArrayVariable(
name, id,
line.substr(pos, line.size() - pos)
);
SetArrayVariable(
id_array_name, id++,
line.substr(cpos, pos - 3)
);
++counter;
}
else if(line.find(*it) != tstring::npos)
{
++it;
nlc = 0;
}
}
else if(counter > 1)
{
return;
}
}
infile.close();
return;
}
int _tmain(int argc, _TCHAR* argv[])
{
if(argc == 1)
return ErrorReport(L"Please specify a localisation file.");
else if(argc == 2)
return ErrorReport(L"Please specify the name of the array.");
else if(argc == 3)
return ErrorReport(L"Please specify the name of the name-array.");
else if(argc == 4)
return ErrorReport(L"Please specify the counter parameter.");
else if(argc == 5)
return ErrorReport(L"Please specify one or more categories you are looking for.");
tstring file, name, counter_name, id_array_name;
file = argv[1];
name = argv[2];
id_array_name = argv[3];
counter_name = argv[4];
int id = 1;
for(int i = 5 ; i < argc ; ++i)
{
std::vector<tstring> information;
GetHashInfo(argv[i], information);
FillArray(information, name, id_array_name, file, id);
}
tcout << L"set \"" << counter_name << L"=" << (id - 1) << L"\"";
return 0;
}

View file

@ -0,0 +1,36 @@
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <vector>
#include <sstream>
#include <string>
#define tstring std::wstring
#define tcout std::wcout
int ErrorReport(const tstring & str, int value = 0)
{
tcout << str.c_str();
return value;
}
int _tmain(int argc, _TCHAR* argv[])
{
if(argc == 1)
return ErrorReport(L"Please specify a download URL.");
if(argc == 2)
return ErrorReport(L"Please specify a name for your variable.");
tstring url, name, extension;
url = argv[1];
name = argv[2];
if(url.find(L"exe") != tstring::npos) extension = L"exe";
else if(url.find(L"msi") != tstring::npos) extension = L"msi";
else if(url.find(L"zip") != tstring::npos) extension = L"zip";
tcout << L"set \"" << name << L"=";
tcout << extension << L"\"";
return 0;
}

View file

@ -0,0 +1,108 @@
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <vector>
#include <sstream>
#include <string>
#define tstring std::wstring
#define tcout std::wcout
static const tstring DEF_URL = L"http://www.google.com";
int ErrorReport(const tstring & str, int value = 0)
{
tcout << str.c_str();
return value;
}
void GetHashInfo(tstring id, std::vector<std::wstring> & info) {
while(id.size() > 0)
{
size_t pos = id.find(L'-');
tstring substr =
id.substr(0, pos == tstring::npos ? id.length() : pos);
info.push_back(substr);
if(pos == tstring::npos) id = L"";
else
{
++pos;
id = id.substr(pos, id.length() - pos);
}
}
}
std::wstring GetText(const std::vector<tstring> & info, const tstring & file)
{
if(info.size() == 0) return L"Info Size is 0.";
auto it = info.begin();
auto last = info.end() - 1;
size_t indention = 0;
unsigned int nlc = 0;
std::wifstream infile(file.c_str(), std::ifstream::in);
if(!infile)
{
#ifdef _DEBUG
tcout << file.c_str() << std::endl;
tcout << strerror(errno) << std::endl;
#endif
return L"File couldn't be opened.";
}
tstring line;
while (std::getline(infile, line))
{
size_t cpos = line.find('[');
if(nlc++ == 0 || cpos == indention)
{
indention = cpos;
if(line.find(*it) != tstring::npos)
{
if(it == last)
{
size_t pos = line.find(L'=') + 1;
infile.close();
return line.substr(pos, line.size() - pos);
}
else
{
++it;
nlc = 0;
}
}
}
}
infile.close();
return L"Var couldn't be found.";
}
int _tmain(int argc, _TCHAR* argv[])
{
if(argc == 1)
return ErrorReport(L"Please specify a localisation file.");
else if(argc == 2)
return ErrorReport(L"Please specify the ID you are looking for.");
tstring file, hash;
file = argv[1];
hash = argv[2];
std::vector<tstring> information;
GetHashInfo(hash, information);
size_t size = information.size();
for(unsigned int i = 0 ; i < size ; ++i)
{
tcout << information[i];
if(i != size - 1) tcout << L"_";
}
tcout << L"=" << GetText(information, file);
return 0;
}