Make kickstart.user.exec work on clients using module
The kickstart.user.exec function was using the `kickstart infect`
command, which works on clients with kickstart installed (which is the
    case for `kickstart infect`ed terminals or baseline).
This change will lookup for the client existance and use it, or use the
compiled module.
			
			
This commit is contained in:
		@@ -18,15 +18,32 @@ kickstart.user.remove_group() {
 | 
				
			|||||||
    usermod -G `kickstart.print_with_separator , ${groups[*]}` $1
 | 
					    usermod -G `kickstart.print_with_separator , ${groups[*]}` $1
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					kickstart.user.exec.command.module() {
 | 
				
			||||||
 | 
					  local cur_dir=`pwd`
 | 
				
			||||||
 | 
					  cat <<COMMAND
 | 
				
			||||||
 | 
					  cd modules/kickstart
 | 
				
			||||||
 | 
					  source install.sh
 | 
				
			||||||
 | 
					  cd $cur_dir
 | 
				
			||||||
 | 
					  $@
 | 
				
			||||||
 | 
					COMMAND
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					kickstart.user.exec.command.infect() {
 | 
				
			||||||
 | 
					  cat <<COMMAND
 | 
				
			||||||
 | 
					  eval "$(kickstart infect)"
 | 
				
			||||||
 | 
					  $@
 | 
				
			||||||
 | 
					COMMAND
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
kickstart.user.exec() {
 | 
					kickstart.user.exec() {
 | 
				
			||||||
  local user=$1
 | 
					  local user=$1
 | 
				
			||||||
  shift
 | 
					  shift
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  local command=$(cat <<COMMAND
 | 
					  local command=''
 | 
				
			||||||
  eval "$(kickstart infect)"
 | 
					  kickstart.command_exists kickstart && \
 | 
				
			||||||
  $@
 | 
					    command=`kickstart.user.exec.command.infect "$@"` || \
 | 
				
			||||||
COMMAND
 | 
					    command=`kickstart.user.exec.command.module "$@"`
 | 
				
			||||||
)
 | 
					
 | 
				
			||||||
  kickstart.info "Running \"$@\" as $user"
 | 
					  kickstart.info Running \'"$@"\' as $user
 | 
				
			||||||
  su $user - bash -c "$command"
 | 
					  su $user - bash -c "$command"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user