Ubic
view release on metacpan or search on metacpan
lib/Ubic/Admin/Setup.pm view on Meta::CPAN
my $default_user;
if ($is_root) {
print_tty "\nUbic services can be started from any user.\n";
print_tty "Some services don't specify the user from which they must be started.\n";
print_tty "Default user will be used in this case.\n";
$default_user = prompt_str("Default user?", $opt_default_user);
}
else {
print_tty "\n";
$default_user = getpwuid($>);
unless (defined $default_user) {
die "Can't get login (uid '$>')";
}
print_tty "You're using local installation, so default service user will be set to '$default_user'.\n";
}
my $enable_1777;
if ($is_root) {
print_tty "\nSystem-wide installations usually need to store service-related data\n";
print_tty "into data dir for different users. For non-root services to work\n";
lib/Ubic/Cmd.pm view on Meta::CPAN
}
}
sub print_status($$;$$) {
my $self = _obj(shift);
my $service = shift;
my $force_cached = shift;
my $results = shift || Ubic::Cmd::Results->new;
# TODO - use Credentials instead
my $user = getpwuid($>);
unless (defined $user) {
die "Can't detect user by uid $>";
}
my $max_offset = 0;
$self->traverse($service, sub {
my ($service, $indent) = @_;
my $name = $service->full_name;
print $name;
lib/Ubic/Credentials/OS/MacOSX.pm view on Meta::CPAN
($self->{effective_group_id}) = $) =~ /^(\d+)/;
# TODO - derive user from real_user_id when user is not specified (or from effective_user_id?!)
}
return bless $self => $class;
}
sub user {
my $self = shift;
unless (defined $self->{user}) {
$self->{user} = getpwuid($>);
}
return $self->{user};
}
sub group {
my $self = shift;
unless (defined $self->{group}) {
$self->_user2group;
}
return $self->{group};
lib/Ubic/Credentials/OS/MacOSX.pm view on Meta::CPAN
}
sub set_effective {
my $self = shift;
my $current_creds = Ubic::Credentials->new;
my $euid = $current_creds->effective_user_id();
my ($egid) = $current_creds->effective_group_id();
$egid =~ s/^(\d+).*/$1/;
my $current_user = getpwuid($euid);
my $current_group = getgrgid($egid);
my $user = $self->user;
my ($group) = $self->group;
if ($group ne $current_group) {
$self->{old_egid} = $);
my $new_gid = getgrnam($group);
unless (defined $new_gid) {
die "group $group not found";
lib/Ubic/Credentials/OS/POSIX.pm view on Meta::CPAN
$self->{effective_group_id} = [ split / /, $) ];
# TODO - derive user from real_user_id when user is not specified (or from effective_user_id?!)
}
return bless $self => $class;
}
sub user {
my $self = shift;
unless (defined $self->{user}) {
my $user = getpwuid($>);
unless (defined $user) {
die "failed to get user name by uid $>";
}
$self->{user} = $user;
}
return $self->{user};
}
sub group {
my $self = shift;
lib/Ubic/Credentials/OS/POSIX.pm view on Meta::CPAN
}
sub set_effective {
my $self = shift;
my $current_creds = Ubic::Credentials->new;
my $euid = $current_creds->effective_user_id();
my ($egid) = $current_creds->effective_group_id();
$egid =~ s/^(\d+).*/$1/;
my $current_user = getpwuid($euid);
unless (defined $current_user) {
die "failed to get current user name by euid $euid";
}
my $current_group = getgrgid($egid);
unless (defined $current_group) {
die "failed to get current group name by egid $egid";
}
my $user = $self->user;
my ($group) = $self->group;
open my $fh, '<', $file or die "Can't open $file: $!";
return do { local $/; <$fh> };
}
our $local_ubic;
sub local_ubic {
my $params = validate(@_, {
service_dirs => { type => ARRAYREF, default => ['t/service/common', 'etc/ubic/service'] },
default_user => {
type => SCALAR,
default => $ENV{LOGNAME} || $ENV{USERNAME} || scalar getpwuid($>),
},
});
xsystem('mkdir tfiles/service');
for my $dir (@{ $params->{service_dirs} }) {
xsystem('cp', '-r', '--', glob("$dir/*"), 'tfiles/service/');
}
require Ubic;
Ubic->set_data_dir('tfiles/ubic');
( run in 0.296 second using v1.01-cache-2.11-cpan-8d75d55dd25 )