Author: wayland
Date: 2009-02-27 12:34:30 +0100 (Fri, 27 Feb 2009)
New Revision: 25619

Did some work on users and groups

Modified: docs/Perl6/Spec/S16-io.pod
--- docs/Perl6/Spec/S16-io.pod  2009-02-27 11:10:45 UTC (rev 25618)
+++ docs/Perl6/Spec/S16-io.pod  2009-02-27 11:34:30 UTC (rev 25619)
@@ -24,8 +24,10 @@
 corresponding global function, it's merely an exported version of
 the method.
-=head1 Overridable IO handles
+=head1 IO
+=head2 Overridable IO handles
 In Perl 6, there are the I<standard> IO handles, and any number of overriding
 inner filehandles for the same symbol.  
@@ -65,15 +67,78 @@
     # stdout reverts to outer scope's definition
-=head1 Roles and Classes
+=head2 Roles and Classes
 The roles and classes that define most of the functionality for IO are defined 
 S32-setting-library/IO.pod.  The main functions used are listed in S29 with 
references to 
+=head1 Users and Groups
+=head2 User role
+role   User {
+       has $username; # Username (some descendants(?) may want to implement a 
real $name)
+       has $id;  # User ID
+       has $dir; # Home directory for files
+=item new
+ method User new($Username?, $UID?) {...}
+Creates a new User object, fetching the information either by username or user 
+=item write
+ method write() {...}
+Tries to write the current User object to the user database.  This may well 
+=item Str
+When converted to a Str, returns $username.  
+=item Num
+When converted to a Num, returns $uid.  
+=head2 OS::Unix::User role
+role   OS::Unix::User does User {
+       has $password;
+       has $gid;
+       has $gecos;
+       has $shell;
+All the information is naturally fetched from the system via getpwuid, 
getpwnam, or the 
+=head2 Group role
+role   Group {
+       has $name;
+       has $id;
+       has @members;
+=item new
+ method Group new(:$Name, :$ID);
+=item write
+ method write();
+Tries to write the group entry into the system group database.  
 =head1 Additions
 Please post errors and feedback to perl6-language.  If you are making
 a general laundry list, please separate messages by topic.
+=encoding utf8

Modified: docs/Perl6/Spec/S29-functions.pod
--- docs/Perl6/Spec/S29-functions.pod   2009-02-27 11:10:45 UTC (rev 25618)
+++ docs/Perl6/Spec/S29-functions.pod   2009-02-27 11:34:30 UTC (rev 25619)
@@ -420,53 +420,6 @@
   my $address = gethost("").addr;
   my $hostname = gethost(:addr<"">);
-=item getpw
- our OS::PW multi getpw()
- our OS::PW multi getpw( Int $uid )
- our OS::PW multi getpw( Str $name )
- our OS::PW multi method OS::PWEnt::getpw( OS::PWEnt $pw: )
- our OS::PW multi method OS::PWEnt::getpw( OS::PWEnt $pw: Int $uid )
- our OS::PW multi method OS::PWEnt::getpw( OS::PWEnt $pw: Str $name )
-The C<getpw> function operates on system login information, returning
-data about users in the form of an C<OS::PW> object ("PW" refers
-to the historical C<getpw*> functions that are part of the POSIX
-standard, and stands for "password").
-When given no parameters, the "next" user entry is returned (C<undef> is
-returned when the list of users has been exhausted).
-When C<$uid> is provided, a user with the given UID is found and returned.
-C<undef> is returned if no matching entry is found.
-When C<$name> is provided, a user with the matching name is found and
-returned. C<undef> is returned if no matching entry is found.
-The return value is an object that represents the system-specific
-information about the user. When numified, this object returns the
-UID of the user. When stringified, this object returns the username.
-Therefore, the typical convention of:
-  my Int $uid = getpw(~$name);
-  my Str $name = getpw(+$uid);
-Will work as expected.
-See the documentation for the C<OS::PW> and C<OS::PWEnt> classes for more
-information and the equivalent of the Perl 5 setpwent / endpwent functions.
-WARNING: Even when used as a method on an C<OS::PWEnt> object, there
-may be system-specific, global state associated with the implementation
-of these routines.
-[Note: TODO setpgrp setpriority times -ajs ]
 =item chroot
  our Bool multi chroot ( Str $path = CALLER::<$_> )
@@ -828,6 +781,10 @@
 See Exegesis 7.
+=item getgrgid, getgrnam, getpwnam, getpwuid
+The User and Group roles in S16 cover most of these.  
 =item length()
 This word is banned in Perl 6.  You must specify units.  In practise, this 
probably means 
@@ -948,8 +905,6 @@
@@ -965,8 +920,6 @@

Reply via email to