mirror of
https://github.com/ddworken/hishtory.git
synced 2025-02-08 22:50:44 +01:00
Skip configuring the bash_profile on linux if bash_profile does not exist to fix #79
This commit is contained in:
parent
8be529f269
commit
8422aa21db
@ -10,6 +10,7 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
"path"
|
"path"
|
||||||
|
"runtime"
|
||||||
"strings"
|
"strings"
|
||||||
"syscall"
|
"syscall"
|
||||||
"time"
|
"time"
|
||||||
@ -352,14 +353,16 @@ func configureBashrc(homedir, binaryPath string) error {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Check if we need to configure the bash_profile and configure it if so
|
// Check if we need to configure the bash_profile and configure it if so
|
||||||
bashProfileIsConfigured, err := isBashProfileConfigured(homedir)
|
if doesBashProfileNeedConfig(homedir) {
|
||||||
if err != nil {
|
bashProfileIsConfigured, err := isBashProfileConfigured(homedir)
|
||||||
return fmt.Errorf("failed to check ~/.bash_profile: %v", err)
|
|
||||||
}
|
|
||||||
if !bashProfileIsConfigured {
|
|
||||||
err = addToShellConfig(path.Join(homedir, ".bash_profile"), getBashConfigFragment(homedir))
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return fmt.Errorf("failed to check ~/.bash_profile: %v", err)
|
||||||
|
}
|
||||||
|
if !bashProfileIsConfigured {
|
||||||
|
err = addToShellConfig(path.Join(homedir, ".bash_profile"), getBashConfigFragment(homedir))
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
@ -394,6 +397,20 @@ func isBashRcConfigured(homedir string) (bool, error) {
|
|||||||
return strings.Contains(string(bashrc), getBashConfigFragment(homedir)), nil
|
return strings.Contains(string(bashrc), getBashConfigFragment(homedir)), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func doesBashProfileNeedConfig(homedir string) bool {
|
||||||
|
if runtime.GOOS == "darwin" {
|
||||||
|
// Darwin always needs it configured for #14
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
if runtime.GOOS == "linux" {
|
||||||
|
// Only configure it on linux if .bash_profile already exists
|
||||||
|
_, err := os.Stat(path.Join(homedir, ".bash_profile"))
|
||||||
|
return !errors.Is(err, os.ErrNotExist)
|
||||||
|
}
|
||||||
|
// Default to not configuring it
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
func isBashProfileConfigured(homedir string) (bool, error) {
|
func isBashProfileConfigured(homedir string) (bool, error) {
|
||||||
_, err := os.Stat(path.Join(homedir, ".bash_profile"))
|
_, err := os.Stat(path.Join(homedir, ".bash_profile"))
|
||||||
if errors.Is(err, os.ErrNotExist) {
|
if errors.Is(err, os.ErrNotExist) {
|
||||||
|
Loading…
Reference in New Issue
Block a user