[Haskell-cafe] how to expand ~ in a filepath
Richard O'Keefe
raoknz at gmail.com
Tue Jul 22 12:03:39 UTC 2025
But it's not just ~/ that should be expanded.
All four of "~" "~/bar" "~foo" and "~foo/bar" should be expanded by a
tilde-expander.
On Tue, 22 Jul 2025 at 03:06, Brandon Allbery <allbery.b at gmail.com> wrote:
>
> There's also https://github.com/xmonad/xmonad-contrib/blob/master/XMonad/Prelude.hs#L135-L156 although it also does a few other things.
>
> On Mon, Jul 21, 2025 at 7:57 AM Tristan Cacqueray via Haskell-Cafe <haskell-cafe at haskell.org> wrote:
>>
>>
>> Hello, unfortunately there is no "expandHomePath" or "realpath" helpers
>> in the standard libraries. Searching for "FilePath -> IO FilePath" in
>> hoogle shows an implementation in the hledger project:
>> https://hackage-content.haskell.org/package/hledger-lib-1.43.2/docs/Hledger-Utils-IO.html#v:expandHomePath
>>
>> … which check if the path begins with "~/", and replace that with the
>> output of "getHomeDirectory"
>>
>> -Tristan
>>
>> On Mon, Jul 21, 2025 at 07:19 PICCA Frederic-Emmanuel wrote:
>> > Hello, I am trying to open and read the content of this kind of filepath.
>> >
>> > ~/debian/changelog
>> >
>> > So is there a prefered way to expand the ~ into the real $HOME.
>> >
>> > thanks for your help
>> >
>> > Frédéric
>> >
>> >
>> > Classification de confidentialité SOLEIL
>> >
>> > Ce message et ses pièces jointes peuvent contenir des informations soumises à des règles de diffusion :
>> >
>> > * P (Public) : Diffusion libre y compris à l'extérieur de SOLEIL.
>> > * I (Interne) : Diffusion libre au sein de SOLEIL, ne doit pas être communiqué à l’extérieur sauf mention spécifique.
>> > * C (Confidentiel) : Diffusion restreinte aux personnes autorisées, internes ou externes. Le partage nécessite l'accord de la hiérarchie.
>> > * S (Sensible) : Accès restreint aux seuls destinataires. Partage non autorisé.
>> >
>> > Les informations contenues dans cet e-mail sont la propriété de SOLEIL. Si vous n'êtes pas le destinataire prévu, merci de nous en notifier et de ne pas utiliser, copier ou distribuer les informations qu'il contient.
>> > _______________________________________________
>> > Haskell-Cafe mailing list
>> > To (un)subscribe, modify options or view archives go to:
>> > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
>> > Only members subscribed via the mailman list are allowed to post.
>> _______________________________________________
>> Haskell-Cafe mailing list
>> To (un)subscribe, modify options or view archives go to:
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
>> Only members subscribed via the mailman list are allowed to post.
>
>
>
> --
> brandon s allbery kf8nh
> allbery.b at gmail.com
> _______________________________________________
> Haskell-Cafe mailing list
> To (un)subscribe, modify options or view archives go to:
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
> Only members subscribed via the mailman list are allowed to post.
More information about the Haskell-Cafe
mailing list