private void Window_Loaded(object sender, RoutedEventArgs e) { SetStatus("Preparing to launch the client..."); Task.Run(() => { HomeFolder.Create(SetStatus); SetStatus("Status..."); var jreBinary = JRE.GetOrObtainJREBinary(SetStatus); var client = Client.EnsureLatestClient(SetStatus); var jvmArgsPath = Path.Combine(HomeFolder.GetDirectory(), "jvmargs.txt"); IEnumerable <string> jvmArgs = new[] { "-Xmx512M" }; if (File.Exists(jvmArgsPath)) { jvmArgs = File.ReadAllText(jvmArgsPath).Trim().Split(" "); } else { File.WriteAllText(jvmArgsPath, String.Join(" ", jvmArgs.ToArray())); } Shell.Execute(jreBinary, Client.GetDirectory(), true, jvmArgs.Append("-jar").Append(client)); Environment.Exit(0); }); }
public ExampleForm() { InitializeComponent(); MyFormAppSession session = new MyFormAppSession("http://192.168.0.51/tc"); HomeFolder home = new HomeFolder(this); Query query = new Query(this); DataManagement dm = new DataManagement(this); User user = session.login(); DataManagementService dmService = DataManagementService.getService(MyFormAppSession.getConnection()); String[] attributes = { "os_username" }; dmService.GetProperties(new ModelObject[] { user }, attributes); appendTxt("User name: " + user.Os_username); home.listHomeFolder(user); query.queryItems(); dm.createReviseAndDelete(); session.logout(); }
public int RestoreItem(string tempFolder, System.Xml.XmlNode itemNode, int itemId, Type itemType, string itemName, int packageId, int serviceId, ResourceGroupInfo group) { if (itemType == typeof(HomeFolder)) { OS.OperatingSystem os = GetOS(serviceId); // extract meta item XmlSerializer serializer = new XmlSerializer(typeof(HomeFolder)); HomeFolder homeFolder = (HomeFolder)serializer.Deserialize( new XmlNodeReader(itemNode.SelectSingleNode("HomeFolder"))); // create home folder if required if (!os.DirectoryExists(homeFolder.Name)) { os.CreatePackageFolder(homeFolder.Name); } // copy database backup to remote server XmlNode fileNode = itemNode.SelectSingleNode("File[@name='SpaceFiles']"); string backupFileName = fileNode.Attributes["path"].Value; long backupFileLength = Int64.Parse(fileNode.Attributes["size"].Value); string localBackupFilePath = Path.Combine(tempFolder, backupFileName); if (new FileInfo(localBackupFilePath).Length != backupFileLength) { return(-3); } FileStream stream = new FileStream(localBackupFilePath, FileMode.Open, FileAccess.Read); byte[] buffer = new byte[FILE_BUFFER_LENGTH]; int readBytes = 0; long length = 0; string remoteBackupPath = Path.Combine(homeFolder.Name, backupFileName); do { // read package file readBytes = stream.Read(buffer, 0, FILE_BUFFER_LENGTH); length += readBytes; if (readBytes < FILE_BUFFER_LENGTH) { // resize buffer Array.Resize <byte>(ref buffer, readBytes); } // write remote backup file os.AppendFileBinaryContent(remoteBackupPath, buffer); }while (readBytes == FILE_BUFFER_LENGTH); stream.Close(); // unzip files os.UnzipFiles(remoteBackupPath, homeFolder.Name); // delete archive if (os.FileExists(remoteBackupPath)) { os.DeleteFile(remoteBackupPath); } // add meta-item if required if (PackageController.GetPackageItemByName(packageId, itemName, typeof(HomeFolder)) == null) { homeFolder.PackageId = packageId; homeFolder.ServiceId = serviceId; PackageController.AddPackageItem(homeFolder); } } else if (itemType == typeof(SystemDSN)) { OS.OperatingSystem os = GetOS(serviceId); // extract meta item XmlSerializer serializer = new XmlSerializer(typeof(SystemDSN)); SystemDSN dsn = (SystemDSN)serializer.Deserialize( new XmlNodeReader(itemNode.SelectSingleNode("SystemDSN"))); // create DSN if required if (os.GetDSN(itemName) == null) { dsn.DatabasePassword = CryptoUtils.Decrypt(dsn.DatabasePassword); os.CreateDSN(dsn); // restore password dsn.DatabasePassword = CryptoUtils.Encrypt(dsn.DatabasePassword); } // add meta-item if required if (PackageController.GetPackageItemByName(packageId, itemName, typeof(SystemDSN)) == null) { dsn.PackageId = packageId; dsn.ServiceId = serviceId; PackageController.AddPackageItem(dsn); } } return(0); }
public void Initialize() { // get environment-based settings File env_home = FileFactory.NewForPath(Environment.GetFolderPath(Environment.SpecialFolder.Personal)); File env_data_install = FileFactory.NewForPath(AssemblyInfo.DataDirectory); // set the non-XDG Base Directory specified directories to use HomeFolder = env_home; SystemDataFolder = env_data_install.GetChild("docky"); // get XDG Base Directory settings string xdg_config_home = Environment.GetEnvironmentVariable("XDG_CONFIG_HOME"); string xdg_data_home = Environment.GetEnvironmentVariable("XDG_DATA_HOME"); string xdg_data_dirs = Environment.GetEnvironmentVariable("XDG_DATA_DIRS"); string xdg_cache_home = Environment.GetEnvironmentVariable("XDG_CACHE_HOME"); // determine directories based on XDG with fallbacks if (string.IsNullOrEmpty(xdg_config_home)) { XdgConfigHomeFolder = HomeFolder.GetChild(".config"); } else { XdgConfigHomeFolder = FileFactory.NewForPath(xdg_config_home); } if (string.IsNullOrEmpty(xdg_cache_home)) { XdgCacheHomeFolder = HomeFolder.GetChild(".cache"); } else { XdgCacheHomeFolder = FileFactory.NewForPath(xdg_cache_home); } if (string.IsNullOrEmpty(xdg_data_home)) { XdgDataHomeFolder = HomeFolder.GetChild(".local").GetChild("share"); } else { XdgDataHomeFolder = FileFactory.NewForPath(xdg_data_home); } if (string.IsNullOrEmpty(xdg_data_dirs)) { XdgDataDirFolders = new [] { GLib.FileFactory.NewForPath("/usr/local/share"), GLib.FileFactory.NewForPath("/usr/share") } } ; else { XdgDataDirFolders = xdg_data_dirs.Split(':').Select(d => GLib.FileFactory.NewForPath(d)); } // set the XDG Base Directory specified directories to use UserCacheFolder = XdgCacheHomeFolder.GetChild("docky"); UserDataFolder = XdgDataHomeFolder.GetChild("docky"); DockManagerUserDataFolder = XdgDataHomeFolder.GetChild("dockmanager"); AutoStartFile = XdgConfigHomeFolder.GetChild("autostart").GetChild("docky.desktop"); // ensure all writable directories exist EnsureDirectoryExists(UserCacheFolder); EnsureDirectoryExists(UserDataFolder); EnsureDirectoryExists(DockManagerUserDataFolder); EnsureDirectoryExists(XdgConfigHomeFolder.GetChild("autostart")); }