The analog to the first argument to main in C is
(find-system-path 'run-file)
I think that's probably what you want.
Something closer to `get-current-source` but adapting to a run-time
file is
(variable-reference->module-source
(#%variable-reference))
Here, `(#%variable-reference)` is the primitive form that obtains a
connection to the enclosing module at run time. If you create an
executable with `raco exe`, though, the "source" of the module will be
a symbolic name instead of a path, because a module that's embedded in
an executable doesn't have a file identity anymore.
At Thu, 26 Aug 2021 07:51:35 -0700, Jeff Henrikson wrote:
> Racket users,
>
> Many software applications use their location in the filesystem to
> establish filesystem relationships between their executable file, their
> configuration and their data. For this purpose, C provides the first
> element of the string array provided to main, python provides __file__,
> bash provides ${BASH_SOURCE[0]}, etc.
>
> Racket strips said value before current-command-line-arguments receives
> the subsequent command-line arguments from the operating system.
>
> A related value can be pulled from syntax-source as follows:
>
> (define-syntax (get-current-source stx)
> (datum->syntax
> (quote-syntax here)
> (syntax-source stx)
> stx))
>
> Macro get-current-source works as intended if called at program startup
> and the program is compiled on the fly with:
>
> racket program.rkt
>
> However get-current-source has the unintended property of memorizing the
> original source location if the program is compiled with raco exe (and
> then moved).
>
> Is there a way in racket to obtain the path of the application program?
>
>
> Jeff Henrikson
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Racket Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email
> to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/racket-users/a076dfa2-d1a5-3cda-72ae-a30cdb91d
> c31%40gmail.com.
--
You received this message because you are subscribed to the Google Groups
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/racket-users/20210826091451.14%40sirmail.smtps.cs.utah.edu.