Skip to content
Snippets Groups Projects
Commit cb09cecb authored by Tamer Tas's avatar Tamer Tas
Browse files

Update shell completion configuration to remove root privileges prompt

parent bd036e68
No related branches found
No related tags found
No related merge requests found
......@@ -31,20 +31,20 @@ symlink() {
}
configure() {
# Auto-completion
$HOME/bin/boilr init
if [ $? -ne 0 ]; then
binary_error="Failed to complete boilr initialization"
return
fi
# Auto-completion prompt
if [ -z "$auto_completion" ]; then
ask "Do you want to enable auto-completion for boilr commmands?"
auto_completion=$?
fi
if [ $auto_completion -eq 1 ]; then
sudo $HOME/bin/boilr configure-bash-completion
fi
$HOME/bin/boilr init
if [ $? -ne 0 ]; then
binary_error="Failed to complete boilr initialization"
return
$HOME/bin/boilr configure-bash-completion
fi
}
......@@ -124,5 +124,7 @@ esac
cat << EOF
Completed installation
Boilr executable is installed to ~/bin/boilr
For more information, see: https://github.com/tmrts/boilr
EOF
......@@ -48,6 +48,7 @@ const (
// file in the configuration directory.
var Configuration = struct {
FilePath string
ConfigDirPath string
TemplateDirPath string
}{}
......@@ -68,6 +69,7 @@ func init() {
}
Configuration.FilePath = filepath.Join(homeDir, ConfigDirPath, ConfigFileName)
Configuration.ConfigDirPath = filepath.Join(homeDir, ConfigDirPath)
Configuration.TemplateDirPath = filepath.Join(homeDir, ConfigDirPath, TemplateDir)
// Read .config/boilr/config.json if exists
......
package cmd
import (
"errors"
"fmt"
"os"
"path/filepath"
"strings"
cli "github.com/spf13/cobra"
"github.com/tmrts/boilr/pkg/boilr"
"github.com/tmrts/boilr/pkg/util/exit"
)
const bashrcText = `
# Enables shell command completion for boilr
source $HOME/bin/boilr
`
func configureBashCompletion() error {
var bash_completion_dir string
if bash_completion_dir = os.Getenv("BASH_COMPLETION_COMPAT_DIR"); bash_completion_dir == "" {
bash_completion_dir = "/etc/bash_completion.d"
}
bash_completion_file := filepath.Join(boilr.Configuration.ConfigDirPath, "completion.bash")
bash_completion_file := filepath.Join(bash_completion_dir, boilr.AppName+".bash")
if err := Root.GenBashCompletionFile(bash_completion_file); err != nil {
return err
}
if err := Root.GenBashCompletionFile(bash_completion_file); err != nil {
if strings.Contains(err.Error(), "permission") {
return fmt.Errorf("couldn't configure bash completion for %s: permission denied", boilr.AppName)
}
return err
}
bashrcPath := filepath.Join(os.Getenv("HOME"), ".bashrc")
if bashrcPath == "" {
return errors.New("environment variable ${HOME} should be set")
}
f, err := os.OpenFile(bashrcPath, os.O_APPEND|os.O_WRONLY, 0600)
if err != nil {
return err
}
defer f.Close()
if _, err = f.WriteString(bashrcText); err != nil {
return err
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment