apply some patch for pythons rpm from opensource
[platform/upstream/rpm.git] / lib / rpmscript.h
1 #ifndef _RPMSCRIPT_H
2 #define _RPMSCRIPT_H
3
4 #include <rpm/rpmtypes.h>
5 #include <rpm/argv.h>
6 #include <rpm/rpmds.h>
7
8 /* Rpm scriptlet types */
9 enum rpmscriptTypes_e {
10     RPMSCRIPT_PREIN             = (1 << 0),
11     RPMSCRIPT_PREUN             = (1 << 1),
12     RPMSCRIPT_POSTIN            = (1 << 2),
13     RPMSCRIPT_POSTUN            = (1 << 3),
14     RPMSCRIPT_TRIGGERPREIN      = (1 << 4),
15     RPMSCRIPT_TRIGGERUN         = (1 << 6),
16     RPMSCRIPT_TRIGGERIN         = (1 << 5),
17     RPMSCRIPT_TRIGGERPOSTUN     = (1 << 7),
18     RPMSCRIPT_PRETRANS          = (1 << 8),
19     RPMSCRIPT_POSTTRANS         = (1 << 9),
20     /* ... */
21     RPMSCRIPT_VERIFY            = (1 << 24),
22 };
23
24 typedef rpmFlags rpmscriptTypes;
25
26 enum rpmscriptTriggerMode_e {
27     RPMSCRIPT_NORMALTRIGGER     = (1 << 0),
28     RPMSCRIPT_FILETRIGGER       = (1 << 1),
29     RPMSCRIPT_TRANSFILETRIGGER  = (1 << 2),
30 };
31
32 typedef rpmFlags rpmscriptTriggerModes;
33
34 enum rpmscriptFlags_e {
35     RPMSCRIPT_FLAG_NONE         = 0,
36     RPMSCRIPT_FLAG_EXPAND       = (1 << 0), /* macro expansion */
37     RPMSCRIPT_FLAG_QFORMAT      = (1 << 1), /* header queryformat expansion */
38 };
39
40 typedef rpmFlags rpmscriptFlags;
41
42 typedef struct rpmScript_s * rpmScript;
43
44 #ifdef __cplusplus
45 extern "C" {
46 #endif
47
48 RPM_GNUC_INTERNAL
49 rpmTagVal triggerDsTag(rpmscriptTriggerModes tm);
50
51 RPM_GNUC_INTERNAL
52 rpmscriptTriggerModes triggerMode(rpmTagVal tag);
53
54 RPM_GNUC_INTERNAL
55 rpmTagVal triggertag(rpmsenseFlags sense);
56
57 RPM_GNUC_INTERNAL
58 rpmScript rpmScriptFromTag(Header h, rpmTagVal scriptTag);
59
60 RPM_GNUC_INTERNAL
61 rpmScript rpmScriptFromTriggerTag(Header h, rpmTagVal triggerTag,
62                                     rpmscriptTriggerModes tm, uint32_t ix);
63
64 RPM_GNUC_INTERNAL
65 rpmScript rpmScriptFree(rpmScript script);
66
67 RPM_GNUC_INTERNAL
68 rpmRC rpmScriptRun(rpmScript script, int arg1, int arg2, FD_t scriptFd,
69                    ARGV_const_t prefixes, int warn_only, rpmPlugins plugins);
70
71 RPM_GNUC_INTERNAL
72 rpmTagVal rpmScriptTag(rpmScript script);
73
74 RPM_GNUC_INTERNAL
75 rpmscriptTypes rpmScriptType(rpmScript script);
76
77 RPM_GNUC_INTERNAL
78 void rpmScriptSetNextFileFunc(rpmScript script, char *(*func)(void *),
79                             void *param);
80 #ifdef __cplusplus
81 }
82 #endif
83 #endif /* _RPMSCRIPT_H */