Fix restoring shell on unfreeze when member did not have a shell preference
[hcoop/scripts.git] / freeze
diff --git a/freeze b/freeze
index 5c497a5..6883a58 100755 (executable)
--- a/freeze
+++ b/freeze
@@ -238,14 +238,15 @@ sub login {
        }
 
        elsif ($a =~ /^u/i) {
+           if ( -l "$user[5]/.loginshell" or -e "$user[5]/.loginshell" ) {
+               if (!DRY) {
+                   system("rm '$user[5]/.loginshell'");
+               } else {
+                   warn qq{system("rm '$user[5]/.loginshell'")\n};
+               }
+           }
+
                if ( $$store{$u}{shell}) {
-                       if ( -l "$user[5]/.loginshell" or -e "$user[5]/.loginshell" ) {
-                               if (!DRY) {
-                                       system("rm '$user[5]/.loginshell'");
-                               } else {
-                                       warn qq{system("rm '$user[5]/.loginshell'")\n};
-                               }
-                       }
                        if (!DRY) {
                                symlink($$store{$u}{shell}, "$user[5]/.loginshell")
                                        or warn "symlink: $!";