mirror of
https://github.com/Alexandre1a/GoSH.git
synced 2026-03-10 03:29:47 +01:00
Added path inside the prompt
This commit is contained in:
parent
19c1d61a45
commit
ca29c1c439
31
main.go
31
main.go
@ -16,7 +16,7 @@ func main() {
|
|||||||
|
|
||||||
// Configuration du shell interactif
|
// Configuration du shell interactif
|
||||||
rl, err := readline.NewEx(&readline.Config{
|
rl, err := readline.NewEx(&readline.Config{
|
||||||
Prompt: "> ",
|
Prompt: getPrompt(), // Utilise une fonction pour générer le prompt dynamiquement
|
||||||
HistoryFile: historyFile, // Permet de sauvegarder et charger l'historique
|
HistoryFile: historyFile, // Permet de sauvegarder et charger l'historique
|
||||||
AutoComplete: nil, // Peut être amélioré avec l'autocomplétion
|
AutoComplete: nil, // Peut être amélioré avec l'autocomplétion
|
||||||
})
|
})
|
||||||
@ -27,6 +27,9 @@ func main() {
|
|||||||
defer rl.Close()
|
defer rl.Close()
|
||||||
|
|
||||||
for {
|
for {
|
||||||
|
// Mettre à jour le prompt avec le répertoire courant
|
||||||
|
rl.SetPrompt(getPrompt())
|
||||||
|
|
||||||
// Lecture de l'entrée utilisateur avec édition et historique
|
// Lecture de l'entrée utilisateur avec édition et historique
|
||||||
input, err := rl.Readline()
|
input, err := rl.Readline()
|
||||||
if err != nil { // EOF ou Ctrl+D
|
if err != nil { // EOF ou Ctrl+D
|
||||||
@ -46,6 +49,30 @@ func main() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Fonction pour générer le prompt avec le répertoire courant
|
||||||
|
func getPrompt() string {
|
||||||
|
wd, err := os.Getwd()
|
||||||
|
if err != nil {
|
||||||
|
wd = "?"
|
||||||
|
}
|
||||||
|
|
||||||
|
// Récupérer le répertoire home de l'utilisateur
|
||||||
|
homeDir, err := os.UserHomeDir()
|
||||||
|
if err != nil {
|
||||||
|
homeDir = "" // Si on ne peut pas obtenir le home, on ne fait pas de remplacement
|
||||||
|
}
|
||||||
|
|
||||||
|
// Remplacer le chemin du home par "~"
|
||||||
|
if homeDir != "" && strings.HasPrefix(wd, homeDir) {
|
||||||
|
wd = "~" + strings.TrimPrefix(wd, homeDir)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Séquence ANSI pour le texte en bleu (optionnel)
|
||||||
|
blue := "\033[34m"
|
||||||
|
reset := "\033[0m"
|
||||||
|
return fmt.Sprintf("%s[%s]%s > ", blue, wd, reset)
|
||||||
|
}
|
||||||
|
|
||||||
func execInput(input string) error {
|
func execInput(input string) error {
|
||||||
input = strings.TrimSuffix(input, "\n")
|
input = strings.TrimSuffix(input, "\n")
|
||||||
args := strings.Split(input, " ")
|
args := strings.Split(input, " ")
|
||||||
@ -64,7 +91,7 @@ func execInput(input string) error {
|
|||||||
case "exit":
|
case "exit":
|
||||||
os.Exit(0)
|
os.Exit(0)
|
||||||
case "version":
|
case "version":
|
||||||
fmt.Println("GoShell Version 1.0.0")
|
fmt.Println("GoShell Version 2.0.0")
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user