mirror of
				https://github.com/cheat/cheat.git
				synced 2025-11-04 07:45:28 +01:00 
			
		
		
		
	feat(installer): set default editor
				
					
				
			Attempt to set and locate a default editor when running the installer.
This commit is contained in:
		@@ -15,11 +15,22 @@ func Editor() (string, error) {
 | 
			
		||||
		return "notepad", nil
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// look for `nano` on the `PATH`
 | 
			
		||||
	// look for `nano` and `vim` on the `PATH`
 | 
			
		||||
	def, _ := exec.LookPath("editor") // default `editor` wrapper
 | 
			
		||||
	nano, _ := exec.LookPath("nano")
 | 
			
		||||
	vim, _ := exec.LookPath("vim")
 | 
			
		||||
 | 
			
		||||
	// search for `$VISUAL`, `$EDITOR`, and then `nano`, in that order
 | 
			
		||||
	for _, editor := range []string{os.Getenv("VISUAL"), os.Getenv("EDITOR"), nano} {
 | 
			
		||||
	// set editor priority
 | 
			
		||||
	editors := []string{
 | 
			
		||||
		os.Getenv("VISUAL"),
 | 
			
		||||
		os.Getenv("EDITOR"),
 | 
			
		||||
		def,
 | 
			
		||||
		nano,
 | 
			
		||||
		vim,
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// return the first editor that was found per the priority above
 | 
			
		||||
	for _, editor := range editors {
 | 
			
		||||
		if editor != "" {
 | 
			
		||||
			return editor, nil
 | 
			
		||||
		}
 | 
			
		||||
 
 | 
			
		||||
@@ -20,11 +20,18 @@ func Run(configs string, confpath string) error {
 | 
			
		||||
	community := filepath.Join(confdir, "cheatsheets", "community")
 | 
			
		||||
	personal := filepath.Join(confdir, "cheatsheets", "personal")
 | 
			
		||||
 | 
			
		||||
	// template the above paths into the default configs
 | 
			
		||||
	// set default cheatpaths
 | 
			
		||||
	configs = strings.Replace(configs, "COMMUNITY_PATH", community, -1)
 | 
			
		||||
	configs = strings.Replace(configs, "PERSONAL_PATH", personal, -1)
 | 
			
		||||
 | 
			
		||||
	// locate and set a default pager
 | 
			
		||||
	configs = strings.Replace(configs, "PAGER_PATH", config.Pager(), -1)
 | 
			
		||||
 | 
			
		||||
	// locate and set a default editor
 | 
			
		||||
	if editor, err := config.Editor(); err == nil {
 | 
			
		||||
		configs = strings.Replace(configs, "EDITOR_PATH", editor, -1)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// prompt the user to download the community cheatsheets
 | 
			
		||||
	yes, err := Prompt(
 | 
			
		||||
		"Would you like to download the community cheatsheets? [Y/n]",
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user