module RPM

Constants

BUILD__ALL_PACKAGE
BUILD__BINARY_PACKAGE
BUILD__CHECK_FILELIST
BUILD__SOURCE_PACKAGE
BUILD__UNTIL_BUILD
BUILD__UNTIL_INSTALL
BUILD__UNTIL_PREP
PKG_NAME
PROB_FILER_FORCE
PROB_FILER_IGNORESIZE
PROB_FILER_REPLACEFILES
VERSION

Public Class Methods

[](p1) click to toggle source

@param [String] name Name of the macro @return [String] value of macro name

static VALUE
m_aref(VALUE m, VALUE name)
{
        char  buf[BUFSIZ];
        char* tmp;
        VALUE val;

        if (TYPE(name) != T_STRING) {
                rb_raise(rb_eTypeError, "illegal argument type");
        }

        sprintf(buf, "%%{%s}", RSTRING_PTR(name));
        tmp = strdup(buf);
        expandMacros(NULL, NULL, buf, BUFSIZ);
        if (strcmp(tmp, buf) == 0) {
                val = Qnil;
        } else {
                val = rb_str_new2(buf);
        }
        free(tmp);

        return val;
}
[]=(p1, p2) click to toggle source

Setup a macro @param [String] name Name of the macro @param [String] value Value of the macro or nil to delete it

static VALUE
m_aset(VALUE m, VALUE name, VALUE val)
{
        if (TYPE(name) != T_STRING
                || (val != Qnil && TYPE(val) != T_STRING)) {
                rb_raise(rb_eTypeError, "illegal argument type(s)");
        }
        if (val == Qnil) {
                delMacro(NULL, RSTRING_PTR(name));
        } else {
                addMacro(NULL, RSTRING_PTR(name), NULL, RSTRING_PTR(val), RMIL_DEFAULT);
        }
        return Qnil;
}
expand(p1) click to toggle source
static VALUE
m_expand(VALUE m, VALUE name)
{
        return rb_str_new2(rpmExpand(StringValueCStr(name), NULL));
}
init_macros(*args) click to toggle source
static VALUE
m_init_macros(int argc, VALUE* argv, VALUE m)
{
        register int i;
        char buf[BUFSIZ];

        if (argc == 0) {
                rb_raise(rb_eArgError, "too few argument(>= 1)");
        }

        buf[0] = '\0';
        for (i = 0; i < argc; i++) {
                if (TYPE(argv[i]) != T_STRING) {
                        rb_raise(rb_eTypeError, "illegal argument type(s)");
                }
                strcat(buf, RSTRING_PTR(argv[i]));
                strcat(buf, ":");
        }
        rpmInitMacros(NULL, buf);

        return Qnil;
}
readrc(*args) click to toggle source

Read configuration files

static VALUE
m_readrc(int argc, VALUE* argv, VALUE m)
{
        register int i;
        char buf[BUFSIZ];

        if (argc == 0) {
                rb_raise(rb_eArgError, "too few argument(>= 1)");
        }

        buf[0] = '\0';
        for (i = 0; i < argc; i++) {
                if (TYPE(argv[i]) != T_STRING) {
                        rb_raise(rb_eTypeError, "illegal argument type(s)");
                }
                strcat(buf, RSTRING_PTR(argv[i]));
                strcat(buf, ":");
        }
        rpmFreeMacros(NULL);
        if (rpmReadConfigFiles(buf, NULL)) {
                rb_raise(rb_eRuntimeError, "can not read rc file %s", buf);
        }

        return Qnil;
}
verbosity() click to toggle source

@return [Number] Verbosity level

static VALUE
m_get_verbosity(VALUE m)
{
        return INT2NUM(rpm_verbosity);
}
verbosity=(p1) click to toggle source

Sets the verbosity level @param [Number] verbosity Verbosity level

static VALUE
m_set_verbosity(VALUE m, VALUE verbosity)
{
        int v = NUM2INT(rb_Integer(verbosity));
        switch (v) {
        case RPMLOG_EMERG: case RPMLOG_ALERT:
        case RPMLOG_CRIT: case RPMLOG_ERR:
        case RPMLOG_WARNING: case RPMLOG_NOTICE:
        case RPMLOG_INFO: case RPMLOG_DEBUG:
                break;

        default:
                rb_raise(rb_eArgError, "invalid verbosity");
        }
        rpmSetVerbosity(v);
        rpm_verbosity = v;
        return Qnil;
}
vercmp(ver1, ver2) click to toggle source
# File lib/rpm.rb, line 35
def vercmp(ver1, ver2)
  unless String === ver1 and String === ver2 then
    raise TypeError, 'illegal argument type'
  end
  RPM::Version.new(ver1) <=> RPM::Version.new(ver2)
end

Private Instance Methods

vercmp(ver1, ver2) click to toggle source
# File lib/rpm.rb, line 35
def vercmp(ver1, ver2)
  unless String === ver1 and String === ver2 then
    raise TypeError, 'illegal argument type'
  end
  RPM::Version.new(ver1) <=> RPM::Version.new(ver2)
end