#!/usr/bin/env bash
# ghrelnotes REL - generate github release notes for REL.   -*- markdown -*-

cd "$(dirname $0)"

cat <<'END'

<details>
<summary>

## Release notes

</summary>

END

export REL=$1
# extract REL notes from relnotes.md
awk "/^## .*-${REL//./'\.'}$/{p=1;next} /^## /{p=0} p" relnotes.md

envsubst '$REL' <<'END'
</details>

<details>
<summary>

## How to install

</summary>


For all install options, see [hledger.org: Install](https://hledger.org/install).
You can install hledger from most package managers (but check for a green badge indicating it's up to date).
Or you can build it from source yourself.

Or you can install up to date binaries from this page, by following the appropriate instructions below.
If you find problems with these instructions, please [let us know](https://hledger.org/support).


<!--
Updates to binaries:
- YYYY-MM-DD: description. [#NNNN](https://github.com/simonmichael/hledger/issues/NNNN)
-->

<xdetails>
<summary>

### GNU/Linux, 64-bit Intel

</summary>

At the command line:

```
cd /usr/local/bin
curl -LOC- https://github.com/simonmichael/hledger/releases/download/$REL/hledger-linux-x64.zip
(unzip -p hledger-linux-x64.zip | tar xf -) && rm hledger-linux-x64.zip
cd
hledger --version; hledger-ui --version; hledger-web --version    # should show $REL
```

</xdetails>
<xdetails>
<summary>

### Mac, 64-bit ARM or Intel

</summary>

In a terminal window (don't use your web browser to download, it won't authorise the binaries):
<!--
(Hopefully these commands are all installed by default; 
if not, install [XCode Command Line Tools](https://mac.install.guide/commandlinetools/) 
and/or [Homebrew](https://brew.sh), and let me know.)
-->

- For ARM macs:
  ```
  cd /usr/local/bin
  curl -LOC- https://github.com/simonmichael/hledger/releases/download/$REL/hledger-mac-arm64.zip
  (unzip -p hledger-mac-arm64.zip | tar xf -) && rm hledger-mac-arm64.zip
  cd
  hledger --version; hledger-ui --version; hledger-web --version    # should show $REL
  ```

- For Intel macs:
  ```
  cd /usr/local/bin
  curl -LOC- https://github.com/simonmichael/hledger/releases/download/$REL/hledger-mac-x64.tar.gz
  (unzip -p hledger-mac-x64.tar.gz | tar xf -) && rm -f hledger-mac-x64.zip
  cd
  hledger --version; hledger-ui --version; hledger-web --version    # should show $REL
  ```

</xdetails>
<xdetails>
<summary>

### Windows, 64-bit ARM or Intel

</summary>

In a powershell window (press `WINDOWS-R`, `powershell`, `ENTER`):

1. Make a place to keep installed binaries. You only need to do this once, not for every release:
    ```
    mkdir -force $HOME\bin >$null
    $ENV:PATH += ";"+$HOME+"\bin"
    [Environment]::SetEnvironmentVariable("Path", [Environment]::GetEnvironmentVariable("Path", [EnvironmentVariableTarget]::User)+";"+$HOME+"\bin", [EnvironmentVariableTarget]::User)
    ```

2. Download and install the release binaries:
    ```
    cd $HOME\bin
    curl https://github.com/simonmichael/hledger/releases/download/$REL/hledger-windows-x64.zip -OutFile hledger-windows-x64.zip
    Expand-Archive hledger-windows-x64.zip -DestinationPath . -Force
    cd $HOME
    hledger --version; hledger-ui --version; hledger-web --version    # should show $REL
    ```

3. Ensure a default journal file exists, and without a problematic encoding. 
This will allow you to start hledger-web by double-clicking on its icon if you wish.
    ```
    out-file -append -encoding ascii $HOME/.hledger.journal
    ```
    (I'm not sure why "ascii" is needed here - hledger likes utf8 and understands utf8 BOM headers,
    but the state of [our unicode support on Windows](https://github.com/simonmichael/hledger/issues?q=is%3Aissue+label%3A%22platform%3A+windows%22+label%3Ai18n)
    is really unknown, your feedback is welcome.)

</xdetails>
<xdetails>
<summary>

### Windows 7, 64-bit Intel

</summary>

These instructions have not been tested recently, please [let us know](https://hledger.org/support) if they work for you:

- click hledger-windows-x64.zip below
- choose Open with Windows Explorer, OK
- click Extract all files
- choose a destination folder - ideally one that appears in `echo %PATH%`, like `C:\Windows` (though that one will require administrator permission); otherwise, your home directory (`C:\Users\YOURNAME`)
- check "Show extracted files when complete"
- click Extract, wait for the destination folder to open
- find the hledger, hledger-web icons (if you extracted to `\Windows`, you'll need to scroll down)
- for each icon: double-click, uncheck "Always ask before opening this file", click Run
- close those Explorer windows
- open a command window (press Windows-r, type CMD, press enter)
- `hledger --version; hledger-ui --version; hledger-web --version`    should show $REL
- `echo # >> .hledger.journal` to ensure a default journal file exists. (Important: the doubled **>>** is needed to avoid overwriting existing data.)

Problems:
- Starting hledger by double-clicking its icon won't work because it needs arguments; run it from the command window instead.
- Starting hledger-web by double-clicking its icon may fail eg because Explorer's command window is too small;
  configure that to be larger, or run hledger-web from a command window instead.
- hledger or hledger-web may fail to run if there is not enough memory available.

</xdetails>

### Next steps
Once installed, run `hledger`, and perhaps read [hledger.org: Quick start](https://hledger.org/#quick-start).

</details>
END
