all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Christopher Baines <mail@cbaines.net>
To: 33185@debbugs.gnu.org
Subject: [bug#33185] [PATCH v2 2/2] services: Add patchwork.
Date: Tue, 22 Jan 2019 22:40:52 +0000	[thread overview]
Message-ID: <87bm48iadn.fsf@cbaines.net> (raw)
In-Reply-To: <20190122220928.17927-2-mail@cbaines.net>

[-- Attachment #1: Type: text/plain, Size: 1524 bytes --]


Christopher Baines <mail@cbaines.net> writes:

> +(define (patchwork-django-admin-gexp patchwork settings-module)
> +  #~(lambda command
> +      (let ((pid (primitive-fork))
> +            (user (getpwnam "httpd")))
> +        (if (eq? pid 0)
> +            (dynamic-wind
> +              (const #t)
> +              (lambda ()
> +                (setgid (passwd:gid user))
> +                (setuid (passwd:uid user))
> +
> +                (setenv "DJANGO_SETTINGS_MODULE" "guix.patchwork.settings")
> +                (setenv "PYTHONPATH" #$settings-module)
> +                (primitive-exit
> +                 (if (zero?
> +                      (apply system*
> +                             #$(file-append patchwork "/bin/patchwork-admin")
> +                             command))
> +                     0
> +                     1)))
> +              (lambda ()
> +                (primitive-exit 1)))
> +            (zero? (cdr (waitpid pid)))))))
> +
> +(define (patchwork-django-admin-action patchwork settings-module)
> +  (shepherd-action
> +   (name 'django-admin)
> +   (documentation
> +    "Run a django admin command for patchwork")
> +   (procedure (patchwork-django-admin-gexp patchwork settings-module))))

It would be really useful to provide an easy way of accessing the Django
admin utilities. I think Shepherd actions might be a good way of doing
this, but I haven't got it working yet... I think something goes wrong
when it forks, so I might need to try different approaches to change
user.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 962 bytes --]

  reply	other threads:[~2019-01-22 22:55 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-28  9:21 [bug#33185] [PATCH 0/7] Add patchwork package and service Christopher Baines
2018-10-28  9:26 ` [bug#33185] [PATCH 1/7] gnu: Add python-jsmin Christopher Baines
2018-10-28  9:26   ` [bug#33185] [PATCH 2/7] gnu: Add python-slimit Christopher Baines
2018-11-19 16:30     ` Ludovic Courtès
2018-11-20 19:58       ` Christopher Baines
2018-10-28  9:26   ` [bug#33185] [PATCH 3/7] gnu: Add python-django-pipeline Christopher Baines
2018-11-19 16:30     ` Ludovic Courtès
2018-10-28  9:26   ` [bug#33185] [PATCH 4/7] gnu: Add python-django-jinja Christopher Baines
2018-10-28  9:27   ` [bug#33185] [PATCH 5/7] gnu: Add python-django-debug-toolbar Christopher Baines
2018-10-28  9:27   ` [bug#33185] [PATCH 6/7] gnu: Add patchwork Christopher Baines
2018-10-28  9:27   ` [bug#33185] [PATCH 7/7] services: " Christopher Baines
2018-11-19 16:29   ` [bug#33185] [PATCH 1/7] gnu: Add python-jsmin Ludovic Courtès
2018-11-04 10:44 ` Christopher Baines
2018-11-04 10:44   ` [bug#33185] [PATCH 2/7] gnu: Add python-slimit Christopher Baines
2018-11-04 10:44   ` [bug#33185] [PATCH 3/7] gnu: Add python-django-pipeline Christopher Baines
2018-11-04 10:44   ` [bug#33185] [PATCH 4/7] gnu: Add python-django-jinja Christopher Baines
2018-11-19 16:33     ` Ludovic Courtès
2018-11-20 20:02       ` Christopher Baines
2018-11-04 10:44   ` [bug#33185] [PATCH 5/7] gnu: Add python-django-debug-toolbar Christopher Baines
2018-11-19 16:33     ` Ludovic Courtès
2018-11-20 20:03       ` Christopher Baines
2018-11-04 10:44   ` [bug#33185] [PATCH 6/7] gnu: Add patchwork Christopher Baines
2018-11-04 19:09     ` swedebugia
2019-01-22 22:36       ` Christopher Baines
2018-11-19 16:37     ` Ludovic Courtès
2019-01-22 22:31       ` Christopher Baines
2018-11-04 10:44   ` [bug#33185] [PATCH 7/7] services: " Christopher Baines
2018-11-04 19:10     ` swedebugia
2018-11-19 16:42       ` Ludovic Courtès
2018-11-20 18:22         ` Christopher Baines
2018-11-20 18:06       ` Christopher Baines
2019-01-22 22:09 ` [bug#33185] [PATCH v2 1/2] gnu: " Christopher Baines
2019-01-22 22:09   ` [bug#33185] [PATCH v2 2/2] services: " Christopher Baines
2019-01-22 22:40     ` Christopher Baines [this message]
2019-01-23  9:28   ` [bug#33185] [PATCH v2 1/2] gnu: " Ricardo Wurmus
2019-01-25 21:04     ` Christopher Baines
2019-01-25 21:00 ` [bug#33185] [PATCH v3 " Christopher Baines
2019-01-25 21:00   ` [bug#33185] [PATCH v3 2/2] services: " Christopher Baines
2019-05-03 19:16 ` [bug#33185] [PATCH 0/7] Add patchwork package and service Christopher Baines
2019-05-03 19:30   ` [bug#33185] [PATCH 1/3] services: Add getmail Christopher Baines
2019-05-03 19:30     ` [bug#33185] [PATCH 2/3] gnu: Add patchwork Christopher Baines
2019-05-03 19:30     ` [bug#33185] [PATCH 3/3] services: " Christopher Baines
2019-05-31 19:43   ` bug#33185: [PATCH 0/7] Add patchwork package and service Christopher Baines

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87bm48iadn.fsf@cbaines.net \
    --to=mail@cbaines.net \
    --cc=33185@debbugs.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.