25
25
func main () {
26
26
config := parseConfig ()
27
27
maybeShowVersionAndExit (config )
28
- createAndChangeToWorkDir (config )
28
+ createWorkDir (config )
29
+
30
+ fmt .Fprintf (os .Stderr , "View logs at %s\n " , config .LogFilePath )
29
31
30
32
ctx , cancel := context .WithCancel (context .Background ())
31
33
defer cancel ()
@@ -241,15 +243,8 @@ CleanupAndWaitForGracePeriod:
241
243
}
242
244
}
243
245
244
- func createAndChangeToWorkDir (config Config ) {
245
- workDir := config .WorkDir
246
- filesPath := filepath .Join (workDir , ".pcmd" )
247
-
248
- if err := os .MkdirAll (filesPath , 0755 ); err != nil {
249
- log .Fatal (err )
250
- }
251
-
252
- if err := os .Chdir (workDir ); err != nil {
246
+ func createWorkDir (config Config ) {
247
+ if err := os .MkdirAll (config .WorkDir , 0755 ); err != nil {
253
248
log .Fatal (err )
254
249
}
255
250
}
@@ -465,7 +460,9 @@ func parseConfig() Config {
465
460
466
461
flagSet := flag .NewFlagSet (os .Args [0 ], flag .ExitOnError )
467
462
468
- flagSet .StringVar (& config .WorkDir , "workdir" , "." , "Working directory for lock files, logs, unix sockets, etc." )
463
+ tmpDir := filepath .Join (getTempDir (), "pcmd" )
464
+
465
+ flagSet .StringVar (& config .WorkDir , "workdir" , tmpDir , "Working directory for lock files, logs, unix sockets, etc." )
469
466
flagSet .IntVar (& config .GracePeriod , "grace-period" , 300 , "Number of seconds to allow for cleanup once the proxying is complete" )
470
467
flagSet .BoolVar (& config .Lock , "lock" , false , "Only allow one instance of ProxyCommand to run at a time. Implied by -control-path" )
471
468
flagSet .StringVar (& config .SSHUser , "r" , "" , "The SSH remote user. This should be set to %r. See TOKENS in SSH_CONFIG(5) for more details." )
@@ -506,7 +503,7 @@ func parseConfig() Config {
506
503
}
507
504
508
505
func baseName (config Config ) (bn string ) {
509
- bn = ". pcmd/pcmd"
506
+ bn = filepath . Join ( config . WorkDir , " pcmd" )
510
507
511
508
if config .SSHUser != "" {
512
509
bn = bn + "." + config .SSHUser
@@ -529,3 +526,11 @@ func ensureSSHConfigPresent(config Config) {
529
526
os .Exit (1 )
530
527
}
531
528
}
529
+
530
+ func getTempDir () string {
531
+ envTempDir , exists := os .LookupEnv ("TMPDIR" )
532
+ if exists {
533
+ return envTempDir
534
+ }
535
+ return "/tmp"
536
+ }
0 commit comments