/*
goredo -- redo implementation on pure Go
-Copyright (C) 2020 Sergey Matveev <stargrave@stargrave.org>
+Copyright (C) 2020-2021 Sergey Matveev <stargrave@stargrave.org>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
import (
"flag"
+ "fmt"
"log"
"os"
"os/signal"
jsTokens int
jsTokensM sync.Mutex
- flagJobs = flag.Uint64("j", 1, "number of parallel jobs (0=inf) (REDO_JOBS)")
+ flagJobs = flag.Int("j", -1, fmt.Sprintf("number of parallel jobs (0=inf, <0=1) (%s)", EnvJobs))
)
func jsInit() {
return
}
- var jobs uint64
- if v := os.Getenv(EnvJobs); v != "" {
- var err error
+ jobs := uint64(1)
+ var err error
+ if *flagJobs == 0 {
+ jobs = 0
+ } else if *flagJobs > 0 {
+ jobs = uint64(*flagJobs)
+ } else if v := os.Getenv(EnvJobs); v != "" {
jobs, err = strconv.ParseUint(v, 10, 64)
if err != nil {
log.Fatalln("can not parse", EnvJobs, err)
}
- } else {
- jobs = *flagJobs
}
if jobs == 0 {
// infinite jobs
return
}
- var err error
JSR, JSW, err = os.Pipe()
if err != nil {
panic(err)