Esempio n. 1
0
        public void Deploy(DeployInfo info)
        {
            try
            {
                var sshClient = new SshClient(info.Host, info.Port, info.UserName, info.Password);

                sshClient.Connect();
                var data = sshClient.RunCommand("ls /home/pi/Desktop");
                var arr  = data.Result.Split('\n');
                if (arr.Contains("sp"))
                {
                    var rmCommand = sshClient.RunCommand("rm -rf /home/pi/Desktop/sp/");
                    Console.WriteLine(rmCommand.Result);
                }

                UploadSpCode(info, sshClient);
                var task = Task.Factory.StartNew(() =>
                {
                    sshClient.Disconnect();
                    sshClient.Dispose();
                });
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }
Esempio n. 2
0
        private void UploadSpCode(DeployInfo info, SshClient sshClient)
        {
            var sftpClient = new SftpClient(info.Host, info.Port, info.UserName, info.Password);

            sftpClient.Connect();
            var path = Path.Combine(_hostingEnvironment.ContentRootPath, "MoniterPackage", "sp.zip");

            using (var fs = File.OpenRead(path))
            {
                sftpClient.UploadFile(fs, "/home/pi/Desktop/sp.zip");
                UnZip(info, sftpClient, sshClient);
            }
        }
Esempio n. 3
0
        private void UnZip(DeployInfo info, SftpClient sftpClient, SshClient sshClient)
        {
            var lsCommand = sshClient.RunCommand("ls /home/pi/Desktop");
            var list      = lsCommand.Result.Split('\n');

            if (list.Contains("sp.zip"))
            {
                var unzipCommand =
                    sshClient.RunCommand("unzip /home/pi/Desktop/sp.zip -d /home/pi/Desktop/");
                var rmZipCommand = sshClient.RunCommand("rm -rf /home/pi/Desktop/sp.zip");

                SaveUniqueCode(info, sftpClient);
            }
        }
Esempio n. 4
0
        private void SaveUniqueCode(DeployInfo info, SftpClient sftpClient)
        {
            var config = new ServerConfig
            {
                FloorId  = info.FloorId,
                MasterId = info.MasterId,
                Alias    = info.ServerAlias
            };

            var json = JsonConvert.SerializeObject(config);

            using (var fs = sftpClient.CreateText("/home/pi/Desktop/sp/config.json", Encoding.UTF8))
            {
                fs.Write(json);
            }
        }
Esempio n. 5
0
        public void UpdateConfig(DeployInfo info, ServerConfig newConfig)
        {
            using (var client = new SftpClient(info.Host, info.Port, info.UserName, info.Password))
            {
                client.Connect();

                var exists = client.Exists("/home/pi/Desktop/sp/config.json");
                if (exists)
                {
                    client.DeleteFile("/home/pi/Desktop/sp/config.json");
                }

                var json = JsonConvert.SerializeObject(newConfig);

                using (var fs = client.CreateText("/home/pi/Desktop/sp/config.json", Encoding.UTF8))
                {
                    fs.Write(json);
                }
            }
        }