summaryrefslogtreecommitdiff
path: root/src/tmate/config.vala
diff options
context:
space:
mode:
Diffstat (limited to 'src/tmate/config.vala')
-rw-r--r--src/tmate/config.vala53
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;
+ }
+ }
+}