private void OnGUIFileInfo(AssetBundleBuildInfo info) { EditorGUILayout.BeginHorizontal(); if (!info.IsInAssetDataBase) { GUI.color = Color.red; GUI.enabled = false; } if (info.IsMenifest) { GUI.color = Color.green; GUI.enabled = false; } if (info.IsNew) { GUI.color = Color.yellow; } if (info.IsNew) { GUI.color = Color.cyan; } info.IsPublish = EditorGUILayout.ToggleLeft(info.AssetBundleName, info.IsPublish, EditorStyles.boldLabel, GUILayout.Width(150f)); string relativePath = EnvUtil.MakeRelative(info.FullPath, AssetBundleBuildSetting.AbsoluteOutputPath); EditorGUILayout.LabelField(relativePath); EditorGUILayout.EndHorizontal(); GUI.color = Color.white; GUI.enabled = true; }
public async Task <IAdalToken> AcquireTokenWithDeviceFlowAsync(Func <DeviceCodeResult, Task> deviceCodeHandler, CancellationToken cancellationToken, ILogger logger) { var authenticationContext = new AuthenticationContext(authority, tokenCache); var deviceCode = await authenticationContext.AcquireDeviceCodeAsync(resource, clientId); cancellationToken.ThrowIfCancellationRequested(); if (deviceCodeHandler != null) { await deviceCodeHandler(deviceCode); cancellationToken.ThrowIfCancellationRequested(); } AuthenticationResult result = null; var deviceFlowTimeout = EnvUtil.GetDeviceFlowTimeoutFromEnvironmentInSeconds(logger); var task = authenticationContext.AcquireTokenByDeviceCodeAsync(deviceCode); if (await Task.WhenAny(task, Task.Delay(deviceFlowTimeout * 1000, cancellationToken)) == task) { result = await task; } else { logger.Error(string.Format(Resources.DeviceFlowTimedOut, deviceFlowTimeout)); } return(new AdalToken(result)); }
static BasePluginHost() { plugins = new Dictionary <IPlugin, PluginPackAttribute>(); string appDirectory = EnvUtil.GetBaseDirectory(); string pluginDirectory = String.Concat( appDirectory, PluginConfig.PLUGIN_DIRECTORY); //清空日志 string pluginTmpDirectory = String.Concat(appDirectory, PluginConfig.PLUGIN_TMP_DIRECTORY); if (!Directory.Exists(pluginTmpDirectory)) { Directory.CreateDirectory(pluginTmpDirectory); } Log = new FileLogger(String.Format("{0}plugin_load.log", pluginTmpDirectory), false); Log.Truncate(); if (Directory.Exists(pluginDirectory)) { LoadPluginFromDirectory(pluginDirectory); } else { Directory.CreateDirectory(pluginDirectory).Create(); } //加载程序集的.so文件 loadFromAppDomain(); }
public async Task <IMsalToken> AcquireTokenWithDeviceFlowAsync(Func <DeviceCodeResult, Task> deviceCodeHandler, CancellationToken cancellationToken, ILogger logger) { var deviceFlowTimeout = EnvUtil.GetDeviceFlowTimeoutFromEnvironmentInSeconds(logger); CancellationTokenSource cts = new CancellationTokenSource(TimeSpan.FromSeconds(deviceFlowTimeout)); var linkedCancellationToken = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken, cts.Token).Token; linkedCancellationToken.ThrowIfCancellationRequested(); var publicClient = await GetPCAAsync().ConfigureAwait(false); try { var msalBuilder = publicClient.AcquireTokenWithDeviceCode(new string[] { resource }, deviceCodeHandler); var result = await msalBuilder.ExecuteAsync(linkedCancellationToken); return(new MsalToken(result)); } finally { var helper = await GetMsalCacheHelperAsync(); helper?.UnregisterCache(publicClient.UserTokenCache); } }
/// <summary> /// 升级更新 /// </summary> private static int ApplyUpgrade_Core() { DirectoryInfo libDir = new DirectoryInfo(EnvUtil.GetBaseDirectory() + "/bin/"); //初始化设置权限 // message = "bin目录无法写入更新文件,请修改权限!"; //return -1; if ((libDir.Attributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly) { libDir.Attributes = libDir.Attributes & ~FileAttributes.ReadOnly; } try { //如果升级成功,执行操作 if (OnUpgrade != null) { OnUpgrade(); } } catch { } return(1); }
internal static bool IsDebug() { bool isDebug = false; try { using (StreamReader fs = new StreamReader($"{EnvUtil.GetBaseDirectory()}Web.config")) { string content; Regex reg = new Regex("<compilation[^(debug)]+debug=\"([^\"]+)\"", RegexOptions.IgnoreCase); while ((content = fs.ReadLine()) != null) { if (reg.IsMatch(content)) { Match m = reg.Match(content); if (m.Groups[1].Value == "true") { isDebug = true; } } } fs.Dispose(); } } catch (IOException exc) { } return(isDebug); }
/// <summary> /// 实例化数据库访问对象 /// </summary> /// <param name="type"></param> /// <param name="connectionString"></param> public DataBaseAccess(DataBaseType type, string connectionString) { if (connectionString.IndexOf("$ROOT$") != -1) { connectionString = connectionString.Replace("$ROOT$", EnvUtil.GetBaseDirectory()); } this.DbType = type; switch (type) { case DataBaseType.OLEDB: dbDialect = new OleDbFactory(connectionString); break; case DataBaseType.SQLite: dbDialect = new SQLiteFactory(connectionString); break; case DataBaseType.MonoSQLite: throw new Exception("not implement on .net standard"); // dbDialect = new MonoSQLiteFactory(connectionString); case DataBaseType.SQLServer: dbDialect = new SqlServerFactory(connectionString); break; case DataBaseType.MySQL: dbDialect = new MySqlFactory(connectionString); break; } }
/// <summary> /// /// </summary> /// <param name="workerIndent"></param> public PluginPackAttribute(string workerIndent) { this.WorkIndent = workerIndent; bool isChanged = false; var dirPath = Path.Combine(EnvUtil.GetBaseDirectory(), PluginConfig.PLUGIN_DIRECTORY, workerIndent, "/"); if (!Directory.Exists(dirPath)) { Directory.CreateDirectory(dirPath).Create(); } settings = new SettingFile(string.Concat(dirPath, "plugin.config")); if (!settings.Contains(PluginSettingKeys.State)) { settings.Set(PluginSettingKeys.State, "Normal"); isChanged = true; } if (!settings.Contains(PluginSettingKeys.OverrideUrlIndent)) { settings.Set(PluginSettingKeys.OverrideUrlIndent, ""); isChanged = true; } if (isChanged) { settings.Flush(); } }
public void CreateView_POST() { var tplname = string.Format("templates/{0}/{1}.{2}", CurrentSite.Tpl, Request.Form("name"), Request.Form("type") == "1" ? "part.html" : "html"); var tplPath = string.Format("{0}/{1}", EnvUtil.GetBaseDirectory(), tplname); if (File.Exists(tplPath)) { Response.WriteAsync("文件已经存在!"); } else { try { //global::System.IO.Directory.CreateDirectory(tplPath).Create(); //创建目录 File.Create(tplPath).Dispose(); //创建文件 Cms.Template.Reload(); //重新注册模板 Response.WriteAsync(tplname); } catch (Exception e) { // Response.Write(e.Message); Response.WriteAsync("无权限创建文件,请设置视图目录(templates)可写权限!"); } } }
private static void Reset(string filePath, string content, bool keepBak) { var fileName = $"{EnvUtil.GetBaseDirectory()}/{filePath}"; var file = new FileInfo(fileName); try { if (keepBak && file.Exists) { var bakFile = new FileInfo(fileName + ".bak"); if (bakFile.Exists) { bakFile.Delete(); } File.Move(fileName, fileName + ".bak"); } var data = Encoding.UTF8.GetBytes(content); using (var fs = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.Write)) { fs.SetLength(0); fs.Write(data, 0, data.Length); fs.Flush(); fs.Dispose(); } } catch { } }
/// <summary> /// 获取插件包的信息 /// </summary> /// <param name="fileName"></param> /// <returns></returns> public static IEnumerable <PluginPackAttribute> GetPluginPackInfo(string fileName) { var tempDir = String.Concat(EnvUtil.GetBaseDirectory() + "/", PluginConfig.PLUGIN_TMP_DIRECTORY, "tmp/"); if (Directory.Exists(tempDir)) { Directory.Delete(tempDir, true); } Directory.CreateDirectory(tempDir).Create(); var dir = new DirectoryInfo(tempDir); ZipUtility.DecompressFile(tempDir, fileName, false); Assembly ass; string[] multExt = PluginConfig.GetFilePartterns(); foreach (String ext in multExt) { var files = dir.GetFiles(ext); foreach (FileInfo f in files) { ass = Assembly.Load(File.ReadAllBytes(f.FullName)); var attbs = ass.GetCustomAttributes(typeof(PluginPackAttribute), false); foreach (object attb in attbs) { if (attb is PluginPackAttribute) { yield return((PluginPackAttribute)attb); } } } } }
public async Task <IMsalToken> AcquireTokenWithUI(CancellationToken cancellationToken, ILogger logging) { var deviceFlowTimeout = EnvUtil.GetDeviceFlowTimeoutFromEnvironmentInSeconds(logging); CancellationTokenSource cts = new CancellationTokenSource(TimeSpan.FromSeconds(deviceFlowTimeout)); var linkedCancellationToken = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken, cts.Token).Token; var publicClient = await GetPCAAsync(useLocalHost : true).ConfigureAwait(false); try { var msalBuilder = publicClient.AcquireTokenInteractive(new string[] { resource }); msalBuilder.WithPrompt(Prompt.SelectAccount); msalBuilder.WithUseEmbeddedWebView(false); var result = await msalBuilder.ExecuteAsync(linkedCancellationToken); return(new MsalToken(result)); } catch (MsalServiceException e) { if (e.ErrorCode.Contains(MsalError.AuthenticationCanceledError)) { return(null); } throw; } finally { var helper = await GetMsalCacheHelperAsync(); helper?.UnregisterCache(publicClient.UserTokenCache); } }
/// <summary> /// 编辑模板 /// </summary> public void Edit() { string tpl = Request.Query("tpl"); if (string.IsNullOrEmpty(tpl)) { tpl = CurrentSite.Tpl; } var sb = new StringBuilder(); var dir = new DirectoryInfo($"{EnvUtil.GetBaseDirectory()}/templates/{tpl}/"); if (!dir.Exists) { Response.Redirect(Request.GetPath() + "?module=template&action=templates", false); return; } EachClass.WalkTemplateFiles(dir, sb, tpl); RenderTemplate(ResourceMap.GetPageContent(ManagementPage.Template_Edit), new { tplfiles = sb.ToString(), tpl = tpl }); }
public void CreateView_POST() { var tplName = $"templates/{CurrentSite.Tpl}/{Request.Form("name")}.html"; var tplPath = $"{EnvUtil.GetBaseDirectory()}/{tplName}"; if (File.Exists(tplPath)) { Response.WriteAsync("文件已经存在!"); } else { try { //global::System.IO.Directory.CreateDirectory(tplPath).Create(); //创建目录 File.Create(tplPath).Dispose(); //创建文件 Cms.Template.Reload(); //重新注册模板 Response.WriteAsync(tplName); } catch (Exception e) { // Response.Write(e.Message); Response.WriteAsync("无权限创建文件,请设置视图目录(templates)可写权限!"); } } }
private static void ResolveAspNet(string resolveFullDir) { AppDomain domain = AppDomain.CurrentDomain; if (String.IsNullOrEmpty(resolveFullDir)) { resolveFullDir = EnvUtil.GetBaseDirectory() + FwCtx.Variables.AssemblyPath; } // //设为隐藏目录 // domain.AssemblyResolve += delegate(object sender, ResolveEventArgs args) { string filePath = String.Concat(resolveFullDir, args.Name.Split(',')[0], ".dll"); //File.WriteAllText(directory+DateTime.Now.Millisecond.ToString()+".txt",args.Name+"//"+filePath); if (!File.Exists(filePath)) { return(null); } else { return(Assembly.Load(File.ReadAllBytes(filePath))); } }; }
public override async Task <bool> CanProvideCredentialsAsync(Uri uri) { // If for any reason we reach this point and any of the three build task env vars are set, // we should not try get credentials with this cred provider. string feedEndPointsJsonEnvVar = Environment.GetEnvironmentVariable(EnvUtil.BuildTaskExternalEndpoints); string uriPrefixesStringEnvVar = Environment.GetEnvironmentVariable(EnvUtil.BuildTaskUriPrefixes); string accessTokenEnvVar = Environment.GetEnvironmentVariable(EnvUtil.BuildTaskAccessToken); if (string.IsNullOrWhiteSpace(feedEndPointsJsonEnvVar) == false || string.IsNullOrWhiteSpace(uriPrefixesStringEnvVar) == false || string.IsNullOrWhiteSpace(accessTokenEnvVar) == false) { Verbose(Resources.BuildTaskCredProviderIsUsedError); return(false); } var validHosts = EnvUtil.GetHostsFromEnvironment(Logger, EnvUtil.SupportedHostsEnvVar, new[] { ".pkgs.vsts.me", // DevFabric ".pkgs.codedev.ms", // DevFabric ".pkgs.codeapp.ms", // AppFabric ".pkgs.visualstudio.com", // Prod ".pkgs.dev.azure.com" // Prod }); return(validHosts.Any(host => uri.Host.EndsWith(host, StringComparison.OrdinalIgnoreCase)) || await authUtil.IsVstsUriAsync(uri)); }
/// <summary> /// 删除文件或目录 /// </summary> /// <param name="dir"></param> /// <param name="file"></param> /// <param name="isDir"></param> /// <returns></returns> internal static bool Delete(string dir, string file, bool isDir) { dir = Regex.Replace(dir, "^(\\/)*([\\S\\s]+)(\\/)$", "$2"); var path = EnvUtil.GetBaseDirectory() + dir + file; if (isDir) { //如果为系统文件,则返回false foreach (var s in SysIntArray) { if (string.CompareOrdinal(s, file) == 0) { return(false); } } Directory.Delete(path + "/"); //目录下有文件,不能删除 } else { //如果为系统文件,则返回false foreach (var s in SysIntArray) { if (string.CompareOrdinal(s, file.Replace("\\", "")) == 0) { return(false); } } File.Delete(path); } return(true); }
public static void PerformiOSBuild() { PlayerSettings.iOS.sdkVersion = iOSSdkVersion.DeviceSDK; string originalVersion = PlayerSettings.iOS.buildNumber; PlayerSettings.iOS.buildNumber = EnvUtil.GetEnvValue(ENV_BUILD_NUMBER, originalVersion); Build(BuildTargetGroup.iOS, BuildTarget.iOS); PlayerSettings.iOS.buildNumber = originalVersion; }
public override async Task <GetAuthenticationCredentialsResponse> HandleRequestAsync(GetAuthenticationCredentialsRequest request, CancellationToken cancellationToken) { // If this is a retry, let's try without sending a retry request to the underlying bearerTokenProvider if (request.IsRetry) { var responseWithNoRetry = await HandleRequestAsync(GetNonRetryRequest(request), cancellationToken); if (responseWithNoRetry?.ResponseCode == MessageResponseCode.Success) { return(responseWithNoRetry); } } var sessionTimeSpan = EnvUtil.GetSessionTimeFromEnvironment(Logger) ?? TimeSpan.FromHours(DefaultSessionTimeHours); DateTime endTime = DateTime.UtcNow + sessionTimeSpan; Verbose(string.Format(Resources.VSTSSessionTokenValidity, sessionTimeSpan.ToString(), endTime.ToUniversalTime().ToString())); try { var bearerToken = await bearerTokenProvider.GetAsync(request.Uri, isRetry : false, request.IsNonInteractive, request.CanShowDialog, cancellationToken); if (string.IsNullOrWhiteSpace(bearerToken)) { return(new GetAuthenticationCredentialsResponse( username: null, password: null, message: Resources.BearerTokenFailed, authenticationTypes: null, responseCode: MessageResponseCode.Error)); } var sessionTokenClient = new VstsSessionTokenClient(request.Uri, bearerToken, authUtil); var sessionToken = await sessionTokenClient.CreateSessionTokenAsync(endTime, cancellationToken); if (!string.IsNullOrWhiteSpace(sessionToken)) { Verbose(string.Format(Resources.VSTSSessionTokenCreated, request.Uri.ToString())); return(new GetAuthenticationCredentialsResponse( Username, sessionToken, message: null, authenticationTypes: new List <string>() { "Basic" }, responseCode: MessageResponseCode.Success)); } } catch (Exception e) { Verbose(string.Format(Resources.VSTSCreateSessionException, request.Uri, e.Message, e.StackTrace)); } Verbose(string.Format(Resources.VSTSCredentialsNotFound, request.Uri.ToString())); return(null); }
/// <summary> /// 获取插件的图标 /// </summary> /// <param name="workerIndent"></param> /// <returns></returns> public static byte[] GetPluginIcon(string workerIndent, int width, int height, string defaultIconPath) { string icon = null; var iconExist = false; byte[] data; Iterate((p, a) => { if (String.Compare(a.WorkIndent, workerIndent, StringComparison.OrdinalIgnoreCase) == 0) { icon = String.Format("{0}/{1}{2}/{3}", EnvUtil.GetBaseDirectory(), PluginConfig.PLUGIN_DIRECTORY, workerIndent, a.Icon); } }); if (!String.IsNullOrEmpty(icon)) { iconExist = File.Exists(icon); } resetIcon: if (!iconExist) { icon = defaultIconPath; } var bit = (Bitmap)null; try { using (bit = new Bitmap(icon)) { var ms = GraphicsHelper.MakeThumbnail(bit, ImageSizeMode.AutoSuit, width, height, null); data = ms.ToArray(); ms.Dispose(); bit.Dispose(); } } catch { iconExist = false; goto resetIcon; } finally { if (bit != null) { bit.Dispose(); } } return(data); }
internal MsalTokenProvider(string authority, string resource, string clientId, ILogger logger) { this.authority = authority; this.resource = resource; this.clientId = clientId; this.Logger = logger; this.cacheEnabled = EnvUtil.MsalFileCacheEnabled(); this.cacheLocation = this.cacheEnabled ? EnvUtil.GetMsalCacheLocation() : null; }
public static string GetJson(string dir_abs_path) { var dir = new DirectoryInfo(Path.Combine(EnvUtil.GetBaseDirectory(), dir_abs_path)); if (!dir.Exists) { return(ReturnError($"目录:{dir_abs_path}不存在!")); } return(GetJson(dir, dir_abs_path == "/")); }
private static ICache <Uri, string> GetSessionTokenCache(ILogger logger, CancellationToken cancellationToken) { if (EnvUtil.SessionTokenCacheEnabled()) { logger.Verbose(string.Format(Resources.SessionTokenCacheLocation, EnvUtil.SessionTokenCacheLocation)); return(new SessionTokenCache(EnvUtil.SessionTokenCacheLocation, logger, cancellationToken)); } logger.Verbose(Resources.SessionTokenCacheDisabled); return(new NoOpCache <Uri, string>()); }
protected void saveLog(string str) { using ( System.IO.StreamWriter sr = new System.IO.StreamWriter(EnvUtil.GetBaseDirectory() + "collection.log", true)) { sr.WriteLine(str); sr.Flush(); sr.Dispose(); } }
private bool UsePpeAadUrl(Uri uri) { var ppeHosts = EnvUtil.GetHostsFromEnvironment(logger, EnvUtil.PpeHostsEnvVar, new[] { ".vsts.me", ".codedev.ms", ".devppe.azure.com" }); return(ppeHosts.Any(host => uri.Host.EndsWith(host, StringComparison.OrdinalIgnoreCase))); }
private void SetServerPort(int serverPort) { this.serverPort = serverPort; // env first var env = EnvUtil.GetEnvValue(NAMING_SERVER_PORT); if (!string.IsNullOrWhiteSpace(env) && int.TryParse(env, out var port)) { this.serverPort = port; } }
public HttpTagsHandler(string configPath) { this.configPath = configPath; //获取配置文件的路径 if (String.IsNullOrEmpty(configPath)) { this.configPath = EnvUtil.GetBaseDirectory() + request.GetParameter("config"); } //创建标签管理器对象 Tags = new TagsManager(configPath); }
public DbAccess(DataBaseType dbType, string connectionString, bool sqlTrace) { _dbType = dbType; _connectionString = connectionString; _sqlTrace = sqlTrace; dbAccess = new DataBaseAccess(_dbType, _connectionString); if (sqlTrace) { _fileLogger = new FileLogger(EnvUtil.GetBaseDirectory() + "/tmp/sql_profile.txt"); _fileLogger.Truncate(); dbAccess.Use(profileTrace); } }
public override async Task <bool> CanProvideCredentialsAsync(Uri uri) { var validHosts = EnvUtil.GetHostsFromEnvironment(Logger, EnvUtil.SupportedHostsEnvVar, new[] { ".pkgs.vsts.me", // DevFabric ".pkgs.codedev.ms", // DevFabric ".pkgs.codeapp.ms", // AppFabric ".pkgs.visualstudio.com", // Prod ".pkgs.dev.azure.com" // Prod }); return(validHosts.Any(host => uri.Host.EndsWith(host, StringComparison.OrdinalIgnoreCase)) || await authUtil.IsVstsUriAsync(uri)); }
private static string UnitySymbolsFromArg() { string[] result = EnvUtil.FindArgsStartWith(ENV_DEFINE_SYMBOLS); StringBuilder sb = new StringBuilder(); foreach (var arg in result) { sb.Append(arg.Substring(2)); sb.Append(";"); } return(sb.ToString()); }