mirror of https://github.com/tinygo-org/tinygo.git
Browse Source
For now this is a stub for everything but linux, which is a slightly modified copy of the official implementation. Should address #1778.pull/2076/head
Federico G. Schwindt
3 years ago
committed by
Ron Evans
2 changed files with 34 additions and 0 deletions
@ -0,0 +1,9 @@ |
|||
// +build !linux
|
|||
|
|||
package os |
|||
|
|||
import "errors" |
|||
|
|||
func Executable() (string, error) { |
|||
return "", errors.New("Executable not implemented") |
|||
} |
@ -0,0 +1,25 @@ |
|||
// The following is copied from Go 1.17 official implementation.
|
|||
|
|||
// Copyright 2016 The Go Authors. All rights reserved.
|
|||
// Use of this source code is governed by a BSD-style
|
|||
// license that can be found in the LICENSE file.
|
|||
|
|||
// +build linux
|
|||
|
|||
package os |
|||
|
|||
func Executable() (string, error) { |
|||
path, err := Readlink("/proc/self/exe") |
|||
|
|||
// When the executable has been deleted then Readlink returns a
|
|||
// path appended with " (deleted)".
|
|||
return stringsTrimSuffix(path, " (deleted)"), err |
|||
} |
|||
|
|||
// stringsTrimSuffix is the same as strings.TrimSuffix.
|
|||
func stringsTrimSuffix(s, suffix string) string { |
|||
if len(s) >= len(suffix) && s[len(s)-len(suffix):] == suffix { |
|||
return s[:len(s)-len(suffix)] |
|||
} |
|||
return s |
|||
} |
Loading…
Reference in new issue