From b03de3de1d068fab5d89590a60b0a73ed182723f Mon Sep 17 00:00:00 2001
From: Kubat <mael.martin31@gmail.com>
Date: Fri, 8 May 2020 16:26:48 +0200
Subject: [PATCH] Sticker creation

---
 doc/lkt.1      |  3 +++
 src/main/lkt.c | 11 +++++++++++
 2 files changed, 14 insertions(+)

diff --git a/doc/lkt.1 b/doc/lkt.1
index 73c36811..911e8436 100644
--- a/doc/lkt.1
+++ b/doc/lkt.1
@@ -134,6 +134,9 @@ Search in the queue and prints the karas that match the query
 .PD 0
 .TP
 .PD
+\fBsticker create\fP <name>
+Create a sticker that can be used to tag \fIkara\fP and \fIplt\fP objects
+.TP
 \fBsticker get\fP <type> <uri> [ <name> [ <op> <value> ] ]
 List the stickers of an object \fIuri\fP. The object \fItype\fP can be
 \fIkara\fP or \fIplt\fP.
diff --git a/src/main/lkt.c b/src/main/lkt.c
index 89ba0e45..79c89590 100644
--- a/src/main/lkt.c
+++ b/src/main/lkt.c
@@ -729,6 +729,16 @@ stickers_set__(struct lkt_cmd_args *args)
     exit_with_status(sock, buff);
 }
 
+noreturn void
+stickers_create__(struct lkt_cmd_args *args)
+{
+    fail_if(args->argc != 1, "Invalid argument");
+    FILE *sock = lkt_connect();
+    char buff[2];
+    write_socket(sock, "sticker __create %s\n", args->argv[0]);
+    exit_with_status(sock, buff);
+}
+
 noreturn void
 stickers_delete__(struct lkt_cmd_args *args)
 {
@@ -834,6 +844,7 @@ static struct lkt_cmd_opt options_stickers[] = {
     { .name = "get",        .call = stickers_get__      },
     { .name = "set",        .call = stickers_set__      },
     { .name = "delete",     .call = stickers_delete__   },
+    { .name = "create",     .call = stickers_create__   },
     LKT_OPT_NULL,
 };
 
-- 
GitLab