summaryrefslogtreecommitdiff
path: root/src/error.c
blob: af84cba24a46f6010f19a0b33903847074089dcf (plain)
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
/* SPDX-License-Identifier: GPL-3.0-or-later */
/*
 * vfetch - neofetch but the ascii part is a video
 *
 * Copyright (C) 2026  Doan Luu Duc Tai
 *
 */

#include "error.h"
#include <sysexits.h>

int map_vfetch_error_to_exit_code(VfetchError err) {
  switch (err) {
    case VFETCH_SUCCESS:
    case VFETCH_SUCCESS_EXIT_EARLY:
      return EX_OK;
    case VFETCH_ERROR_INVALID_ARGUMENT:
      return EX_USAGE;
    case VFETCH_ERROR_FILE_IO:
    case VFETCH_ERROR_MKDIR_FAILED:
    case VFETCH_ERROR_STAT_FAILED:
    case VFETCH_ERROR_PATH_FAILED:
      return EX_IOERR;
    case VFETCH_ERROR_VIDEO_OPEN_FAILED:
    case VFETCH_ERROR_AV_STREAM_INFO:
    case VFETCH_ERROR_CACHE_INVALID:
      return EX_DATAERR;
    case VFETCH_ERROR_EXEC_FAILED:
    case VFETCH_ERROR_COMMAND_FAILED:
    case VFETCH_ERROR_MA_INIT:
      return EX_UNAVAILABLE;
    case VFETCH_ERROR_MEMORY_ALLOCATION:
    case VFETCH_ERROR_PIPE_CREATION:
    case VFETCH_ERROR_FORK_FAILED:
    case VFETCH_ERROR_WAITPID_FAILED:
    case VFETCH_ERROR_THREAD_CREATION:
    case VFETCH_ERROR_MUTEX_INIT:
    case VFETCH_ERROR_MMAP_FAILED:
      return EX_OSERR;
    case VFETCH_ERROR_CHAFA_CONFIG:
    default:
      return EX_SOFTWARE;
  }
}