printer/plain.go
changeset 41 909c3ddd83f6
parent 38 891a3c46a62a
child 58 5a0cb1e65e65
--- a/printer/plain.go	Sun Apr 30 18:17:10 2017 +0200
+++ b/printer/plain.go	Sun Apr 30 18:43:11 2017 +0200
@@ -127,6 +127,19 @@
 	return h // Failed: return initial string
 }
 
+// unix2string convert a UNIX timestamp to a string
+func unix2string(ts interface{}) string {
+	switch t := ts.(type) {
+	case int64:
+		return time.Unix(t, 0).String()
+	case int:
+		return time.Unix(int64(t), 0).String()
+	case float64:
+		return time.Unix(int64(t), 0).String()
+	}
+	return fmt.Sprintf("%v", ts)
+}
+
 func indentedPrint(w io.Writer, indent string, title, skipIfEmpty bool, label string, format string, args ...interface{}) {
 	prefix := indent
 	if title {
@@ -272,7 +285,7 @@
 	indentedPrint(w, indent, true, false, "User token", "%s", s.AccessToken)
 	indentedPrint(w, indent, false, true, "Type", "%s", s.TokenType)
 	if s.CreatedAt != 0 {
-		indentedPrint(w, indent, false, true, "Timestamp", "%v", time.Unix(int64(s.CreatedAt), 0))
+		indentedPrint(w, indent, false, true, "Timestamp", "%v", unix2string(s.CreatedAt))
 	}
 	indentedPrint(w, indent, false, true, "Scope", "%s", s.Scope)
 	return nil
@@ -287,6 +300,6 @@
 	indentedPrint(w, indent, false, false, "Statuses", "%d", is.Statuses)
 	indentedPrint(w, indent, false, false, "Open Registrations", "%v", is.OpenRegistrations)
 	indentedPrint(w, indent, false, false, "Up", "%v", is.Up)
-	indentedPrint(w, indent, false, false, "Date", "%s", time.Unix(is.Date, 0))
+	indentedPrint(w, indent, false, false, "Date", "%s", unix2string(is.Date))
 	return nil
 }