[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Add helper for .desktop file creation?
From: |
Nicolas Goaziou |
Subject: |
Re: Add helper for .desktop file creation? |
Date: |
Mon, 27 May 2019 18:15:54 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.2 (gnu/linux) |
Hello,
Pierre Neidhardt <address@hidden> writes:
> I came up with the following function, it seems to work well (need to
> test a little more though).
>
> Before I could submit a patch, I was wondering where I should place it:
> it seems that placing it in guix/utils.scm triggers a whole world
> rebuild.
>
> Is there a way around it or should I send this patch to core-updates?
Not what you're asking for, but I had a few comments about the
implementation:
> --8<---------------cut here---------------start------------->8---
> (define* (make-desktop-entry-file destination #:key
> (type "Application") ; One of
> "Application", "Link" or "Directory".
> (version "1.1")
> name
> (generic-name name)
> (no-display #f)
What about only providing default values only for mandatory keys, i.e.,
only "type" (name is also mandatory, but it has no default value).
I think the function currently adds entries that are not necessary.
> (define* (parse key value #:optional locale)
> (set! value (match value
> (#t "true")
> (#f "false")
> ((? number? n) n)
> ((? string? s) (escape-semicolon s))
> ((? list? value)
> (catch 'wrong-type-arg
> (lambda () (string-join (map escape-semicolon value)
> ";"))
> (lambda args (error "List arguments can only contain
> strings: ~a" args))))
> (_ (error "Value must be a boolean, number, string or list
> of strings"))))
> (format #t "~a=~a~%"
> (if locale
> (format #f "~a[~a]" key locale)
> key)
> value))
I wonder if it wouldn't be better to stick to the specification. For
example :comment expects a string, or an alist: shouldn't the function
return an error if its value is something else?
It requires us to hard-code the allow value types in the function, but
Not every packager knows these specifications, and it could help them
a bit. Also, we can limit keys to allowed ones, for increased typo
checking.
> (set! key
> (string-join (map string-titlecase
> (string-split (symbol->string
> (keyword->symbol key))
> #\-))
> ""))
The docstring may explain that, e.g., compound :mime-type key becomes
MimeType.
In any case, it looks nice and useful.
Regards,
--
Nicolas Goaziou
- Add helper for .desktop file creation?, Pierre Neidhardt, 2019/05/24
- Re: Add helper for .desktop file creation?, Nicolas Goaziou, 2019/05/25
- Re: Add helper for .desktop file creation?, Nicolas Goaziou, 2019/05/25
- Re: Add helper for .desktop file creation?, Pierre Neidhardt, 2019/05/25
- Re: Add helper for .desktop file creation?, Amin Bandali, 2019/05/25
- Re: Add helper for .desktop file creation?, Nicolas Goaziou, 2019/05/25
- Re: Add helper for .desktop file creation?, Nicolas Goaziou, 2019/05/25
- Re: Add helper for .desktop file creation?, Pierre Neidhardt, 2019/05/25
- Re: Add helper for .desktop file creation?, Pierre Neidhardt, 2019/05/25
- Re: Add helper for .desktop file creation?, Pierre Neidhardt, 2019/05/27
- Re: Add helper for .desktop file creation?,
Nicolas Goaziou <=
- Re: Add helper for .desktop file creation?, Pierre Neidhardt, 2019/05/27
- Re: Add helper for .desktop file creation?, Nicolas Goaziou, 2019/05/27
- Re: Add helper for .desktop file creation?, Pierre Neidhardt, 2019/05/27
- Re: Add helper for .desktop file creation?, Nicolas Goaziou, 2019/05/27
- Re: Add helper for .desktop file creation?, Pierre Neidhardt, 2019/05/30
- Re: Add helper for .desktop file creation?, Marius Bakke, 2019/05/27
- Re: Add helper for .desktop file creation?, Pierre Neidhardt, 2019/05/27
Re: Add helper for .desktop file creation?, Danny Milosavljevic, 2019/05/25