airport: Misc. Updates.
* Allow to build a particular series (e.g. Airport Europe) * Refactor start/stop scripts. * Add script for stopping a game.
This commit is contained in:
parent
85b47adf35
commit
af18cc6c91
|
@ -8,7 +8,7 @@ rcdefault := /etc/runlevels/default
|
|||
preinstall:
|
||||
|
||||
|
||||
postinstall: airport.service settings.py firstboot.start zzairport.start issue nginx.conf
|
||||
postinstall: airport.service settings.py local.start local.stop issue nginx.conf start-airport stop-airport stop-game
|
||||
sed -i 's/^PG_INITDB_OPTS.*/PG_INITDB_OPTS="--locale=en_US.UTF-8"/' $(CHROOT)/etc/conf.d/postgresql-$(PGVER)
|
||||
$(inroot) eselect postgresql set $(PGVER)
|
||||
rm -rf $(CHROOT)/var/lib/postgresql/$(PGVER)
|
||||
|
@ -18,19 +18,28 @@ postinstall: airport.service settings.py firstboot.start zzairport.start issue n
|
|||
$(inroot) $(EMERGE) -1n $(USEPKG) dev-python/virtualenv
|
||||
rm -rf $(CHROOT)/$(APP_ROOT)
|
||||
hg clone -u $(AIRPORT_BRANCH) $(AIRPORT_REPO) $(CHROOT)/$(APP_ROOT)
|
||||
echo 'VERSION="'`date +1.%y%m%d.%H%m`'"' > $(CHROOT)/$(APP_ROOT)/djangoproject/airport/__init__.py
|
||||
chroot $(CHROOT) virtualenv -p /usr/bin/python3.2 $(APP_ROOT)
|
||||
chroot $(CHROOT) virtualenv -p /usr/bin/python3 $(APP_ROOT)
|
||||
$(inroot) bash -c ". $(APP_ROOT)/bin/activate ; pip install -r $(APP_ROOT)/requirements.txt"
|
||||
$(inroot) bash -c ". $(APP_ROOT)/bin/activate ; pip install psycopg2 uwsgi"
|
||||
mkdir -p $(CHROOT)/$(APP_ROOT)/etc
|
||||
touch $(CHROOT)/$(APP_ROOT)/etc/__init__.py
|
||||
cp settings.py $(CHROOT)/$(APP_ROOT)/etc
|
||||
$(inroot) id -u airport >/dev/null || $(inroot) useradd -d $(APP_ROOT) -M -s /bin/false -U -G postgres airport
|
||||
$(inroot) id -u airport >/dev/null || $(inroot) useradd -d $(APP_ROOT) -M -U -G postgres airport
|
||||
mkdir -p $(CHROOT)/$(APP_ROOT)/bin
|
||||
cp start-airport $(CHROOT)/$(APP_ROOT)/bin/start-airport
|
||||
cp stop-airport $(CHROOT)/$(APP_ROOT)/bin/stop-airport
|
||||
cp stop-game $(CHROOT)/$(APP_ROOT)/bin/stop-game
|
||||
$(inroot) chown -R airport:airport $(APP_ROOT)
|
||||
cp firstboot.start $(CHROOT)/etc/local.d
|
||||
cp zzairport.start $(CHROOT)/etc/local.d
|
||||
cp local.start $(CHROOT)/etc/local.d/airport.start
|
||||
cp local.stop $(CHROOT)/etc/local.d/airport.stop
|
||||
ifdef AIRPORT_SERIES
|
||||
cat settings_$(AIRPORT_SERIES).py >> $(CHROOT)/$(APP_ROOT)/etc/settings.py
|
||||
cp $(CHROOT)/$(APP_ROOT)/djangoproject/airport/fixtures/$(AIRPORT_SERIES).json \
|
||||
$(CHROOT)/$(APP_ROOT)/djangoproject/airport/fixtures/initial_data.json
|
||||
endif
|
||||
cp issue $(CHROOT)/etc/issue
|
||||
$(M4) -D HOSTNAME=$(HOSTNAME) nginx.conf > $(CHROOT)/etc/nginx/nginx.conf
|
||||
$(inroot) gpasswd -a nginx airport
|
||||
$(inroot) ln -sf /etc/init.d/nginx $(rcdefault)/nginx
|
||||
ifeq ($(AVAHI),YES)
|
||||
$(inroot) $(EMERGE) -n $(USEPKG) net-dns/avahi
|
||||
|
|
|
@ -1,13 +0,0 @@
|
|||
#!/bin/sh -e
|
||||
|
||||
echo Creating Airport database...
|
||||
createuser -U postgres -D -l -R -S airport
|
||||
createdb -U postgres -E utf8 -O airport airport
|
||||
|
||||
PYTHONPATH=/var/airport ; export PYTHONPATH
|
||||
cd /var/airport
|
||||
. bin/activate
|
||||
cd djangoproject
|
||||
./manage.py syncdb --settings=etc.settings --noinput
|
||||
|
||||
mv /etc/local.d/firstboot.start /etc/local.d/firstboot.start.disabled
|
|
@ -0,0 +1,11 @@
|
|||
#!/bin/sh -e
|
||||
|
||||
if [ ! -f /etc/firstboot ] ; then
|
||||
echo Creating Airport database...
|
||||
createuser -U postgres -D -l -R -S airport
|
||||
createdb -U postgres -E utf8 -O airport airport
|
||||
fi
|
||||
|
||||
su -c "/var/airport/bin/start-airport" airport
|
||||
|
||||
touch /etc/firstboot
|
|
@ -0,0 +1,3 @@
|
|||
#!/bin/sh
|
||||
|
||||
su -c "/var/airport/bin/stop-airport" airport
|
|
@ -9,5 +9,6 @@ sys-fs/udev openrc
|
|||
sys-kernel/gentoo-sources symlink
|
||||
sys-libs/ncurses minimal
|
||||
sys-apps/portage python3 ipc
|
||||
sys-apps/openrc netifrc
|
||||
|
||||
www-servers/nginx http
|
||||
|
|
|
@ -98,6 +98,7 @@ TEMPLATE_CONTEXT_PROCESSORS = (
|
|||
'django.contrib.auth.context_processors.auth',
|
||||
'django.contrib.messages.context_processors.messages',
|
||||
'airport.context_processors.externals',
|
||||
'airport.context_processors.game_name',
|
||||
)
|
||||
|
||||
MIDDLEWARE_CLASSES = (
|
||||
|
@ -150,4 +151,6 @@ LOGGING = {
|
|||
}
|
||||
}
|
||||
|
||||
AUTH_PROFILE_MODULE = 'airport.UserProfile'
|
||||
AIRPORT = {
|
||||
'GAMESERVER_MULTIPROCESSING': True,
|
||||
}
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
|
||||
AIRPORT = {
|
||||
'GAME_NAME': 'Airport Europe',
|
||||
'SCALE_FLIGHT_TIMES': False,
|
||||
'GAMESERVER_MULTIPROCESSING': True,
|
||||
'CRUISE_SPEED': 13.0,
|
||||
'GAMESERVER_LOOP_DELAY': 3,
|
||||
'MAP_INITIAL_LATITUDE': 53.58,
|
||||
'MAP_INITIAL_LONGITUDE': 23.11,
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
#!/bin/sh
|
||||
# this should be run as the airport user
|
||||
|
||||
PYTHON=python
|
||||
PYTHONPATH=/var/airport ; export PYTHONPATH
|
||||
DJANGO_SETTINGS_MODULE="etc.settings" ; export DJANGO_SETTINGS_MODULE
|
||||
|
||||
cd ~
|
||||
. bin/activate
|
||||
cd djangoproject
|
||||
|
||||
if [ ! -f "/etc/firstboot" ] ; then
|
||||
$PYTHON manage.py syncdb --noinput --verbosity=0
|
||||
$PYTHON manage.py collectstatic --noinput --verbosity=0
|
||||
fi
|
||||
|
||||
# start the uwsgi daemon
|
||||
uwsgi --socket /var/airport/airport.sock \
|
||||
--chmod=660 \
|
||||
-w djangoproject.wsgi \
|
||||
--uid airport \
|
||||
--gid airport \
|
||||
--pidfile /var/airport/uwsgi.pid \
|
||||
--daemonize2 /var/airport/airport.log \
|
||||
-T
|
||||
|
||||
# Start the Game Server
|
||||
$PYTHON manage.py gameserver --verbosity=2 $@ > "/var/airport/gameserver.log" 2>&1 &
|
||||
echo $! > "/var/airport/gameserver.pid"
|
|
@ -0,0 +1,5 @@
|
|||
#!/bin/sh
|
||||
# this should be run as the airport user
|
||||
|
||||
[ -f "/var/airport/gameserver.pid" ] && kill $(cat "/var/airport/gameserver.pid")
|
||||
[ -f "/var/airport/uwsgi.pid" ] && kill $(cat "/var/airport/uwsgi.pid")
|
|
@ -0,0 +1,13 @@
|
|||
#!/bin/sh
|
||||
# this should be run as the airport user
|
||||
|
||||
PYTHON=python
|
||||
PYTHONPATH=/var/airport ; export PYTHONPATH
|
||||
DJANGO_SETTINGS_MODULE="etc.settings" ; export DJANGO_SETTINGS_MODULE
|
||||
|
||||
game_id=$1
|
||||
cd ~
|
||||
. bin/activate
|
||||
cd djangoproject
|
||||
|
||||
$PYTHON manage.py gameserver --forcequit $1
|
|
@ -1,17 +0,0 @@
|
|||
#!/bin/sh -e
|
||||
|
||||
PYTHONPATH=/var/airport ; export PYTHONPATH
|
||||
DJANGO_SETTINGS_MODULE="etc.settings" ; export DJANGO_SETTINGS_MODULE
|
||||
|
||||
cd /var/airport
|
||||
. bin/activate
|
||||
cd djangoproject
|
||||
uwsgi --socket /var/airport/airport.sock \
|
||||
-w djangoproject.wsgi \
|
||||
--uid airport \
|
||||
--gid airport \
|
||||
--daemonize2 /var/airport/airport.log \
|
||||
-T
|
||||
|
||||
chown airport:nginx /var/airport/airport.sock
|
||||
chmod g+rw /var/airport/airport.sock
|
Loading…
Reference in New Issue