Coverage Report

Created: 2026-10-17 06:38

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/barebox/commands/state.c
Line
Count
Source
1
// SPDX-License-Identifier: GPL-2.0-or-later
2
// SPDX-FileCopyrightText: © 2012 Jan Luebbe <j.luebbe@pengutronix.de>
3
4
#include <common.h>
5
#include <getopt.h>
6
#include <command.h>
7
#include <state.h>
8
9
static int do_state(int argc, char *argv[])
10
0
{
11
0
  int opt, ret = 0;
12
0
  struct state *state = NULL;
13
0
  int do_save = 0, do_load = 0;
14
0
  const char *statename = "state";
15
0
  int no_auth = 0;
16
17
0
  while ((opt = getopt(argc, argv, "sln")) > 0) {
18
0
    switch (opt) {
19
0
    case 's':
20
0
      do_save = 1;
21
0
      break;
22
0
    case 'l':
23
0
      do_load = 1;
24
0
      break;
25
0
    case 'n':
26
0
      no_auth = 1;
27
0
      break;
28
0
    default:
29
0
      return COMMAND_ERROR_USAGE;
30
0
    }
31
0
  }
32
33
0
  if (!do_save && !do_load) {
34
0
    state_info();
35
0
    return 0;
36
0
  }
37
38
0
  if (optind < argc)
39
0
    statename = argv[optind];
40
41
0
  state = state_by_name(statename);
42
0
  if (!state) {
43
0
    printf("cannot find state %s\n", statename);
44
0
    return -ENOENT;
45
0
  }
46
47
0
  if (do_load) {
48
0
    if (no_auth)
49
0
      ret = state_load_no_auth(state);
50
0
    else
51
0
      ret = state_load(state);
52
0
  } else if (do_save) {
53
0
    ret = state_save(state);
54
0
  }
55
56
0
  if (ret == -ENOMEDIUM)
57
0
    ret = 0;
58
59
0
  return ret;
60
0
}
61
62
BAREBOX_CMD_HELP_START(state)
63
BAREBOX_CMD_HELP_TEXT("Usage: state [OPTIONS] [STATENAME]")
64
BAREBOX_CMD_HELP_TEXT("")
65
BAREBOX_CMD_HELP_TEXT("options:")
66
BAREBOX_CMD_HELP_OPT ("-s", "save state")
67
BAREBOX_CMD_HELP_OPT ("-l", "load state")
68
BAREBOX_CMD_HELP_OPT ("-n", "no authentication")
69
BAREBOX_CMD_HELP_END
70
71
BAREBOX_CMD_START(state)
72
  .cmd    = do_state,
73
  BAREBOX_CMD_DESC("load or save state information")
74
  BAREBOX_CMD_OPTS("[-sln] [STATENAME]")
75
  BAREBOX_CMD_GROUP(CMD_GRP_MISC)
76
  BAREBOX_CMD_HELP(cmd_state_help)
77
BAREBOX_CMD_END