Version:
v0.5.?
( rolling release )
An English/Latin scripture Rosary written in C
, with a GTK
, and a TTY
user interface. It uses CSV and JSON databases. The CSV contains NAB quotes in English and the JSON contains Vulgate quotes in Latin.
- Gcc for Debian OS
- Cpp for Win10 VS2019
This project also contains a liturgical season calendar algorithm.
The
Bash
tty onDebian OS
will display seasonally appropriate decorations and feast day notifications.
CLI Version | GTK3 Version |
---|---|
Outdated LIVE DEMO (v0.3.5) i686 Debian | Outdated Screenshot (v0.2) i686 Debian |
Makefile
- Compilations assumes prequisite software packages are installed.
## Debian Makefile/Gcc
## Clean previously complied binary builds and undo changes made to bashrc by ttyBasrc
make clean
## Build and compile everything
## The following programs will be built: ttyRosary and gtkRosary
make
## or build individual programs
make ttyRosary
make gtkRosary
## Debian TTY App
./ttyRosary ## NAB English, using default CSV database
./ttyRosary -t nab ## NAB English, using default CSV database
./ttyRosary -t vulgate ## Vulgate Latin, using default JSON database
./ttyRosary -d "path" ## Import database from remote location
## Debian GTK App
./gtkRosary ## NAB English
./gtkRosary -v ## Vulgate Latin
- Bonus feature for the Bash CLI UI.
- During liturgical calendar seasons, the 1st lines of a Bash terminal instance will display a bible quote pertaining to that season.
- Bash is the default terminal emulator on Debian Linux.
## Compile a binary which is set to launch whenever GNU Bash is launched.
## Holiday themed messages will be displayed on the terminal, at Bash startup
make ttyBashrc
If you get a compile error from the make build:
#include <json-c/json.h>
, then usemake debian
to install potentially missing dependencies. It is assumed that Xorg and GTK are installed on the base system.
## Get dependencies for Debian 9 or newer using the Makefile
make debian
## debian libjson-c dependencies
sudo apt install autotools-dev debhelper dh-autoreconf dh-exec
## debian libjson-c
sudo apt install libjson-c-dev libjson-c-doc libjson-c3
## man page (Manually install groff and pandoc. Not included with Makefile)
sudo apt install groff pandoc
## clean previous builds
Remove-Item *.obj
Remove-Item *.exe
## Compile and build with Visual Studio's Developer Powershell/Command Prompt
cl /c sources\my_calendar.c
cl /c sources\my_csv_structs.c
cl /c sources\my_tty_ui.c
cl mainTTY.c my_calendar.obj my_csv_structs.obj my_tty_ui.obj /o "ttyRosary.exe"
## run
.\ttyRosary.exe
I made the following to scripts to automate the compile and build preocess.
Makefile
or nmake
:: Win10's nmake
:: clean
nmake nclean
:: build
nmake build
Developer Powershell for VS 2019
.\Makefile_win.ps1 clean
.\Makefile_win.ps1 build
.\Makefile_win.ps1 run
Developer Command Prompt for VS 2019
.\Makefile_win.bat clean
.\Makefile_win.bat build
.\Makefile_win.bat run
VS Code Editor:
- I occasionally do Win10 C compiling in VS Code. (I prefer VS2019 over VSCode as a Win10 C/C++ editor)
- Launch
code .
from withinDeveloper Powershell for VS 2019
This is the 5th program language version in my Rosary App series.
.NET/Windows OS | NodeJS/Electron | BASH/GNU | Python (Win/Linux) |
---|---|---|---|
git | git | git | git |
Windows | cross platform with Electron | Linux | cross platform with Python |
MySql Database | JSON Database | JSON Database | JSON Database |
English and Latin | English and Latin | English and Latin | English only |
a WinForm version and a WPF/WCF version | an Electron and Heroku version | shell on Archlinux, Debian, Tiny Core, Alpine | a curses app |
project wiki : developed on Windows 9 |
Uses Jquery Mobile and/or Electron. Has variable color themes, liturgical calendar and feast day calculations. | It has variable tty colors, liturgical calendar calculations, windows sizing. Curses bases | just a TTY/Cli App |
no audio | audio theme song | audio soundtrack (latin prayer chant) | no audio |
lan | internet scraped mass readings | internet scraped mass readings | no interactive networking features |
multi user / multi session / group synchronization | multi user / multi session / group synchronization | single user | single user |
Golang (Win/Linux) git
- UI: TTY, Web Browser DOM, GTK, Native Win10 Window
- Network server host with an Electron/FireFox Web Browser client.
- JSON database
- no audio
- single user, multiple sessions
- Linux, MinGW or Win10 Powershell with Visual Studio C++
- Command line interface (CLI) / Shell Terminal
- Xorg (Debian linux) or Xlaunch (Win10/WLS)
- MinGW or Linux (x86 or x64)
- this app was developed on Debian WLS and tested on a real Linux
- GCC v6+
- Glade (a gui designing tool)
- any text editor (I use Geany for everything on Linux)
- Geany macros for quick and easy gtk3 development
- compile: gcc -Wall -c "%f"
pkg-config --cflags --libs gtk+-3.0
-export-dynamic - build: gcc -Wall -o "%e" "%f"
pkg-config --cflags --libs gtk+-3.0
-export-dynamic
## Compile in Debian and make it usable on a Win10
sudo apt install mingw-w64
i686-w64-mingw32-gcc "main.c" -o "my-executable-file.exe"
## Compile in Win10 with MinGW installed
gcc "main.c" -o "my-executable-file.exe "