Re: Some emacs stuff to activate/deactivate guix profiles

2020-12-17 Thread pinoaffe


Jan Nieuwenhuizen writes:
> My emacs-guix already has a file called guix-profiles.el; how do you
> handle that
oops, I think I'll rename this script then :)

> or how do I best look at / try your profiles?
I think the easiest way to try this is to source the guix-profiles file,
set the three "defcustom" variables, and to then run guix-enable-profile
or guix-disable-profile interactively.

> This looks interesting; I'm using M-x guix-set-emacs-environment a
> lot but my biggest problem/gripe with that is that it's global.
Yeah this is also global, as far as I can tell the only difference with
guix-set-emacs-environment seems to be that this allows enabling several
profiles at the same time and that this script maintains a list of which
profiles should be active. I think I'll take a look at how this could be
integrated into emacs-guix.

As to non-global things: I think a way to open a shell in emacs with a
specific set of packages available would be nice, but I'm not sure
whether it'd be better to wrap `guix environment` or to implement
something that starts a subprocess with the environment variables
corresponding to a (set of) profile(s). When implemented correctly, this
could also be applied through per-project profiles when combined with a
project manager such as projectile.

Blessings,
pinoaffe



Re: Some emacs stuff to activate/deactivate guix profiles

2020-12-17 Thread Jan Nieuwenhuizen
pinoaffe writes:

Hello,

> I've attached the reusable stuff in guix-profiles.el, and my personal
> config in init-profiles.el.

> Any thoughts?

My emacs-guix already has a file called guix-profiles.el; how do you
handle that or how do I best look at / try your profiles?

This looks interesting; I'm using M-x guix-set-emacs-environment a
lot but my biggest problem/gripe with that is that it's global.

Janneke

-- 
Jan Nieuwenhuizen  | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com



Re: Some emacs stuff to activate/deactivate guix profiles

2020-12-17 Thread zimoun
Hi,

On Thu, 17 Dec 2020 at 09:36, pinoaffe  wrote:

>> Aside, it is a bit redundant with Emacs-Guix, from my
>> understanding. :-)
> It might very well be, but I couldn't find a way to do what I wanted to
> do with emacs-guix

I guess the entrypoint is ’guix-set-emacs-environment’.  But I have not
looked into the details of your code, neither checked if the Emacs-Guix
is currently working as expected.



I understand though that the learning process is often easier by doing
by their own instead of adding or fixing the wanted feature with an
existing code base. :-)

All the best,
simon



Re: Some emacs stuff to activate/deactivate guix profiles

2020-12-17 Thread pinoaffe


zimoun writes:
>
> Instead of call shell command and then…
>
> …parse the output, you should give a look at how Emacs-Guix does using
> the Scheme API.  Or maybe use “guix repl” as Nyxt does.
Thanks for the suggestion, I'll look into that

> Aside, it is a bit redundant with Emacs-Guix, from my
> understanding. :-)
It might very well be, but I couldn't find a way to do what I wanted to
do with emacs-guix

Blessing,
pinoaffe



Re: Some emacs stuff to activate/deactivate guix profiles

2020-12-17 Thread pinoaffe
Hi everybody, sorry for the repeated messages, something went wrong with
mu4e

On Thu, Dec 17, 2020 at 4:59 AM pinoaffe  wrote:

> Hi guix!
>
> I wrote some elisp that
> * maintains a list of available guix profiles
> * maintains a list of active guix profiles
> * allows the user to modify both of those lists
> * provides interactive commands that allow the user to (de)activate
> profiles
> * sets env variables and the emacs search path based on active profiles
> I may add the ability to "update" a profile from a manifest.
>
> This allows me to have a profile with, say, reverse engineering tools,
> and to (de)activate it whenever I do(nt) need those tools.
>
> Please not that I'm fairly new to all of this emacs stuff, so it may not
> be idiomatic or good code.
>
> I've attached the reusable stuff in guix-profiles.el, and my personal
> config in init-profiles.el.
>
> Any thoughts?
>
> Blessings,
> pinoaffe
>
>


Re: Some emacs stuff to activate/deactivate guix profiles

2020-12-17 Thread zimoun
Hi,

On Thu, 17 Dec 2020 at 05:59, pinoaffe  wrote:

> I've attached the reusable stuff in guix-profiles.el, and my personal
> config in init-profiles.el.

Thanks for sharing.

> (defun guix-profiles->environment-vars (profiles)
>   (shell-command-to-string
>(string-join (apply #'list
>"guix"
>"package"
>"--search-paths"

Instead of call shell command and then…

> (defun guix-path-file->key-value (str)
>   (mapcar (lambda (line)
>   (let* ((lst (split-string line "="))
>  (var (string-remove-prefix "export " (car lst)))
>  (val (string-trim (string-join (cdr lst) "=") "\"" 
> "\"")))
> (cons var val)))
>   (split-string (string-trim-right str "\n")
> "\n")))

…parse the output, you should give a look at how Emacs-Guix does using
the Scheme API.  Or maybe use “guix repl” as Nyxt does.


Aside, it is a bit redundant with Emacs-Guix, from my understanding. :-)

All the best,
simon