Compare commits
No commits in common. "master" and "v1.7.5" have entirely different histories.
|
@ -2,6 +2,22 @@
|
||||||
# See: https://circleci.com/docs/2.0/configuration-reference
|
# See: https://circleci.com/docs/2.0/configuration-reference
|
||||||
version: 2.1
|
version: 2.1
|
||||||
|
|
||||||
|
commands:
|
||||||
|
setup-bazel:
|
||||||
|
description: |
|
||||||
|
Setup the Bazel build system used for building the repo
|
||||||
|
steps:
|
||||||
|
- run:
|
||||||
|
name: Add Bazel Apt repository
|
||||||
|
command: |
|
||||||
|
sudo apt install curl gnupg
|
||||||
|
curl -fsSL https://bazel.build/bazel-release.pub.gpg | gpg --dearmor > bazel.gpg
|
||||||
|
sudo mv bazel.gpg /etc/apt/trusted.gpg.d/
|
||||||
|
echo "deb [arch=amd64] https://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
|
||||||
|
- run:
|
||||||
|
name: Install Bazel from Apt
|
||||||
|
command: sudo apt update && sudo apt install bazel
|
||||||
|
|
||||||
# Define a job to be invoked later in a workflow.
|
# Define a job to be invoked later in a workflow.
|
||||||
# See: https://circleci.com/docs/2.0/configuration-reference/#jobs
|
# See: https://circleci.com/docs/2.0/configuration-reference/#jobs
|
||||||
jobs:
|
jobs:
|
||||||
|
@ -10,11 +26,12 @@ jobs:
|
||||||
# Specify the execution environment. You can specify an image from Dockerhub or use one of our Convenience Images from CircleCI's Developer Hub.
|
# Specify the execution environment. You can specify an image from Dockerhub or use one of our Convenience Images from CircleCI's Developer Hub.
|
||||||
# See: https://circleci.com/docs/2.0/configuration-reference/#docker-machine-macos-windows-executor
|
# See: https://circleci.com/docs/2.0/configuration-reference/#docker-machine-macos-windows-executor
|
||||||
docker:
|
docker:
|
||||||
- image: cimg/go:1.22.2
|
- image: circleci/golang:1.15.8
|
||||||
# Add steps to the job
|
# Add steps to the job
|
||||||
# See: https://circleci.com/docs/2.0/configuration-reference/#steps
|
# See: https://circleci.com/docs/2.0/configuration-reference/#steps
|
||||||
steps:
|
steps:
|
||||||
- checkout
|
- checkout
|
||||||
|
- setup-bazel
|
||||||
- restore_cache:
|
- restore_cache:
|
||||||
keys:
|
keys:
|
||||||
- go-mod-v4-{{ checksum "go.sum" }}
|
- go-mod-v4-{{ checksum "go.sum" }}
|
||||||
|
@ -27,10 +44,10 @@ jobs:
|
||||||
- "/go/pkg/mod"
|
- "/go/pkg/mod"
|
||||||
- run:
|
- run:
|
||||||
name: Run tests
|
name: Run tests
|
||||||
command: go test ./...
|
command: bazel test //...
|
||||||
- run:
|
- run:
|
||||||
name: Run build
|
name: Run build
|
||||||
command: go build ./...
|
command: bazel build //...
|
||||||
- store_test_results:
|
- store_test_results:
|
||||||
path: /tmp/test-reports
|
path: /tmp/test-reports
|
||||||
|
|
||||||
|
|
|
@ -110,14 +110,6 @@ func showBasicConstraints(cert *x509.Certificate) {
|
||||||
|
|
||||||
if cert.IsCA {
|
if cert.IsCA {
|
||||||
fmt.Printf(", is a CA certificate")
|
fmt.Printf(", is a CA certificate")
|
||||||
if !cert.BasicConstraintsValid {
|
|
||||||
fmt.Printf(" (basic constraint failure)")
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
fmt.Printf("is not a CA certificate")
|
|
||||||
if cert.KeyUsage&x509.KeyUsageKeyEncipherment != 0 {
|
|
||||||
fmt.Printf(" (key encipherment usage enabled!)")
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cert.MaxPathLen == 0 && cert.MaxPathLenZero) || (cert.MaxPathLen > 0) {
|
if (cert.MaxPathLen == 0 && cert.MaxPathLenZero) || (cert.MaxPathLen > 0) {
|
||||||
|
|
|
@ -35,7 +35,7 @@ func main() {
|
||||||
|
|
||||||
for _, arg := range flag.Args() {
|
for _, arg := range flag.Args() {
|
||||||
if err := lookupHost(arg); err != nil {
|
if err := lookupHost(arg); err != nil {
|
||||||
log.Printf("%s: %s", arg, err)
|
log.Println("%s: %s", arg, err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
minmax
|
|
||||||
|
|
||||||
A quick tool to calculate minmax codes if needed for uLisp.
|
|
|
@ -1,53 +0,0 @@
|
||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"flag"
|
|
||||||
"fmt"
|
|
||||||
"os"
|
|
||||||
"strconv"
|
|
||||||
)
|
|
||||||
|
|
||||||
var kinds = map[string]int{
|
|
||||||
"sym": 0,
|
|
||||||
"tf": 1,
|
|
||||||
"fn": 2,
|
|
||||||
"sp": 3,
|
|
||||||
}
|
|
||||||
|
|
||||||
func dieIf(err error) {
|
|
||||||
if err == nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
fmt.Fprintf(os.Stderr, "[!] %s\n", err)
|
|
||||||
os.Exit(1)
|
|
||||||
}
|
|
||||||
|
|
||||||
func usage() {
|
|
||||||
fmt.Fprintf(os.Stderr, "usage: minmax type min max\n")
|
|
||||||
fmt.Fprintf(os.Stderr, " type is one of fn, sp, sym, tf\n")
|
|
||||||
os.Exit(1)
|
|
||||||
}
|
|
||||||
|
|
||||||
func main() {
|
|
||||||
flag.Parse()
|
|
||||||
|
|
||||||
if flag.NArg() != 3 {
|
|
||||||
usage()
|
|
||||||
}
|
|
||||||
|
|
||||||
kind, ok := kinds[flag.Arg(0)]
|
|
||||||
if !ok {
|
|
||||||
usage()
|
|
||||||
}
|
|
||||||
|
|
||||||
min, err := strconv.Atoi(flag.Arg(1))
|
|
||||||
dieIf(err)
|
|
||||||
|
|
||||||
max, err := strconv.Atoi(flag.Arg(2))
|
|
||||||
dieIf(err)
|
|
||||||
|
|
||||||
code := kind << 6
|
|
||||||
code += (min << 3)
|
|
||||||
code += max
|
|
||||||
fmt.Printf("%0o\n", code)
|
|
||||||
}
|
|
|
@ -1,48 +0,0 @@
|
||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"flag"
|
|
||||||
"fmt"
|
|
||||||
"math/rand"
|
|
||||||
"os"
|
|
||||||
"regexp"
|
|
||||||
"strconv"
|
|
||||||
|
|
||||||
"git.wntrmute.dev/kyle/goutils/die"
|
|
||||||
)
|
|
||||||
|
|
||||||
var dieRollFormat = regexp.MustCompile(`^(\d+)[dD](\d+)$`)
|
|
||||||
|
|
||||||
func rollDie(count, sides int) []int {
|
|
||||||
sum := 0
|
|
||||||
var rolls []int
|
|
||||||
|
|
||||||
for i := 0; i < count; i++ {
|
|
||||||
roll := rand.Intn(sides) + 1
|
|
||||||
sum += roll
|
|
||||||
rolls = append(rolls, roll)
|
|
||||||
}
|
|
||||||
|
|
||||||
rolls = append(rolls, sum)
|
|
||||||
return rolls
|
|
||||||
}
|
|
||||||
|
|
||||||
func main() {
|
|
||||||
flag.Parse()
|
|
||||||
|
|
||||||
for _, arg := range flag.Args() {
|
|
||||||
if !dieRollFormat.MatchString(arg) {
|
|
||||||
fmt.Fprintf(os.Stderr, "invalid die format %s: should be XdY\n", arg)
|
|
||||||
os.Exit(1)
|
|
||||||
}
|
|
||||||
|
|
||||||
dieRoll := dieRollFormat.FindAllStringSubmatch(arg, -1)
|
|
||||||
count, err := strconv.Atoi(dieRoll[0][1])
|
|
||||||
die.If(err)
|
|
||||||
|
|
||||||
sides, err := strconv.Atoi(dieRoll[0][2])
|
|
||||||
die.If(err)
|
|
||||||
|
|
||||||
fmt.Println(rollDie(count, sides))
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -68,7 +68,7 @@ func showFile(path string) {
|
||||||
func searchFile(path string, search *regexp.Regexp) error {
|
func searchFile(path string, search *regexp.Regexp) error {
|
||||||
file, err := os.Open(path)
|
file, err := os.Open(path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
errorf("%v", err)
|
errorf("%v")
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
defer file.Close()
|
defer file.Close()
|
||||||
|
|
Loading…
Reference in New Issue