Exemplo n.º 1
0
        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);
            });
        }
Exemplo n.º 2
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();
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
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"));
        }