public SystemWideLock(string file, string context) { bool isLinux = (Environment.OSVersion.Platform == PlatformID.Unix); if (isLinux) { mutex = new LinuxSystemWideLock(file, context); } else { file = file.ToLower(CultureInfo.InvariantCulture); mutex = new WinSystemWideLock("" + context + "." + CSSUtils.GetHashCodeEx(file)); } }
public void ProcessFile() { packages.Clear(); referencedAssemblies.Clear(); referencedScripts.Clear(); referencedNamespaces.Clear(); referencedResources.Clear(); this.parser = new CSharpParser(fileName, true, null, this.searchDirs); foreach (CSharpParser.ImportInfo info in parser.Imports) { referencedScripts.Add(new ScriptInfo(info)); } referencedAssemblies.AddRange(parser.RefAssemblies); referencedNamespaces.AddRange(Utils.Except(parser.RefNamespaces, parser.IgnoreNamespaces)); referencedResources.AddRange(parser.ResFiles); if (imported) { if (prams != null) { parser.DoRenaming(prams.RenameNamespaceMap, prams.preserveMain); } if (parser.ModifiedCode == "") { fileNameImported = fileName; //importing does not require any modification of the original code } else { fileNameImported = Path.Combine(CSExecutor.ScriptCacheDir, string.Format("i_{0}_{1}{2}", Path.GetFileNameWithoutExtension(fileName), CSSUtils.GetHashCodeEx(Path.GetDirectoryName(fileName)), Path.GetExtension(fileName))); if (!Directory.Exists(Path.GetDirectoryName(fileNameImported))) { Directory.CreateDirectory(Path.GetDirectoryName(fileNameImported)); } if (File.Exists(fileNameImported)) { File.SetAttributes(fileNameImported, FileAttributes.Normal); Utils.FileDelete(fileNameImported, true); } using (StreamWriter scriptWriter = new StreamWriter(fileNameImported, false, Encoding.UTF8)) { //scriptWriter.Write(ComposeHeader(fileNameImported)); //using a big header at start is overkill (it also shifts line numbers so they do not match with the original script file) //but might be required in future scriptWriter.WriteLine(parser.ModifiedCode); scriptWriter.WriteLine("///////////////////////////////////////////"); scriptWriter.WriteLine("// Compiler-generated file - DO NOT EDIT!"); scriptWriter.WriteLine("///////////////////////////////////////////"); } File.SetAttributes(fileNameImported, FileAttributes.ReadOnly); } } }
static int BuildHashSetValue(string assemblyName, string directory) { return(CSSUtils.GetHashCodeEx((assemblyName ?? "") + (directory ?? ""))); }
public SystemWideLock(string file, string context) { file = file.ToLower(CultureInfo.InvariantCulture); mutex = new WinSystemWideLock("" + context + "." + CSSUtils.GetHashCodeEx(file)); }