A simple CLI written in go to help with my day to day activity tracking at work.
Disclaimer: The goals of this tool are aligned to my workflow and processes
- Simple command structure
- Plain text storage (a simple JSON)
- Fully CLI Based
- Very small footprint (In memory, CPU and codebase)
- Cross platform
- Configurable using config files
Install workday with go
go install github.com/deadpyxel/workday@latestDownload the latest release for your platform from the GitHub releases page.
Available platforms:
- Linux (amd64, 386, arm64, arm)
- macOS (amd64, arm64)
- Windows (amd64, 386)
After installation, you can start using workday:
workdayCheck the version:
workday versionWorkday allows you to configure some options using a YAML configuration file. By default, it will search for the file under your $HOME/.config/workday/config.yaml, but you can pass the configuration file path with the --config flag. An example of a valid config file can be seen below.
journalPath: "/path/to/your/journal.json"To run tests, run the following command
go test -cover -v ./...If you want to run the benchmarks:
go test -bench=. -v ./...Clone the project
git clone https://github.com/deadpyxel/workday.gitGo to the project directory
cd workdayBuild the project locally
go build -o bin/Run the app
./bin/workdayReleases are automated using GoReleaser and GitHub Actions. When a new tag is pushed (format: v*), the release workflow will:
- Build binaries for all supported platforms
- Create checksums for all artifacts
- Generate release notes from commits
- Publish the release on GitHub
To create a new release:
git tag v1.0.0
git push origin v1.0.0- Gopher's Public Discord
- cobra-cli
- Cobra Docs
- Viper
- GoReleaser