1818using System . Text ;
1919using System . Text . RegularExpressions ;
2020using System . Threading ;
21+ using Oxide . Core . Extensions ;
2122
2223namespace Oxide . CSharp
2324{
2425 internal class CompilerService
2526 {
26- private const string baseUrl = "https://downloads.oxidemod.com/artifacts/Oxide.Compiler/master /" ;
27+ private const string baseUrl = "https://downloads.oxidemod.com/artifacts/Oxide.Compiler/{0} /" ;
2728 private Hash < int , Compilation > compilations ;
2829 private Queue < CompilerMessage > messageQueue ;
2930 private Process process ;
@@ -37,36 +38,37 @@ internal class CompilerService
3738 private static Regex fileErrorRegex = new Regex ( @"^\[(?'Severity'\S+)\]\[(?'Code'\S+)\]\[(?'File'\S+)\] (?'Message'.+)$" , RegexOptions . Compiled ) ;
3839 public bool Installed => File . Exists ( filePath ) ;
3940
40- public CompilerService ( )
41+ public CompilerService ( Extension extension )
4142 {
4243 compilations = new Hash < int , Compilation > ( ) ;
4344 messageQueue = new Queue < CompilerMessage > ( ) ;
4445 string arc = IntPtr . Size == 8 ? "x64" : "x86" ;
4546 filePath = Path . Combine ( Interface . Oxide . RootDirectory , $ "Oxide.Compiler") ;
47+ string downloadUrl = string . Format ( baseUrl , extension . Branch ) ;
4648 switch ( Environment . OSVersion . Platform )
4749 {
4850 case PlatformID . Win32NT :
4951 case PlatformID . Win32S :
5052 case PlatformID . Win32Windows :
5153 filePath += ".exe" ;
52- remoteName = baseUrl + $ "win-{ arc } .Compiler.exe";
54+ remoteName = downloadUrl + $ "win-{ arc } .Compiler.exe";
5355 break ;
5456
5557 case PlatformID . MacOSX :
56- remoteName = baseUrl + "osx-x64.Compiler" ;
58+ remoteName = downloadUrl + "osx-x64.Compiler" ;
5759 break ;
5860
5961 case PlatformID . Unix :
60- remoteName = baseUrl + "linux-x64.Compiler" ;
62+ remoteName = downloadUrl + "linux-x64.Compiler" ;
6163 break ;
6264 }
6365
64- EnvironmentHelper . SetOxideEnvironmentalVariable ( "Path:Root" , Interface . Oxide . RootDirectory ) ;
65- EnvironmentHelper . SetOxideEnvironmentalVariable ( "Path:Logging" , Interface . Oxide . LogDirectory ) ;
66- EnvironmentHelper . SetOxideEnvironmentalVariable ( "Path:Plugins" , Interface . Oxide . PluginDirectory ) ;
67- EnvironmentHelper . SetOxideEnvironmentalVariable ( "Path:Configuration" , Interface . Oxide . ConfigDirectory ) ;
68- EnvironmentHelper . SetOxideEnvironmentalVariable ( "Path:Data" , Interface . Oxide . DataDirectory ) ;
69- EnvironmentHelper . SetOxideEnvironmentalVariable ( "Path:Libraries" , Interface . Oxide . ExtensionDirectory ) ;
66+ EnvironmentHelper . SetVariable ( "Path:Root" , Interface . Oxide . RootDirectory ) ;
67+ EnvironmentHelper . SetVariable ( "Path:Logging" , Interface . Oxide . LogDirectory ) ;
68+ EnvironmentHelper . SetVariable ( "Path:Plugins" , Interface . Oxide . PluginDirectory ) ;
69+ EnvironmentHelper . SetVariable ( "Path:Configuration" , Interface . Oxide . ConfigDirectory ) ;
70+ EnvironmentHelper . SetVariable ( "Path:Data" , Interface . Oxide . DataDirectory ) ;
71+ EnvironmentHelper . SetVariable ( "Path:Libraries" , Interface . Oxide . ExtensionDirectory ) ;
7072 }
7173
7274 private void ExpireFileCache ( )
@@ -592,7 +594,7 @@ private static bool DownloadFile(string url, string path, int retries = 3)
592594 {
593595 fs . Write ( data , 0 , data . Length ) ;
594596 }
595-
597+
596598 if ( newerFound )
597599 {
598600 string checkVerb = md5 != null ? $ "Remote MD5: { md5 } " : "Newer found" ;
0 commit comments