Example #1
0
        public void Process()
        {
            IList <string> data;

            while (true)
            {
                data = BasicInteractions.Request().Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
                switch (data[0])
                {
                case "ls":
                    _HC.ls(data);
                    break;

                case "defj":
                    _HC.defj(data);
                    break;

                case "mkj":
                    _HC.mkj(data);
                    break;

                case "ssj":
                    _HC.ssj(data);
                    break;

                case "rmj":
                    _HC.rmj(data);
                    break;

                case "gnt":
                    _HC.gnt();
                    break;

                case "rmt":
                    _HC.rmt(data);
                    break;

                case "help":
                    _HC.help();
                    break;

                case "\\\\":
                    return;

                default:
                    if (data[0] != string.Empty)
                    {
                        BasicOutputs.Error("unknown command; check for typos or type help");
                    }
                    break;
                }
            }
        }
Example #2
0
        public static bool ConfirmationRequest(string prmpt)
        {
            do
            {
                Write(string.Concat(prmpt, " [Y/n] >> "));
                switch (ReadLine())
                {
                case "Y": return(true);

                case "n": return(false);

                default:
                    BasicOutputs.Error("Please choose from the given options...");
                    break;
                }
            } while (true);
        }
Example #3
0
        public static void Main(string[] args)
        {
            string BaseDir = @"/home/mxar/Documents/Projects/Hydrozoa/src/clients/Hydrozoa CLI/";     //AppDomain.CurrentDomain.BaseDirectory;

            AppSettings.BaseDir = BaseDir;

            string path = string.Concat(BaseDir, "resources/greetings.txt");

            if (File.Exists(path))
            {
                BasicOutputs.Output(File.ReadLines(path).ToList <string>());
            }
            else
            {
                throw new FileNotFoundException();
            }

            path = string.Concat(BaseDir, "resources/target_node.json");
            if (File.Exists(path))
            {
                JObject config = JObject.Parse(File.ReadAllText(path));
                ConnectionTarget.Host = (string)config["AccessNode"]["Host"];
                ConnectionTarget.Port = (Int32)config["AccessNode"]["Port"];
            }
            else
            {
                throw new FileNotFoundException();
            }

            path = string.Concat(BaseDir, "resources/hlp.txt");
            if (File.Exists(path))
            {
                AppSettings.HelpTXT = File.ReadLines(path).ToList <string>();
            }
            else
            {
                throw new FileNotFoundException();
            }

            Bash B = new Bash((IHydrozoaCmd)(new HydrozoaCmd()));

            B.Process();
        }
Example #4
0
        public async Task <IList <byte> > ExchangeData(Byte[] data, Int32 buffer_size = 1024, Int32 max_retry = 3, Int32 delta = 10)
        {
            for (int i = 0; i < max_retry; i++)
            {
                using (TcpClient client = new TcpClient()) {
                    await client.ConnectAsync(Host, Port);

                    using (NetworkStream stream = client.GetStream()) {
                        try {
                            if (!stream.CanWrite)
                            {
                                throw new HostUnreachableException();
                            }
                            else
                            {
                                stream.Write(data, 0, data.Length);
                                if (!stream.CanRead)
                                {
                                    throw new HostUnreachableException();
                                }
                                else
                                {
                                    List <byte> answer = new List <byte>();
                                    byte[]      buffer = new byte[buffer_size];
                                    while (stream.DataAvailable)
                                    {
                                        stream.Read(buffer, 0, buffer.Length);
                                        answer.AddRange(buffer);
                                    }
                                    return(answer);
                                }
                            }
                        } catch (Exception ex) {
                            BasicOutputs.Error(ex);
                            await Task.Delay(delta);

                            delta *= 2;
                        }
                    }
                }
            }
            return(null);
        }
Example #5
0
 void IHydrozoaCmd.help()
 {
     BasicOutputs.Output(AppSettings.HelpTXT);
 }