MCPcopy Create free account
hub / github.com/diillson/chatcli / ExpandPath

Function ExpandPath

utils/path.go:157–185  ·  view source on GitHub ↗

ExpandPath expande o caractere ~ no início de um caminho para o diretório home do usuário. Se o caminho não começar com ~, ele é retornado sem modificações. A função não suporta a expansão de ~username, retornando um erro nesse caso.

(path string)

Source from the content-addressed store, hash-verified

155// Se o caminho não começar com ~, ele é retornado sem modificações.
156// A função não suporta a expansão de ~username, retornando um erro nesse caso.
157func ExpandPath(path string) (string, error) {
158 // Verifica se o caminho começa com ~
159 if strings.HasPrefix(path, "~") {
160 // Obtém o diretório home do usuário
161 home, err := os.UserHomeDir()
162 if err != nil {
163 return "", fmt.Errorf("não foi possível obter o diretório home: %w", err)
164 }
165
166 // Se o caminho for apenas ~, retorna o diretório home
167 if len(path) == 1 {
168 return home, nil
169 }
170
171 // Verifica se o segundo caractere é um separador de diretório.
172 // Accept both '/' and '\' so that paths like "~/.chatcli" work on Windows
173 // where filepath.Separator is '\'.
174 if path[1] == '/' || path[1] == filepath.Separator {
175 // Constrói o caminho completo a partir do diretório home
176 path = filepath.Join(home, path[2:])
177 } else {
178 // Expansão de ~username não é suportada
179 return "", fmt.Errorf("expansão de ~username não é suportada, apenas ~ para o diretório home do usuário atual")
180 }
181 }
182
183 // Retorna o caminho original se não começar com ~
184 return path, nil
185}

Callers 15

mainFunction · 0.92
runSubcommandFunction · 0.92
runDaemonSubcommandFunction · 0.92
StartMethod · 0.92
handleExportCommandMethod · 0.92
reloadConfigurationMethod · 0.92
getEnvFilePathMethod · 0.92
NewHistoryManagerFunction · 0.92
acquireMethod · 0.92
loadImageAttachmentMethod · 0.92

Calls 1

ErrorfMethod · 0.80

Tested by 1

TestExpandPathFunction · 0.68