Option to ask for a username and group

Introduced properties

init defaultinit(help: String, default: VALUE, names: nullable Array[String])

privileges :: OptionUserAndGroup :: defaultinit

init for_dropping_privileges

privileges :: OptionUserAndGroup :: for_dropping_privileges

Create an OptionUserAndGroup for dropping privileges

Redefined properties

redef type SELF: OptionUserAndGroup

privileges $ OptionUserAndGroup :: SELF

Type of this instance, automatically specialized in every class
redef type VALUE: nullable UserGroup

privileges $ OptionUserAndGroup :: VALUE

Type of the value of the option
redef fun convert(str: String): VALUE

privileges $ OptionUserAndGroup :: convert

Convert str to a value of type VALUE.

All properties

fun !=(other: nullable Object): Bool

core :: Object :: !=

Have self and other different values?
fun ==(other: nullable Object): Bool

core :: Object :: ==

Have self and other the same value?
type CLASS: Class[SELF]

core :: Object :: CLASS

The type of the class of self.
type SELF: Object

core :: Object :: SELF

Type of this instance, automatically specialized in every class
type VALUE: nullable Object

opts :: Option :: VALUE

Type of the value of the option
private var _default_value: VALUE

opts :: Option :: _default_value

Default value of this option
private var _errors: Array[String]

opts :: Option :: _errors

Gathering errors during parsing
private var _helptext: String

opts :: Option :: _helptext

Human readable description of the option
private var _hidden: Bool

opts :: Option :: _hidden

Is this option hidden from usage?
private var _mandatory: Bool

opts :: Option :: _mandatory

Is this option mandatory?
private var _names: Array[String]

opts :: Option :: _names

Names for the option (including long and short ones)
private var _parameter_mandatory: Bool

opts :: OptionParameter :: _parameter_mandatory

Is the parameter mandatory?
private var _read: Bool

opts :: Option :: _read

Has this option been read?
private var _value: VALUE

opts :: Option :: _value

Current value of this option
fun add_aliases(names: String...)

opts :: Option :: add_aliases

Add new aliases for this option
protected fun class_factory(name: String): CLASS

core :: Object :: class_factory

Implementation used by get_class to create the specific class.
fun class_name: String

core :: Object :: class_name

The class name of the object.
protected abstract fun convert(str: String): VALUE

opts :: OptionParameter :: convert

Convert str to a value of type VALUE.
fun default_value: VALUE

opts :: Option :: default_value

Default value of this option
fun default_value=(default_value: VALUE)

opts :: Option :: default_value=

Default value of this option
init defaultinit(help: String, default: VALUE, names: nullable Array[String])

opts :: Option :: defaultinit

Create a new option
init defaultinit(help: String, default: VALUE, names: nullable Array[String])

opts :: OptionParameter :: defaultinit

init defaultinit(help: String, default: VALUE, names: nullable Array[String])

privileges :: OptionUserAndGroup :: defaultinit

fun errors: Array[String]

opts :: Option :: errors

Gathering errors during parsing
protected fun errors=(errors: Array[String])

opts :: Option :: errors=

Gathering errors during parsing
init for_dropping_privileges

privileges :: OptionUserAndGroup :: for_dropping_privileges

Create an OptionUserAndGroup for dropping privileges
fun get_class: CLASS

core :: Object :: get_class

The meta-object representing the dynamic type of self.
fun hash: Int

core :: Object :: hash

The hash code of the object.
fun helptext: String

opts :: Option :: helptext

Human readable description of the option
protected fun helptext=(helptext: String)

opts :: Option :: helptext=

Human readable description of the option
fun hidden: Bool

opts :: Option :: hidden

Is this option hidden from usage?
fun hidden=(hidden: Bool)

opts :: Option :: hidden=

Is this option hidden from usage?
init init

core :: Object :: init

fun init_opt(help: String, default: VALUE, names: nullable Array[String])

opts :: Option :: init_opt

Init option helptext, default_value and names.
fun inspect: String

core :: Object :: inspect

Developer readable representation of self.
protected fun inspect_head: String

core :: Object :: inspect_head

Return "CLASSNAME:#OBJECTID".
intern fun is_same_instance(other: nullable Object): Bool

core :: Object :: is_same_instance

Return true if self and other are the same instance (i.e. same identity).
fun is_same_serialized(other: nullable Object): Bool

core :: Object :: is_same_serialized

Is self the same as other in a serialization context?
intern fun is_same_type(other: Object): Bool

core :: Object :: is_same_type

Return true if self and other have the same dynamic type.
fun mandatory: Bool

opts :: Option :: mandatory

Is this option mandatory?
fun mandatory=(mandatory: Bool)

opts :: Option :: mandatory=

Is this option mandatory?
fun names: Array[String]

opts :: Option :: names

Names for the option (including long and short ones)
protected fun names=(names: Array[String])

opts :: Option :: names=

Names for the option (including long and short ones)
private intern fun native_class_name: CString

core :: Object :: native_class_name

The class name of the object in CString format.
intern fun object_id: Int

core :: Object :: object_id

An internal hash code for the object based on its identity.
fun output

core :: Object :: output

Display self on stdout (debug only).
intern fun output_class_name

core :: Object :: output_class_name

Display class name on stdout (debug only).
fun parameter_mandatory: Bool

opts :: OptionParameter :: parameter_mandatory

Is the parameter mandatory?
fun parameter_mandatory=(parameter_mandatory: Bool)

opts :: OptionParameter :: parameter_mandatory=

Is the parameter mandatory?
fun pretty(off: Int): String

opts :: Option :: pretty

A pretty print for this help
fun pretty_default: String

opts :: Option :: pretty_default

Pretty print the default value.
fun read: Bool

opts :: Option :: read

Has this option been read?
fun read=(read: Bool)

opts :: Option :: read=

Has this option been read?
protected fun read_param(opts: OptionContext, it: Iterator[String])

opts :: Option :: read_param

Consume parameters for this option
fun serialization_hash: Int

core :: Object :: serialization_hash

Hash value use for serialization
intern fun sys: Sys

core :: Object :: sys

Return the global sys object, the only instance of the Sys class.
abstract fun to_jvalue(env: JniEnv): JValue

core :: Object :: to_jvalue

fun to_s: String

core :: Object :: to_s

User readable representation of self.
fun value: VALUE

opts :: Option :: value

Current value of this option
fun value=(value: VALUE)

opts :: Option :: value=

Current value of this option
package_diagram privileges::OptionUserAndGroup OptionUserAndGroup opts::OptionParameter OptionParameter privileges::OptionUserAndGroup->opts::OptionParameter opts::Option Option opts::OptionParameter->opts::Option ...opts::Option ... ...opts::Option->opts::Option

Ancestors

interface Object

core :: Object

The root of the class hierarchy.
abstract class Option

opts :: Option

Super class of all option's class

Parents

abstract class OptionParameter

opts :: OptionParameter

Option with one parameter (mandatory by default)

Class definitions

privileges $ OptionUserAndGroup
# Option to ask for a username and group
class OptionUserAndGroup
	super OptionParameter

	redef type VALUE: nullable UserGroup

	# Create an `OptionUserAndGroup` for dropping privileges
	init for_dropping_privileges
	do
		init("Drop privileges to user:group or simply user", null, ["-u", "--usergroup"])
	end

	redef fun convert(str)
	do
		var words = str.split(":")
		if words.length == 1 then
			return new UserGroup(str, null)
		else if words.length == 2 then
			return new UserGroup(words[0], words[1])
		else
			errors.add("Option {names.join(", ")} expected parameter in the format \"user:group\" or simply \"user\".\n")
			return null
		end
	end
end
lib/privileges/privileges.nit:73,1--97,3