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; } } }
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); }
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(); }
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); }
void IHydrozoaCmd.help() { BasicOutputs.Output(AppSettings.HelpTXT); }