Files
Yogstation/tools/linux_build.py
TheGamerdk ca57f72a78 jamie stinks (#16349)
* Modernizes TGUI (#4219)

* Ports the first two PRs. CBT works local

* tchussi oops

* linttobuild

* Update Dockerfile for CBT (#56175)

Follow-up to fix the failing Docker CI on master.

- Reorganize the entire Dockerfile to be more readable
- Inline the tgstation/byond Dockerfile into our own, so we can change the base distro at will
- Also allows us to trash the dependencies.sh<->Dockerfile hack
- Use 32-bit libs on a 64-bit distro so that we can download and run recent 64-bit Node binaries
- Call tools/build/build rather than DreamMaker directly

* TGUI 43 plus hotfix 1

* https://github.com/tgstation/tgstation/pull/58701

* https://github.com/tgstation/tgstation/pull/56223

* https://github.com/tgstation/tgstation/pull/56229

* https://github.com/tgstation/tgstation/pull/56713

* https://github.com/tgstation/tgstation/pull/56797

* https://github.com/tgstation/tgstation/pull/57081/

* https://github.com/tgstation/tgstation/pull/57154

* https://github.com/tgstation/tgstation/pull/57251

* https://github.com/tgstation/tgstation/pull/56269

* https://github.com/tgstation/tgstation/pull/57277

* https://github.com/tgstation/tgstation/pull/57287

* https://github.com/tgstation/tgstation/pull/57326

* QF

* GimmeHopeUpdateExtra_Pr_Labels

* Flush queue in preloading part of tgui_panel (#57432)

* Flush queue in preloading part of tgui_panel

* Update tgui_panel.dm

* Compiles

* https://github.com/tgstation/tgstation/pull/57461

* tgui: Upgrade to Yarn 2.4.1 and TypeScript 4.2 (#57465)

* Fix tgui reloading (#57499)

* Add note about rust-g for building on Linux (#57622)

This PR adds a minor note about needing to compile rust-g to Linux building instructions. I'm not sure if this is the appropriate place for it, but I don't see a better place to put it.

* Fixes build script failing properly on windows. (#57623)

* Adds easy to extend custom svg font. (#57717)

Just throw in svgs into tgui/packages/tgfont/icons directory and you can use them in tgui with tg- prefix.

Co-authored-by: Style Mistake <stylemistake@gmail.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>

* Typescript fixups. (#57746)

* Improve tgui routing to allow interface subdirectories (#57825)

* Improve tgui routing to allow interface subdirectories

* Reverse order of interface file resolution, to be consistent with common expectation (top-level .tsx, top-level .js, directory .tsx, directory.js) and the way Webpack checks

* Fixes TGS compiles on windows. (#57834)

Batch quotes strike again.

* tgui: ESLint and VSCode settings improvements (#57905)

    Added column 80 rulers to all javascript and scss files.
    Added a "prettier" config to have sensible defaults for those who prefer to use it.
    Added RadarJS (fork of SonarQube's SonarJS). Launchable only via bin/tgui --lint-harder for now.
    Disabled ESLint rule for parens around arrow function arguments, because in TypeScript they're pretty much always required, and I don't want to replace it throughout the codebase.
    Removed unused javascript extensions from tooling (jsx, mjs).

* https://github.com/tgstation/tgstation/pull/57931

* https://github.com/tgstation/tgstation/pull/58061

* https://github.com/tgstation/tgstation/pull/58081

* https://github.com/tgstation/tgstation/pull/58212

* https://github.com/tgstation/tgstation/pull/58215

* https://github.com/tgstation/tgstation/pull/58219

* Add "Except DM" build mode to build.js (#58245)

* https://github.com/tgstation/tgstation/pull/58484

* FixBaconFabandPodLauncher

* haharunlintmanuallyfirstkids

* One last fab change then its perf

* f5willwork

* This May Do it

* prune

* Fix Docker build failing on a clean checkout (#56190)

Follow-up to #56175 which turned out to be accidentally relying on Node already being downloaded.

* Huh? Rebuild you better be a fluke

* getinthere

* Syncretize

* Revert "Syncretize"

This reverts commit 41749b68868d2af1b82de9ba6de39cf8052dd1ee.

* zzzz

* quick path change

* another quick

* Correct Dockerfile, bloats it with GCC lol.

* small

* back2oldfile I HATE DOCKER I HATE EXTOOLS

* firstthingnotdonelol

* yuabzn

* v

* reverttoclassic

* Difffffffffff

* prec1s

* ccc

* ok

* bitte

* jesus im dum

* z

* Nuke Window resizable and improve drag code (#56727)

* comp

Co-authored-by: Tad Hardesty <tad@platymuus.com>
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
Co-authored-by: Cyprex <35031555+Cyprex@users.noreply.github.com>
Co-authored-by: AnturK <AnturK@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Mordent <62817778+mordent-goonstation@users.noreply.github.com>
Co-authored-by: Jonathan Rubenstein <jrubcop@gmail.com>

* thanks yarn!

* Update Panel.js

* compiles

* restores exosuit

* chmod

* Update travis_config.txt

* honk

* honk2

* Update turdis.yml

* Update ExosuitFabricator.js

* Revert "Update turdis.yml"

This reverts commit 7517df56e5.

* Revert "Update ExosuitFabricator.js"

This reverts commit ac31fa4543.

* wtf is this

* lol

* Update tgui.dm

Co-authored-by: Sinestia <40812746+Sinestia@users.noreply.github.com>
Co-authored-by: Tad Hardesty <tad@platymuus.com>
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
Co-authored-by: Cyprex <35031555+Cyprex@users.noreply.github.com>
Co-authored-by: AnturK <AnturK@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Mordent <62817778+mordent-goonstation@users.noreply.github.com>
Co-authored-by: Jonathan Rubenstein <jrubcop@gmail.com>
Co-authored-by: Jamie D <993128+JamieD1@users.noreply.github.com>
2023-01-02 14:03:15 +00:00

96 lines
2.6 KiB
Python

#!/usr/bin/env python
import subprocess
import os
import sys
import argparse
import time
from subprocess import PIPE, STDOUT
null = open("/dev/null", "wb")
def wait(p):
rc = p.wait()
if rc != 0:
p = play("sound/misc/compiler-failure.ogg")
p.wait()
assert p.returncode == 0
sys.exit(rc)
def play(soundfile):
p = subprocess.Popen(["play", soundfile], stdout=null, stderr=null)
assert p.wait() == 0
return p
def stage1():
p = subprocess.Popen("(cd tgui; /bin/bash ./build.sh)", shell=True)
wait(p)
play("sound/misc/compiler-stage1.ogg")
def stage2(map):
if map:
txt = "-M{}".format(map)
else:
txt = ''
args = "bash tools/travis/dm.sh {} yogstation.dme".format(txt)
print(args)
p = subprocess.Popen(args, shell=True)
wait(p)
def stage3(profile_mode=False):
start_time = time.time()
play("sound/misc/compiler-stage2.ogg")
logfile = open('server.log~','w')
p = subprocess.Popen(
"DreamDaemon yogstation.dmb 25001 -trusted",
shell=True, stdout=PIPE, stderr=STDOUT)
try:
while p.returncode is None:
stdout = p.stdout.readline()
if "Initializations complete" in stdout:
play("sound/misc/server-ready.ogg")
time_taken = time.time() - start_time
print("{} seconds taken to fully start".format(time_taken))
if "Map is ready." in stdout:
time_taken = time.time() - start_time
print("{} seconds for initial map loading".format(time_taken))
if profile_mode:
return time_taken
sys.stdout.write(stdout)
sys.stdout.flush()
logfile.write(stdout)
finally:
logfile.flush()
os.fsync(logfile.fileno())
logfile.close()
p.kill()
def main():
parser = argparse.ArgumentParser()
parser.add_argument('-s','---stage',default=1,type=int)
parser.add_argument('--only',action='store_true')
parser.add_argument('-m','--map',type=str)
parser.add_argument('--profile-mode',action='store_true')
args = parser.parse_args()
stage = args.stage
assert stage in (1,2,3)
if stage == 1:
stage1()
if not args.only:
stage = 2
if stage == 2:
stage2(args.map)
if not args.only:
stage = 3
if stage == 3:
value = stage3(profile_mode=args.profile_mode)
with open('profile~', 'a') as f:
f.write("{}\n".format(value))
if __name__=='__main__':
try:
main()
except KeyboardInterrupt:
pass