diff --git a/.gitignore b/.gitignore index f715a0c..013dda9 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ hack/ stage.tmp/ bin/ +deps/shadow-of-the-wyrm-release-*.tar.gz diff --git a/Makefile b/Makefile index 724a8d3..3b2e77b 100644 --- a/Makefile +++ b/Makefile @@ -28,14 +28,13 @@ run: nethack-launcher/run_game.go \ nethack-launcher/start_watcher.go - - stat: mkdir -p bin/ $(CGOR) $(GOC) $(GOFLAGS) -o bin/nethack-launcher nethack-launcher/*.go dependencies: - go get github.com/gorilla/mux + go mod init git.bitnuke.io/mfaltys/nethack-launcher + go mod tidy build_docker: fetch_sotw mkdir -p stage.tmp/ @@ -51,24 +50,25 @@ build_docker: fetch_sotw cp deps/link_sotw.sh stage.tmp/ cp deps/clean.sh stage.tmp/ cp deps/scores.dat stage.tmp/ - wget -O stage.tmp/redis-server https://cryo.unixvoid.com/bin/redis/5.0.7/redis-server - chmod +x stage.tmp/redis-server cd stage.tmp/ && \ $(OS_PERMS) docker build -t $(IMAGE_NAME) . fetch_sotw: mkdir -p stage.tmp/ - wget https://cryo.unixvoid.com/bin/misc/sotw/shadow-of-the-wyrm-release-1.2.2.tar.gz - mv shadow-of-the-wyrm-release-1.2.2.tar.gz stage.tmp/sotw.tar.gz + cp deps/shadow-of-the-wyrm-release-1.6.5.tar.gz stage.tmp/sotw.tar.gz run_docker: $(OS_PERMS) docker run \ - -d \ - -p 2222:22 \ - --name=nethack \ - -v $(NETHACK_DIR):/hack:rw \ - --restart always \ - $(IMAGE_NAME) + -d \ + -p 2223:22 \ + --name=nethackdev \ + -v $(NETHACK_DIR):/hack-dev:rw \ + --restart always \ + $(IMAGE_NAME) + +stop_docker: + $(OS_PERMS) docker stop -t 0 nethackdev + $(OS_PERMS) docker rm nethackdev clean: rm -rf bin/ diff --git a/config.gcfg b/config.gcfg index 219b199..a080901 100644 --- a/config.gcfg +++ b/config.gcfg @@ -1,13 +1,13 @@ [nethacklauncher] loglevel = "debug" - serverdisplay = "unixvoid.com underground nethack server" - nethackversion = "3.6.3" + serverdisplay = "bitnuke.io underground nethack server" + nethackversion = "3.6.7-0" hackdir = "/hack" nhdatlocation = "/NetHack/dat/nhdat" recoverbinary = "/NetHack/util/recover" sysconflocation = "/NetHack/sys/unix/sysconf" ttyreccache = "10" - sotwversion = "1.2.2" + sotwversion = "1.6.5" sotwroot = "/sotw" sotwdumpcache = "5" bootstrapdelay = 1 diff --git a/deps/Dockerfile b/deps/Dockerfile index 1f3fb5e..01997ac 100644 --- a/deps/Dockerfile +++ b/deps/Dockerfile @@ -1,4 +1,4 @@ -FROM debian:stretch +FROM debian:stable-slim # install needed packages RUN apt-get update && \ @@ -15,7 +15,6 @@ RUN apt-get update && \ groff \ libncursesw5-dev \ libsqlite3-dev \ - libboost1.62-dev \ libboost-all-dev \ libncurses5-dev \ libncursesw5-dev \ @@ -23,18 +22,19 @@ RUN apt-get update && \ liblua5.1-0-dev \ libsdl2-dev \ libsdl2-image-2.0-0 \ + libsdl2-mixer-2.0-0 \ libsdl2-image-dev \ libxerces-c-dev \ make \ ncurses-dev \ premake4 \ sqlite3 \ + redis-server \ tar \ telnetd \ xinetd \ locales \ wget \ - zlibc \ vim RUN apt-get clean @@ -101,7 +101,6 @@ RUN gcc reclist.c -o /bin/reclist RUN rm reclist.c # copy in files -COPY redis-server /usr/bin/ COPY config.gcfg / COPY nethack-launcher / COPY redis.conf / diff --git a/deps/chowner.sh b/deps/chowner.sh index 859025a..afef0f4 100755 --- a/deps/chowner.sh +++ b/deps/chowner.sh @@ -6,7 +6,7 @@ do chown -R nethack:nethack /hack 2> /dev/null chmod -R 744 /hack 2> /dev/null - # chown + # chown sotw directory chown -R nethack:nethack /sotw 2> /dev/null chmod -R 744 /sotw 2> /dev/null sleep 2 diff --git a/deps/link_sotw.sh b/deps/link_sotw.sh index aeacdcc..ebe38ec 100755 --- a/deps/link_sotw.sh +++ b/deps/link_sotw.sh @@ -19,7 +19,10 @@ rm -rf $USERDIR/sotw/scores.dat # link in shared score file from hackdir ln -s $HACKDIR/scores.dat $USERDIR/sotw/ -# remove initial config file +## remove initial config file rm -rf $USERDIR/sotw/swyrm.ini -# copy in sotw config file -cp $HACKDIR/swyrm.ini $USERDIR/sotw/ +## copy in sotw config file +cp /sotw/swyrm.ini $USERDIR/sotw/swyrm.ini + +# sed find and replace swyrm.ini to set users dir +sed -i "s:userdata_dir=:userdata_dir=${USERDIR}/sotw/:g" $USERDIR/sotw/swyrm.ini diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..a32fb7a --- /dev/null +++ b/go.mod @@ -0,0 +1,16 @@ +module git.bitnuke.io/mfaltys/nethack-launcher + +go 1.22.1 + +require ( + golang.org/x/crypto v0.26.0 + gopkg.in/gcfg.v1 v1.2.3 + gopkg.in/redis.v5 v5.2.9 +) + +require ( + github.com/onsi/ginkgo v1.16.5 // indirect + github.com/onsi/gomega v1.34.1 // indirect + golang.org/x/sys v0.23.0 // indirect + gopkg.in/warnings.v0 v0.1.2 // indirect +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..e85a1df --- /dev/null +++ b/go.sum @@ -0,0 +1,95 @@ +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= +github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= +github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= +github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= +github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= +github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= +github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= +github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= +github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= +github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k= +github.com/onsi/gomega v1.34.1/go.mod h1:kU1QgUvBDLXBJq618Xvm2LUX6rSAfRaFRTcdOeDLwwY= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw= +golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54= +golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0LeHDbnYEryqj5Q1ug8= +golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys= +golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.23.0 h1:YfKFowiIMvtgl1UERQoTPPToxltDeZfbj4H7dVUCwmM= +golang.org/x/sys v0.23.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc= +golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/gcfg.v1 v1.2.3 h1:m8OOJ4ccYHnx2f4gQwpno8nAX5OGOh7RLaaz0pj3Ogs= +gopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= +gopkg.in/redis.v5 v5.2.9 h1:MNZYOLPomQzZMfpN3ZtD1uyJ2IDonTTlxYiV/pEApiw= +gopkg.in/redis.v5 v5.2.9/go.mod h1:6gtv0/+A4iM08kdRfocWYB3bLX2tebpNtfKlFT6H4mY= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME= +gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/nethack-launcher/create_user_files.go b/nethack-launcher/create_user_files.go index 9296a65..951364f 100644 --- a/nethack-launcher/create_user_files.go +++ b/nethack-launcher/create_user_files.go @@ -1,6 +1,7 @@ package main import ( + "errors" "fmt" "os" "os/exec" @@ -13,9 +14,12 @@ func createUserFiles(username string) { // copy in rc file if it does not exist hackRCLoc := fmt.Sprintf("%s/.nethackrc", config.NethackLauncher.HackDir) - if _, err := os.Stat(hackRCLoc); os.IsNotExist(err) { + if _, err := os.Stat(fmt.Sprintf("%s/user/%s/.nethackrc", config.NethackLauncher.HackDir, username)); errors.Is(err, os.ErrNotExist) { + println(fmt.Sprintf("%s/user/%s/.nethackrc does not exist, copying it.", config.NethackLauncher.HackDir, username)) hackRCDest := fmt.Sprintf("%s/user/%s/.nethackrc", config.NethackLauncher.HackDir, username) exec.Command("cp", hackRCLoc, hackRCDest).Run() + } else { + println(fmt.Sprintf("%s/.nethackrc exists, not overwriting.", config.NethackLauncher.HackDir)) } // create necessary directories if they dont exist @@ -44,6 +48,12 @@ func createUserFiles(username string) { // run sotw prep script if _, err := os.Stat(fmt.Sprintf("%s/sotw/", userpath)); os.IsNotExist(err) { - exec.Command("/bin/link_sotw.sh", userpath, config.NethackLauncher.HackDir).Run() + println("running /bin/link_sotw.sh") + out, err := exec.Command("/bin/link_sotw.sh", userpath, config.NethackLauncher.HackDir).Output() + if err != nil { + println("ope: ") + fmt.Sprintf("%s", err) + } + println(string(out)) } } diff --git a/nethack-launcher/print_user_screen.go b/nethack-launcher/print_user_screen.go index 70b601a..76d889f 100644 --- a/nethack-launcher/print_user_screen.go +++ b/nethack-launcher/print_user_screen.go @@ -63,16 +63,18 @@ func printUserScreen(redisClient *redis.Client, username string) string { case "f": // check if the file has been uplifted SOTWLoc := fmt.Sprintf("%s/user/%s/sotw/swyrm.ini", config.NethackLauncher.HackDir, username) - il, _ := os.Lstat(SOTWLoc) - if il.Mode()&os.ModeSymlink == os.ModeSymlink { - // the file is still a legacy symlink, remove and recopy - err := os.Remove(SOTWLoc) - if err != nil { - fmt.Println(err) - } - SOTWOrigin := fmt.Sprintf("%s/swyrm.ini", config.NethackLauncher.SotwRoot) - exec.Command("cp", SOTWOrigin, SOTWLoc).Run() - } + //il, _ := os.Lstat(SOTWLoc) + //if il.Mode()&os.ModeSymlink == os.ModeSymlink { + // // the file is still a legacy symlink, remove and recopy + // err := os.Remove(SOTWLoc) + // if err != nil { + // fmt.Println(err) + // } + // SOTWOrigin := fmt.Sprintf("%s/swyrm.ini", config.NethackLauncher.SotwRoot) + // exec.Command("cp", SOTWOrigin, SOTWLoc).Run() + //} + //SOTWOrigin := fmt.Sprintf("%s/swyrm.ini", config.NethackLauncher.SotwRoot) + //exec.Command("cp", SOTWOrigin, SOTWLoc).Run() exec.Command("stty", "-F", "/dev/tty", "echo", "-cbreak").Run() clearScreen() diff --git a/nethack-launcher/run_game.go b/nethack-launcher/run_game.go index f2c9eeb..1ce7fcb 100644 --- a/nethack-launcher/run_game.go +++ b/nethack-launcher/run_game.go @@ -49,7 +49,9 @@ func runSotwGame(username, timestamp string) { ttyrecPath := fmt.Sprintf("%s/user/%s/ttyrec/%s.ttyrec", config.NethackLauncher.HackDir, username, timestamp) nh := exec.Command("ttyrec", "-f", ttyrecPath, "--", "./ShadowOfTheWyrm") + //nh := exec.Command("./ShadowOfTheWyrm") nh.Dir = (fmt.Sprintf("%s/user/%s/sotw/", config.NethackLauncher.HackDir, username)) + //nh.Dir = (config.NethackLauncher.SotwRoot) nh.Stdout = os.Stdout nh.Stdin = os.Stdin nh.Stderr = os.Stderr