summaryrefslogtreecommitdiff
path: root/hyprpm/src/core/Manifest.hpp
blob: 41a49350a871272c569d6b8ee361c2cbfcf2994f (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
#pragma once

#include <string>
#include <vector>

enum eManifestType {
    MANIFEST_HYPRLOAD,
    MANIFEST_HYPRPM
};

class CManifest {
  public:
    CManifest(const eManifestType type, const std::string& path);

    struct SManifestPlugin {
        std::string              name;
        std::string              description;
        std::string              version;
        std::vector<std::string> authors;
        std::vector<std::string> buildSteps;
        std::string              output;
        int                      since  = 0;
        bool                     failed = false;
    };

    struct {
        std::string                                      name;
        std::vector<std::string>                         authors;
        std::vector<std::pair<std::string, std::string>> commitPins;
    } m_repository;

    std::vector<SManifestPlugin> m_plugins;
    bool                         m_good = true;
};