From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kaushal Modi Subject: Re: run shell command after publishing project Date: Fri, 08 Dec 2017 19:58:09 +0000 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="94eb2c08764e5683fc055fd99b56" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:42650) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eNOmu-0000Hk-JB for emacs-orgmode@gnu.org; Fri, 08 Dec 2017 14:58:25 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eNOmt-00040A-A9 for emacs-orgmode@gnu.org; Fri, 08 Dec 2017 14:58:24 -0500 Received: from mail-yw0-x229.google.com ([2607:f8b0:4002:c05::229]:32881) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eNOmt-0003zw-3y for emacs-orgmode@gnu.org; Fri, 08 Dec 2017 14:58:23 -0500 Received: by mail-yw0-x229.google.com with SMTP id k80so4672310ywe.0 for ; Fri, 08 Dec 2017 11:58:22 -0800 (PST) In-Reply-To: List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: "Emacs-orgmode" To: Matt Price Cc: emacs-org list --94eb2c08764e5683fc055fd99b56 Content-Type: text/plain; charset="UTF-8" On Fri, Dec 8, 2017, 2:29 PM Matt Price wrote: > Hi everyone, > Feeling a little rude after a long absence in which I dropped all my > non-work commitments -- but still here to ask a question! > Hello! I'm setting up a new workflow using Kauhsal's ox-hugo. I keep all my > course materials in a few org files & publish to hugo-flavoured markdown. > Awesome! :D My source materials live in one git repo, and my website in another. > After exporting any of my my courses to the local hugo directory, I'd like > to run a shell script that I'll keep in my org-files directory. > > That script > - cds to the website repo directory, commits changes to the website master > branch, - runs hugo, > - switches to the "public" directory of compiled html pages, which has a > worktree checked out to the gh-pages branch, > - commits changes there as well, and then > - pushes both branches to github. > > The script seems to work OK, and now I would like to run it every time I > export from the appropriate projects. Is there a good way for me to do > this? I guess a hook that only runs under certain conditions? > > If I can get this to work, and then also auto export every time I commit > the org-files to master (maybe with a post-commit git hook of ~emacsclient > -e '(org-publish-project "course1"~ ?), then I will maybe be almost happy! > I haven't yet got to ox-publish to work with ox-hugo, because of the unique flow for subtree-based exports where we want to export only subtrees with a specific property (EXPORT_FILE_NAME). But I was finally able to achieve something like that using a Makefile [1] + Netlify (or GitHub Pages/Travis CI or GitLab CI). A very recent example (few days) is how I helped set up the use-package website publishing flow. - ox-hugo + Hugo using Makefile + GitHub Pages. You *only* need to commit the use-package.org[2] to the GitHub repo, and https://jwiegley.github.io/use-package/ updates in a minute or so. The Travis CI simply calls "make doc". That takes care of: - Installing dependencies if needed on the CI machine - Exporting Org to Markdown using ox-hugo - Running hugo - Commiting published HTML to the gh-pages branch - And the site gets deployed, just like that :) PS: I publish the ox-hugo package website[3] the same way too, but using Netlify (/which is the better than GitHub Pages or Gitlab CI IMO -- free too/). See the footer of that site for the 1-file Org source. [1]: https://github.com/jwiegley/use-package/blob/master/doc/Makefile [2]: https://github.com/jwiegley/use-package/blob/master/use-package.org [3]: https://ox-hugo.scripter.co/ -- Kaushal Modi --94eb2c08764e5683fc055fd99b56 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
On Fri, Dec 8, 2017, 2:29 PM Ma= tt Price <moptop99@gmail.com&g= t; wrote:
Hi = everyone,
Feeling a little rude after a long absence in which I d= ropped all my non-work commitments -- but still here to ask a question!

Hello!

<= div class=3D"gmail_quote">
<= div>I'm setting up a new workflow using = Kauhsal's ox-hugo.=C2=A0 I keep all my course materials in a few org fi= les & publish to hugo-flavoured markdown.

Awesome! :D

=C2=A0 My source materials live in one git repo, and m= y website in another.=C2=A0 After exporting any of my my courses to the loc= al hugo directory, I'd like to run a shell script that I'll keep in= my org-files directory.=C2=A0=C2=A0

That s= cript
- cds to the website repo directory, commits changes t= o the website master branch, - runs hugo,
- switches to the = "public" directory of compiled html pages, which has a worktree c= hecked out to=C2=A0 the=C2=A0 gh-pages branch,
- commits cha= nges there as well, and then
- pushes both branches to githu= b.=C2=A0

The script seems to work OK, and now= I would like to run it every time I export from the appropriate projects. = Is there a good way for me to do this? I guess a hook that only runs under = certain conditions?

If I can get this to work, and= then also auto export every time I commit the org-files to master (maybe w= ith a post-commit git hook of ~emacsclient -e '(org-publish-project &qu= ot;course1"~ ?), then I will maybe be almost happy!

I haven't yet got to ox-publish to work= with ox-hugo, because of the unique flow for subtree-based exports where w= e want to export only subtrees with a specific property (EXPORT_FILE_NAME).= =C2=A0

But I was finally able to achieve something= like that using a Makefile [1] + Netlify (or GitHub Pages/Travis CI or Git= Lab CI).

A very recent example (few days) is how I= helped set up the use-package website publishing flow.

- ox-hugo + Hugo using Makefile + GitHub Pages.=C2=A0

<= /div>
You *only* need to commit the = use-package.org[2] to the GitHub repo, and https://jwiegley.github.io/use-package/ updates= in a minute or so. The Travis CI simply calls "make doc". That t= akes care of:
- Installing dependencies if needed on the CI machi= ne
- Exporting Org to Markdown using ox-hugo
- Running = hugo
- Commiting published HTML to the gh-pages branch
= - And the site gets deployed, just like that :)

PS= : I publish the ox-hugo package website[3] the same way too, but using Netl= ify (/which is the better than GitHub Pages or Gitlab CI IMO -- free too/).= See the footer of that site for the 1-file Org source.=C2=A0


=

--

Kaushal Modi

--94eb2c08764e5683fc055fd99b56--