diff options
Diffstat (limited to 'src/tmate/config.vala')
-rw-r--r-- | src/tmate/config.vala | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/tmate/config.vala b/src/tmate/config.vala new file mode 100644 index 0000000..8957d02 --- /dev/null +++ b/src/tmate/config.vala @@ -0,0 +1,53 @@ +namespace Tmate +{ + [SingleInstance] + class Config : Object + { + private static HashTable<string, string> cfg; + construct { + cfg = new HashTable<string, string>(str_hash, str_equal); + cfg.insert("server-host", "tty.dev.jadupc.com"); + cfg.insert("server-port", "10022"); + cfg.insert("server-rsa-fingerprint", "SHA256:QdMBN/QsrS4QyGApxxjt3DZyiysgeRto5YGGjAHRO7g"); + cfg.insert("server-ed25519-fingerprint", "SHA256:w/TRuOK0w5qDXNBKdlYlANgZwq3Xg5LSZlBYIwEH8gU"); + } + + public void @delete(string? path) + { + if (path == null) return; + var fcfg = File.new_for_path(path); + try { + fcfg.delete(); + } catch (Error e) { + print(@"Error: $(e.message)\n"); + } + } + + public new string? @get() + { + bool failed = false; + string cfgpath = ".."; + + try { + FileIOStream scfg; + var fcfg = File.new_tmp(".tmate.conf.XXXXXXXXX", out scfg); + var cfgout = new DataOutputStream(scfg.output_stream); + cfgpath = fcfg.get_path(); + + cfg.foreach((key, val) => { + try { + if(! failed) + cfgout.put_string(@"set -g tmate-$(key) $(val)\n"); + } catch (Error m) { + print(@"Error: $(m.message)\n"); + failed = true; + } + }); + } catch (Error e) { + print(@"Error: $(e.message)\n"); + failed = true; + } + return failed ? null : cfgpath; + } + } +} |