mirror of
				https://gogs.blitter.com/RLabs/xs
				synced 2024-08-14 10:26:42 +00:00 
			
		
		
		
	Correct implicit username for MSYS2 eg. xs @server.com
Signed-off-by: Russ Magee <rmagee@gmail.com>
This commit is contained in:
		
							parent
							
								
									cf63c5a239
								
							
						
					
					
						commit
						7f87225e34
					
				
					 1 changed files with 19 additions and 6 deletions
				
			
		
							
								
								
									
										25
									
								
								xs/xs.go
									
										
									
									
									
								
							
							
						
						
									
										25
									
								
								xs/xs.go
									
										
									
									
									
								
							|  | @ -256,7 +256,7 @@ func buildCmdRemoteToLocal(copyQuiet bool, copyLimitBPS uint, destPath, files st | ||||||
| 		cmd = xs.GetTool("tar") | 		cmd = xs.GetTool("tar") | ||||||
| 
 | 
 | ||||||
| 		args = []string{"-xz", "-C", destPath} | 		args = []string{"-xz", "-C", destPath} | ||||||
| } else { | 	} else { | ||||||
| 		// TODO: Query remote side for total file/dir size | 		// TODO: Query remote side for total file/dir size | ||||||
| 		bandwidthInBytesPerSec := " -L " + fmt.Sprintf("%d ", copyLimitBPS) | 		bandwidthInBytesPerSec := " -L " + fmt.Sprintf("%d ", copyLimitBPS) | ||||||
| 		displayOpts := " -pre " | 		displayOpts := " -pre " | ||||||
|  | @ -309,7 +309,7 @@ func buildCmdLocalToRemote(copyQuiet bool, copyLimitBPS uint, files string) (cap | ||||||
| 		bandwidthInBytesPerSec := " -L " + fmt.Sprintf("%d", copyLimitBPS) | 		bandwidthInBytesPerSec := " -L " + fmt.Sprintf("%d", copyLimitBPS) | ||||||
| 		displayOpts := " -pre " | 		displayOpts := " -pre " | ||||||
| 		cmd = xs.GetTool("bash") | 		cmd = xs.GetTool("bash") | ||||||
| 		args = []string{"-c", xs.GetTool("tar")+" -cz -f /dev/stdout "} | 		args = []string{"-c", xs.GetTool("tar") + " -cz -f /dev/stdout "} | ||||||
| 		files = strings.TrimSpace(files) | 		files = strings.TrimSpace(files) | ||||||
| 		// Awesome fact: tar actually can take multiple -C args, and | 		// Awesome fact: tar actually can take multiple -C args, and | ||||||
| 		// changes to the dest dir *as it sees each one*. This enables | 		// changes to the dest dir *as it sees each one*. This enables | ||||||
|  | @ -723,9 +723,9 @@ func main() { | ||||||
| 	// Find out what program we are (shell or copier) | 	// Find out what program we are (shell or copier) | ||||||
| 	myPath := strings.Split(os.Args[0], string(os.PathSeparator)) | 	myPath := strings.Split(os.Args[0], string(os.PathSeparator)) | ||||||
| 	if myPath[len(myPath)-1] != "xc" && | 	if myPath[len(myPath)-1] != "xc" && | ||||||
| 	myPath[len(myPath)-1] != "_xc" && | 		myPath[len(myPath)-1] != "_xc" && | ||||||
| 	myPath[len(myPath)-1] != "xc.exe" && | 		myPath[len(myPath)-1] != "xc.exe" && | ||||||
| 	myPath[len(myPath)-1] != "_xc.exe" { | 		myPath[len(myPath)-1] != "_xc.exe" { | ||||||
| 		// xs accepts a command (-x) but not | 		// xs accepts a command (-x) but not | ||||||
| 		// a srcpath (-r) or dstpath (-t) | 		// a srcpath (-r) or dstpath (-t) | ||||||
| 		flag.StringVar(&cmdStr, "x", "", "run <`command`> (if not specified, run interactive shell)") | 		flag.StringVar(&cmdStr, "x", "", "run <`command`> (if not specified, run interactive shell)") | ||||||
|  | @ -769,7 +769,7 @@ func main() { | ||||||
| 	var uname string | 	var uname string | ||||||
| 	if remoteUser == "" { | 	if remoteUser == "" { | ||||||
| 		u, _ := user.Current() // nolint: gosec | 		u, _ := user.Current() // nolint: gosec | ||||||
| 		uname = u.Username | 		uname = localUserName(u) | ||||||
| 	} else { | 	} else { | ||||||
| 		uname = remoteUser | 		uname = remoteUser | ||||||
| 	} | 	} | ||||||
|  | @ -1037,6 +1037,19 @@ func main() { | ||||||
| 	exitWithStatus(int(rec.Status())) | 	exitWithStatus(int(rec.Status())) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | // currentUser returns the current username minus any OS-specific prefixes | ||||||
|  | // such as MS Windows workgroup prefixes (eg. workgroup\user). | ||||||
|  | func localUserName(u *user.User) string { | ||||||
|  | 	if u == nil { | ||||||
|  | 		log.Fatal("null User?!") | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	// WinAPI: username may have CIFS prefix %USERDOMAIN%\ | ||||||
|  | 	userspec := strings.Split(u.Username, `\`) | ||||||
|  | 	username := userspec[len(userspec)-1] | ||||||
|  | 	return username | ||||||
|  | } | ||||||
|  | 
 | ||||||
| func restoreTermState(oldState *xs.State) { | func restoreTermState(oldState *xs.State) { | ||||||
| 	_ = xs.Restore(os.Stdin.Fd(), oldState) // nolint: errcheck,gosec | 	_ = xs.Restore(os.Stdin.Fd(), oldState) // nolint: errcheck,gosec | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue