diff -Nru golang-github-oklog-run-1.0.0/actors.go golang-github-oklog-run-1.1.0/actors.go --- golang-github-oklog-run-1.0.0/actors.go 1970-01-01 00:00:00.000000000 +0000 +++ golang-github-oklog-run-1.1.0/actors.go 2020-01-08 05:15:07.000000000 +0000 @@ -0,0 +1,38 @@ +package run + +import ( + "context" + "fmt" + "os" + "os/signal" +) + +// SignalHandler returns an actor, i.e. an execute and interrupt func, that +// terminates with SignalError when the process receives one of the provided +// signals, or the parent context is canceled. +func SignalHandler(ctx context.Context, signals ...os.Signal) (execute func() error, interrupt func(error)) { + ctx, cancel := context.WithCancel(ctx) + return func() error { + c := make(chan os.Signal, 1) + signal.Notify(c, signals...) + select { + case sig := <-c: + return SignalError{Signal: sig} + case <-ctx.Done(): + return ctx.Err() + } + }, func(error) { + cancel() + } +} + +// SignalError is returned by the signal handler's execute function +// when it terminates due to a received signal. +type SignalError struct { + Signal os.Signal +} + +// Error implements the error interface. +func (e SignalError) Error() string { + return fmt.Sprintf("received signal %s", e.Signal) +} diff -Nru golang-github-oklog-run-1.0.0/debian/changelog golang-github-oklog-run-1.1.0/debian/changelog --- golang-github-oklog-run-1.0.0/debian/changelog 2020-01-02 00:13:03.000000000 +0000 +++ golang-github-oklog-run-1.1.0/debian/changelog 2020-01-10 22:49:12.000000000 +0000 @@ -1,3 +1,9 @@ +golang-github-oklog-run (1.1.0-1) unstable; urgency=medium + + * New upstream version 1.1.0 + + -- Dawid Dziurla Fri, 10 Jan 2020 23:49:12 +0100 + golang-github-oklog-run (1.0.0-2) unstable; urgency=medium * Standards-Version: 4.4.1 diff -Nru golang-github-oklog-run-1.0.0/.github/workflows/test.yml golang-github-oklog-run-1.1.0/.github/workflows/test.yml --- golang-github-oklog-run-1.0.0/.github/workflows/test.yml 1970-01-01 00:00:00.000000000 +0000 +++ golang-github-oklog-run-1.1.0/.github/workflows/test.yml 2020-01-08 05:15:07.000000000 +0000 @@ -0,0 +1,38 @@ +on: push +name: Test +jobs: + test: + strategy: + matrix: + go-version: [1.13.x] + platform: [ubuntu-latest, macos-latest, windows-latest] + runs-on: ${{ matrix.platform }} + steps: + - name: Install Go + uses: actions/setup-go@v1 + with: + go-version: ${{ matrix.go-version }} + - name: Install staticcheck + run: pwd && cd .. && go get -v -u honnef.co/go/tools/cmd/staticcheck && cd - + shell: bash + - name: Install golint + run: pwd && cd .. && go get -v -u golang.org/x/lint/golint && cd - + shell: bash + - name: Update PATH + # https://github.com/actions/setup-go/issues/12#issuecomment-524631719 + run: echo "##[add-path]$(go env GOPATH)/bin" + shell: bash + - name: Checkout code + uses: actions/checkout@v1 + - name: Fmt + if: matrix.platform != 'windows-latest' # :( + run: "F=$(gofmt -l .) ; if [[ $F ]] ; then echo $F ; exit 1 ; fi" + shell: bash + - name: Vet + run: go vet ./... + - name: Staticcheck + run: staticcheck ./... + - name: Lint + run: golint ./... + - name: Test + run: go test -race ./... diff -Nru golang-github-oklog-run-1.0.0/go.mod golang-github-oklog-run-1.1.0/go.mod --- golang-github-oklog-run-1.0.0/go.mod 1970-01-01 00:00:00.000000000 +0000 +++ golang-github-oklog-run-1.1.0/go.mod 2020-01-08 05:15:07.000000000 +0000 @@ -0,0 +1,3 @@ +module github.com/oklog/run + +go 1.13 diff -Nru golang-github-oklog-run-1.0.0/README.md golang-github-oklog-run-1.1.0/README.md --- golang-github-oklog-run-1.0.0/README.md 2019-04-29 19:13:45.000000000 +0000 +++ golang-github-oklog-run-1.1.0/README.md 2020-01-08 05:15:07.000000000 +0000 @@ -1,7 +1,7 @@ # run [![GoDoc](https://godoc.org/github.com/oklog/run?status.svg)](https://godoc.org/github.com/oklog/run) -[![Build Status](https://travis-ci.org/oklog/run.svg?branch=master)](https://travis-ci.org/oklog/run) +[![Build Status](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Foklog%2Frun%2Fbadge&style=flat-square&label=build)](https://github.com/oklog/run/actions?query=workflow%3ATest) [![Go Report Card](https://goreportcard.com/badge/github.com/oklog/run)](https://goreportcard.com/report/github.com/oklog/run) [![Apache 2 licensed](https://img.shields.io/badge/license-Apache2-blue.svg)](https://raw.githubusercontent.com/oklog/run/master/LICENSE) @@ -10,9 +10,11 @@ Create a zero-value run.Group, and then add actors to it. Actors are defined as a pair of functions: an **execute** function, which should run synchronously; and an **interrupt** function, which, when invoked, should cause the execute -function to return. Finally, invoke Run, which blocks until the first actor -returns. This general-purpose API allows callers to model pretty much any -runnable task, and achieve well-defined lifecycle semantics for the group. +function to return. Finally, invoke Run, which concurrently runs all of the +actors, waits until the first actor exits, invokes the interrupt functions, and +finally returns control to the caller only once all actors have returned. This +general-purpose API allows callers to model pretty much any runnable task, and +achieve well-defined lifecycle semantics for the group. run.Group was written to manage component lifecycles in func main for [OK Log](https://github.com/oklog/oklog). diff -Nru golang-github-oklog-run-1.0.0/.travis.yml golang-github-oklog-run-1.1.0/.travis.yml --- golang-github-oklog-run-1.0.0/.travis.yml 2019-04-29 19:13:45.000000000 +0000 +++ golang-github-oklog-run-1.1.0/.travis.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,12 +0,0 @@ -language: go -sudo: false -go: - - 1.x - - tip -install: - - go get -v github.com/golang/lint/golint - - go build ./... -script: - - go vet ./... - - $HOME/gopath/bin/golint . - - go test -v -race ./...