# Begin functions
###############################################
+#############################
+# Helper Function
+#############################
+sub run_verbose {
+ my $thecmd = shift(@_);
+
+ if ($verbose) {
+ print "$thecmd\n";
+ }
+ return system($thecmd);
+}
+
#############################
# User Add Function
#############################
my $username = shift(@_);
my $alreadydone=(-f "/var/lib/gforge/tmp/$username.tar.gz");
- if (!$alreadydone){
- if($verbose){print("Deleting User : $username\n")};
- if($verbose){print("/bin/mv /var/lib/gforge/chroot/home/users/$username /var/lib/gforge/chroot/home/users/deleted_$username\n")};
- system("/bin/mv /var/lib/gforge/chroot/home/users/$username /var/lib/gforge/chroot/home/users/deleted_$username");
- if($verbose){print("/bin/tar -czf /var/lib/gforge/tmp/$username.tar.gz /var/lib/gforge/chroot/home/users/deleted_$username && /bin/rm -rf /var/lib/gforge/chroot/home/users/deleted_$username\n")};
- system("/bin/tar -czf /var/lib/gforge/tmp/$username.tar.gz /var/lib/gforge/chroot/home/users/deleted_$username && /bin/rm -rf /var/lib/gforge/chroot/home/users/deleted_$username");
+ if (!$alreadydone) {
+ my $oldmask = umask(077);
+ if ($verbose) {
+ print("Deleting User : $username\n");
+ }
+ run_verbose("/bin/mv /var/lib/gforge/chroot/home/users/$username /var/lib/gforge/chroot/home/users/deleted_$username");
+ run_verbose("cd / && /bin/tar -cf - /var/lib/gforge/chroot/home/users/deleted_$username | /bin/gzip -n9 >/var/lib/gforge/tmp/$username.tar.gz && /bin/rm -rf /var/lib/gforge/chroot/home/users/deleted_$username");
+ umask($oldmask);
}
}