1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
// Namespace: "keybase.1"
// Protocol: "install"
#![allow(dead_code)]
#![allow(non_snake_case)]
#![allow(non_camel_case_types)]
#![allow(unused_imports)]
use serde::{Serialize, Deserialize};
use serde_repr::{Deserialize_repr, Serialize_repr};use super::*;

use super::common::*;
// @go("nostring")
#[derive(Serialize_repr, Deserialize_repr, Debug, Hash, PartialEq, Eq)]
#[repr(u8)]
pub enum InstallStatus {
  Unknown_0,
  Error_1,
  Not_installed_2,
  Installed_4,
}

// @go("nostring")
#[derive(Serialize_repr, Deserialize_repr, Debug, Hash, PartialEq, Eq)]
#[repr(u8)]
pub enum InstallAction {
  Unknown_0,
  None_1, // Nothing to do
  Upgrade_2, // Upgrade from earlier version
  Reinstall_3, // Something bad happened and need re-install
  Install_4, // Installing (not installed)
}

pub struct ServiceStatus {
  pub version: Option<String>,
  pub label: Option<String>,
  pub pid: Option<String>,
  pub lastExitStatus: Option<String>,
  pub bundleVersion: Option<String>,
  pub installStatus: InstallStatus,
  pub installAction: InstallAction,
  pub status: Status,
}

pub struct ServicesStatus {
  pub service: Option<Vec<ServiceStatus>>,
  pub kbfs: Option<Vec<ServiceStatus>>,
  pub updater: Option<Vec<ServiceStatus>>,
}

pub struct FuseMountInfo {
  pub path: Option<String>,
  pub fstype: Option<String>,
  pub output: Option<String>,
}

pub struct FuseStatus {
  pub version: Option<String>,
  pub bundleVersion: Option<String>,
  pub kextID: Option<String>,
  pub path: Option<String>,
  pub kextStarted: bool,
  pub installStatus: InstallStatus,
  pub installAction: InstallAction,
  pub mountInfos: Option<Vec<FuseMountInfo>>,
  pub status: Status,
}

pub struct ComponentResult {
  pub name: Option<String>,
  pub status: Status,
  pub exitCode: i32,
}

pub struct InstallResult {
  pub componentResults: Option<Vec<ComponentResult>>,
  pub status: Status,
  pub fatal: bool,
}

pub struct UninstallResult {
  pub componentResults: Option<Vec<ComponentResult>>,
  pub status: Status,
}