feat(cli): print human-readable datetime instead of Unix timestamp
This commit is contained in:
parent
133ef0b3a5
commit
eeedbfa484
35
cli/cli.c
35
cli/cli.c
@ -2,6 +2,7 @@
|
|||||||
#include <getopt.h>
|
#include <getopt.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
#include <time.h>
|
||||||
|
|
||||||
#include "../include/tanabata.h"
|
#include "../include/tanabata.h"
|
||||||
|
|
||||||
@ -10,15 +11,20 @@
|
|||||||
#define HIGHLIGHT(s) "[0;36m"s"[0m"
|
#define HIGHLIGHT(s) "[0;36m"s"[0m"
|
||||||
#define ERROR(s) "[0;31m"s"[0m"
|
#define ERROR(s) "[0;31m"s"[0m"
|
||||||
|
|
||||||
|
#define DT_FORMAT "%F %T"
|
||||||
|
|
||||||
static Tanabata tanabata;
|
static Tanabata tanabata;
|
||||||
|
|
||||||
// Print the list of all sasa
|
// Print the list of all sasa
|
||||||
void print_sasa_all() {
|
void print_sasa_all() {
|
||||||
printf(TABLE_HEADER("Sasa ID\tCreation timestamp\tFile path\n"));
|
printf(TABLE_HEADER("Sasa ID\tCreation datetime\tFile path\n"));
|
||||||
|
char datetime[20];
|
||||||
for (uint64_t i = 0; i < tanabata.sasahyou.size; i++) {
|
for (uint64_t i = 0; i < tanabata.sasahyou.size; i++) {
|
||||||
if (tanabata.sasahyou.database[i].id != HOLE_ID) {
|
if (tanabata.sasahyou.database[i].id != HOLE_ID) {
|
||||||
printf("%7lx\t%18lu\t%s\n",
|
strftime(datetime, 20, DT_FORMAT,
|
||||||
tanabata.sasahyou.database[i].id, tanabata.sasahyou.database[i].created_ts,
|
localtime((const time_t *) &tanabata.sasahyou.database[i].created_ts));
|
||||||
|
printf("%7lx\t%19s\t%s\n",
|
||||||
|
tanabata.sasahyou.database[i].id, datetime,
|
||||||
tanabata.sasahyou.database[i].path);
|
tanabata.sasahyou.database[i].path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -26,11 +32,14 @@ void print_sasa_all() {
|
|||||||
|
|
||||||
// Print the list of all tanzaku
|
// Print the list of all tanzaku
|
||||||
void print_tanzaku_all() {
|
void print_tanzaku_all() {
|
||||||
printf(TABLE_HEADER("Tanzaku ID\tCreation timestamp\tName\n"));
|
printf(TABLE_HEADER("Tanzaku ID\tCreation datetime\tName\n"));
|
||||||
|
char datetime[20];
|
||||||
for (uint64_t i = 0; i < tanabata.sappyou.size; i++) {
|
for (uint64_t i = 0; i < tanabata.sappyou.size; i++) {
|
||||||
if (tanabata.sappyou.database[i].id != HOLE_ID) {
|
if (tanabata.sappyou.database[i].id != HOLE_ID) {
|
||||||
printf("%10lx\t%18lu\t%s\n",
|
strftime(datetime, 20, DT_FORMAT,
|
||||||
tanabata.sappyou.database[i].id, tanabata.sappyou.database[i].created_ts,
|
localtime((const time_t *) &tanabata.sappyou.database[i].created_ts));
|
||||||
|
printf("%10lx\t%19s\t%s\n",
|
||||||
|
tanabata.sappyou.database[i].id, datetime,
|
||||||
tanabata.sappyou.database[i].name);
|
tanabata.sappyou.database[i].name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -46,9 +55,12 @@ int menu_view_sasa() {
|
|||||||
if (*input != '\n' && *endptr == '\n') {
|
if (*input != '\n' && *endptr == '\n') {
|
||||||
Sasa current_sasa = tanabata_sasa_get_by_id(&tanabata, sasa_id);
|
Sasa current_sasa = tanabata_sasa_get_by_id(&tanabata, sasa_id);
|
||||||
if (current_sasa.id != HOLE_ID) {
|
if (current_sasa.id != HOLE_ID) {
|
||||||
|
char datetime[20];
|
||||||
|
strftime(datetime, 20, DT_FORMAT,
|
||||||
|
localtime((const time_t *) ¤t_sasa.created_ts));
|
||||||
printf(HIGHLIGHT("File path")" %s\n"
|
printf(HIGHLIGHT("File path")" %s\n"
|
||||||
HIGHLIGHT("Added timestamp")" %lu\n",
|
HIGHLIGHT("Added datetime")" %s\n",
|
||||||
current_sasa.path, current_sasa.created_ts);
|
current_sasa.path, datetime);
|
||||||
Tanzaku *related_tanzaku = tanabata_tanzaku_get_by_sasa(&tanabata, current_sasa.id);
|
Tanzaku *related_tanzaku = tanabata_tanzaku_get_by_sasa(&tanabata, current_sasa.id);
|
||||||
if (related_tanzaku != NULL) {
|
if (related_tanzaku != NULL) {
|
||||||
printf(HIGHLIGHT("\n↓ Related tanzaku ↓\n"));
|
printf(HIGHLIGHT("\n↓ Related tanzaku ↓\n"));
|
||||||
@ -79,12 +91,15 @@ int menu_view_tanzaku() {
|
|||||||
if (*input != '\n' && *endptr == '\n') {
|
if (*input != '\n' && *endptr == '\n') {
|
||||||
Tanzaku current_tanzaku = tanabata_tanzaku_get_by_id(&tanabata, tanzaku_id);
|
Tanzaku current_tanzaku = tanabata_tanzaku_get_by_id(&tanabata, tanzaku_id);
|
||||||
if (current_tanzaku.id != HOLE_ID) {
|
if (current_tanzaku.id != HOLE_ID) {
|
||||||
|
char datetime[20];
|
||||||
|
strftime(datetime, 20, DT_FORMAT,
|
||||||
|
localtime((const time_t *) ¤t_tanzaku.created_ts));
|
||||||
printf(HIGHLIGHT("Name")" %s\n"
|
printf(HIGHLIGHT("Name")" %s\n"
|
||||||
HIGHLIGHT("Created timestamp")" %lu\n"
|
HIGHLIGHT("Created datetime")" %s\n"
|
||||||
HIGHLIGHT("\n↓ Description ↓\n")
|
HIGHLIGHT("\n↓ Description ↓\n")
|
||||||
"%s\n"
|
"%s\n"
|
||||||
HIGHLIGHT("↑ Description ↑\n"),
|
HIGHLIGHT("↑ Description ↑\n"),
|
||||||
current_tanzaku.name, current_tanzaku.created_ts, current_tanzaku.description);
|
current_tanzaku.name, datetime, current_tanzaku.description);
|
||||||
Sasa *related_sasa = tanabata_sasa_get_by_tanzaku(&tanabata, tanzaku_id);
|
Sasa *related_sasa = tanabata_sasa_get_by_tanzaku(&tanabata, tanzaku_id);
|
||||||
if (related_sasa != NULL) {
|
if (related_sasa != NULL) {
|
||||||
printf(HIGHLIGHT("\n↓ Related sasa ↓\n"));
|
printf(HIGHLIGHT("\n↓ Related sasa ↓\n"));
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user