Seasonal festive emoji for the day π
Simply run the golang program:
go run main.go
Or, compile it into a binary and run it:
go build -o bin/festoji main.go
./bin/festoji
The current festive emoji will be printed to stdout.
You can also use it as a container:
podman run --rm quay.io/lucarval/festoji:latest
The festoji container image is signed and attested. cosign version 2 is required.
To verify the image signature:
cosign verify quay.io/lucarval/festoji:latest \
  --certificate-github-workflow-repository lcarva/festoji \
  --certificate-identity 'https://github.com/lcarva/festoji/.github/workflows/package.yaml@refs/heads/main' \
  --certificate-oidc-issuer 'https://token.actions.githubusercontent.com'
To verify the image SBOM attestation:
cosign verify-attestation quay.io/lucarval/festoji:latest \
  --type spdx \
  --certificate-github-workflow-repository lcarva/festoji \
  --certificate-identity 'https://github.com/lcarva/festoji/.github/workflows/package.yaml@refs/heads/main' \
  --certificate-oidc-issuer 'https://token.actions.githubusercontent.com'
To verify the image SLSA Provenance attestation:
cosign verify-attestation quay.io/lucarval/festoji:latest \
  --type slsaprovenance \
  --certificate-github-workflow-repository lcarva/festoji \
  --certificate-identity 'https://github.com/slsa-framework/slsa-github-generator/.github/workflows/generator_container_slsa3.yml@refs/tags/v1.10.0' \
  --certificate-oidc-issuer 'https://token.actions.githubusercontent.com'
Festoji comes with preset default rules. These can be overwritten by creating the file
~/.festoji.yaml. For example:
---
# The default character to be used when no rules match.
default: π
# If set to true, this configuration extends the default one. Rules are inserted after the
# default ones. If set to false, the default configuration is completely ignored.
extend: true
rules:
- name: Xmas
  emoji: π
  # This rule will start matching 14 days prior to December 25th
  span: 14
  month: 12
  day: 25
- name: Thanksgiving
  emoji: π¦
  # This rule will start matching 7 days prior to the fourth Thursday in November
  span: 7
  month: 11
  week: 4
  weekday: 4