diff --git a/bin/dev-plugin.sh b/bin/dev-plugin.sh index 6674a00f..0b786218 100644 --- a/bin/dev-plugin.sh +++ b/bin/dev-plugin.sh @@ -2,4 +2,4 @@ set -e -watchexec -c -w plugin "rojo build plugin -o $LOCALAPPDATA/Roblox/Plugins/Rojo.rbxm" \ No newline at end of file +watchexec -c -w plugin "sh -c './bin/install-dev-plugin.sh'" \ No newline at end of file diff --git a/bin/install-dev-plugin.sh b/bin/install-dev-plugin.sh index 888ec065..d8a8376c 100644 --- a/bin/install-dev-plugin.sh +++ b/bin/install-dev-plugin.sh @@ -2,4 +2,12 @@ set -e -rojo build plugin -o $LOCALAPPDATA/Roblox/Plugins/Rojo.rbxm \ No newline at end of file +DIR="$( mktemp -d )" +PLUGIN_FILE="$DIR/Rojo.rbxm" +TESTEZ_FILE="$DIR/TestEZ.rbxm" + +rojo build plugin -o "$PLUGIN_FILE" +rojo build plugin/testez.project.json -o "$TESTEZ_FILE" +remodel bin/mark-plugin-as-dev.lua "$PLUGIN_FILE" "$TESTEZ_FILE" 2>/dev/null + +cp "$PLUGIN_FILE" "$LOCALAPPDATA/Roblox/Plugins/Rojo.rbxm" \ No newline at end of file diff --git a/bin/mark-plugin-as-dev.lua b/bin/mark-plugin-as-dev.lua new file mode 100644 index 00000000..49fe902a --- /dev/null +++ b/bin/mark-plugin-as-dev.lua @@ -0,0 +1,12 @@ +local pluginPath, testezPath = ... + +local plugin = remodel.readModelFile(pluginPath)[1] +local testez = remodel.readModelFile(testezPath)[1] + +local marker = Instance.new("Folder") +marker.Name = "ROJO_DEV_BUILD" +marker.Parent = plugin + +testez.Parent = plugin + +remodel.writeModelFile(plugin, pluginPath) \ No newline at end of file diff --git a/plugin/src/Config.lua b/plugin/src/Config.lua index 813591a3..1497cab1 100644 --- a/plugin/src/Config.lua +++ b/plugin/src/Config.lua @@ -1,8 +1,13 @@ -return { +local strict = require(script.Parent.strict) + +local isDevBuild = script.Parent.Parent:FindFirstChild("ROJO_DEV_BUILD") ~= nil + +return strict("Config", { + isDevBuild = isDevBuild, codename = "Epiphany", version = {0, 6, 0, "-dev"}, expectedServerVersionString = "0.6.0 or newer", protocolVersion = 3, defaultHost = "localhost", defaultPort = 34872, -} \ No newline at end of file +}) \ No newline at end of file diff --git a/plugin/src/DevSettings.lua b/plugin/src/DevSettings.lua index 060742c2..bcf3f983 100644 --- a/plugin/src/DevSettings.lua +++ b/plugin/src/DevSettings.lua @@ -6,6 +6,8 @@ local Environment = { Test = "Test", } +local DEFAULT_ENVIRONMENT = Config.isDevBuild and Environment.Dev or Environment.User + local VALUES = { LogLevel = { type = "IntValue", @@ -84,7 +86,7 @@ local function getValue(name) return stored end - return VALUES[name].values[Environment.User] + return VALUES[name].values[DEFAULT_ENVIRONMENT] end local DevSettings = {} diff --git a/plugin/src/init.server.lua b/plugin/src/init.server.lua index 08de686e..3660d420 100644 --- a/plugin/src/init.server.lua +++ b/plugin/src/init.server.lua @@ -4,6 +4,7 @@ end local Roact = require(script.Parent.Roact) +local Config = require(script.Config) local App = require(script.Components.App) local app = Roact.createElement(App, { @@ -14,4 +15,10 @@ local tree = Roact.mount(app, game:GetService("CoreGui"), "Rojo UI") plugin.Unloading:Connect(function() Roact.unmount(tree) -end) \ No newline at end of file +end) + +if Config.isDevBuild then + local TestEZ = require(script.Parent.TestEZ) + + TestEZ.TestBootstrap:run({script}) +end \ No newline at end of file diff --git a/plugin/testez.project.json b/plugin/testez.project.json new file mode 100644 index 00000000..8b209162 --- /dev/null +++ b/plugin/testez.project.json @@ -0,0 +1,6 @@ +{ + "name": "TestEZ", + "tree": { + "$path": "modules/testez/lib" + } +} \ No newline at end of file