{"id":20254813,"url":"https://github.com/chippyash/bowl-tournament","last_synced_at":"2025-08-25T14:05:21.064Z","repository":{"id":240639459,"uuid":"803176530","full_name":"chippyash/bowl-tournament","owner":"chippyash","description":"A cli utility to create bowls fixture pictorial representation","archived":false,"fork":false,"pushed_at":"2024-05-20T10:30:14.000Z","size":229038,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-05-21T09:58:50.346Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chippyash.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-20T08:09:31.000Z","updated_at":"2024-06-19T12:37:41.888Z","dependencies_parsed_at":"2024-06-19T12:52:10.180Z","dependency_job_id":null,"html_url":"https://github.com/chippyash/bowl-tournament","commit_stats":null,"previous_names":["chippyash/bowl-tournament"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/chippyash/bowl-tournament","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chippyash%2Fbowl-tournament","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chippyash%2Fbowl-tournament/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chippyash%2Fbowl-tournament/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chippyash%2Fbowl-tournament/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chippyash","download_url":"https://codeload.github.com/chippyash/bowl-tournament/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chippyash%2Fbowl-tournament/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272077690,"owners_count":24869288,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-25T02:00:12.092Z","response_time":1107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-14T10:34:59.970Z","updated_at":"2025-08-25T14:05:21.032Z","avatar_url":"https://github.com/chippyash.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bowl Tournament\n\nA cli utility to create bowls fixture pictorial representation e.g.\n\n![docs/demo-graph.puml](docs/demo-graph.png)\n\n## Pre Installation\nInstall Graphviz\n\nDebian: `sudo apt install graphviz`\n\nFedora: `sudo dnf install graphviz`\n\nInstall Java\n\nDebian: `sudo apt install default-jre`\n\nFedora: see: https://docs.fedoraproject.org/en-US/quick-docs/installing-java/\n\n## Manual Installation\nDownload the `bowl-tournament.tar.gz` file from the dist directory of the repo. \n\nUnzip the distribution package\n\n - `tar -xf bowl-tournament.tar.gz` or use your file manager\n\nMove the `bowl-tournament` file to a directory in your path, usually `/usr/local/bin`\n\n - `sudo mv bowl-tournament /usr/local/bin`\n\nMove the `plantuml.jar` file to `/usr/share/bowl-tournament/plantuml.jar`\n\n - `sudo mkdir -p /usr/share/bowl-tournament`\n - `sudo mv plantuml.jar /usr/share/bowl-tournament/plantuml.jar`\n\n## Install using your package manager\n### Debian based distributions\nDownload the `bowl-tournament*.deb` from the dist directory of the repo\n\nrun `sudo dpkg -i bowl-tournament*.deb`\n\n### Fedora based distributions\nDownload the `bowl-tournament*.rpm` from the dist directory of the repo\n\nrun `sudo yum localinstall bowl-tournament*.rpm`\n\n## Check your installation\nmake sure you can run the program\n\n`bowl-tournament help` should display something similar to\n\n```text\nBowl tournament utility\n\nUsage:\n   bowl-tournament \u003cinput\u003e \u003ctournament\u003e \u003cgame\u003e {flags}\n   bowl-tournament \u003ccommand\u003e {flags}\n\nCommands: \n   help                          displays usage informationn\n   version                       displays version number\n\nArguments: \n   input                         input csv file\n   tournament                    name of tournament\n   game                          name of game\n\nFlags: \n   -g, --groupdates              group dates in the round data (default: false)\n   -h, --help                    displays usage information of the application or a command (default: false)\n   -o, --output                  output png file (default: false)\n   -t, --theme                   the Plantuml theme to use. See https://plantuml.com/theme (default: _none_)\n   -v, --version                 displays version number (default: false)\n```\n\nCreate a working directory where you will put all your csv files for processing. \n\n## Usage\n\n### CSV Files\nThe utility requires csv files with the following headings:\n\n```text\nround,match,play_by,play_on,time,home_participant,away_participant\n```\nThe actual heading names don't matter as they are not used, but the heading line must exist and the content of the data\nlines must conform to their intended use.\n\nFor example, this is for a singles competition that has play by dates\n```text\nround,match,play_by,play_on,time,home_participant,away_participant\n1,K1R1M2,02/06/24,,,Player 1,Player 2\n1,K1R1M4,02/06/24,,,Player 3,Player 4\n1,K1R1M6,02/06/24,,,Player 5,Player 6\n1,K1R1M8,02/06/24,,,Player 7,Player 8\n1,K1R1M10,02/06/24,,,Player 9,Player 10\n1,K1R1M12,02/06/24,,,Player 11,Player 12\n1,K1R1M14,02/06/24,,,Player 13,Player 14\n1,K1R1M16,02/06/24,,,Player 15,Player 16\n2,K1R2M1,23/06/24,,,Player 17,Winner of K1R1M2\n2,K1R2M2,23/06/24,,,Player 18,Winner of K1R1M4\n2,K1R2M3,23/06/24,,,Player 19,Winner of K1R1M6\n2,K1R2M4,23/06/24,,,Player 21,Winner of K1R1M8\n2,K1R2M5,23/06/24,,,Player 22,Winner of K1R1M10\n2,K1R2M6,23/06/24,,,Player 23,Winner of K1R1M12\n2,K1R2M7,23/06/24,,,Player 24,Winner of K1R1M14\n2,K1R2M8,23/06/24,,,Player 25,Winner of K1R1M16\n3,K1R3M1,21/07/24,,,Winner of K1R2M1,Winner of K1R2M2\n3,K1R3M2,21/07/24,,,Winner of K1R2M3,Winner of K1R2M4\n3,K1R3M3,21/07/24,,,Winner of K1R2M5,Winner of K1R2M6\n3,K1R3M4,21/07/24,,,Winner of K1R2M7,Winner of K1R2M8\n4,K1R4M1,18/08/24,,,Winner of K1R3M1,Winner of K1R3M2\n4,K1R4M2,18/08/24,,,Winner of K1R3M3,Winner of K1R3M4\n5,K1R5M1,,,,Winner of K1R4M1,Winner of K1R4M2\n\n```\nThe match designator can be anything, but you should look for consistency.\n\nDates **must** be in the format dd/mm/yy\n\nWhere you indicate that one of the participants is the result of a match in a previous round, it **must be written** as 'Winner of match'\n\nAnd this for a triples competition with Play on dates and times\n```text\nround,match,play_by,play_on,time,home_participant,away_participant\n1,K1R1M1,,11/07/24,6.30pm,\"Team A\",\"Team B\"\n1,K1R1M2,,11/07/24,6.30pm,\"Team C\",\"Team  D\"\n1,K1R1M3,,11/07/24,6.30pm,\"Team E\",\"Team F\"\n1,K1R1M4,,11/07/24,6.30pm,\"Team G\",\"Team H\"\n2,K1R2M1,,01/08/24,6.30pm,Winner of K1R1M1,Winner of K1R1M2\n2,K1R2M2,,01/08/24,6.30pm,Winner of K1R1M3,Winner of K1R1M4\n3,K1R3M1,,,,Winner of K1R2M1,Winner of K1R2M2\n```\n**NB** The participant names are surrounded by speach quotes as they can include commas.\n\n### Creating Image Files\n\n**NB** *To regenerate the image files, you must first delete any image (.png) files that you require regenerating. The program \nwill not overwrite existing image files.*\n\nAt the terminal, navigate to your csv directory.\n\nFor each of your csv files run the command, e.g. for file MensTrips.csv in the FooBar Tournament:\n\n`bowl-tournament \"MensTrips.csv\" \"FooBar Tournament\" \"Mens Triples\" -g -o`\n\nThis will create a `MensTrips.puml` file, which is a [Plantuml](https://plantuml.com/class-diagram) class diagram definition\nand a `MensTrips.png` file which is the image file you can insert into your game notice page.\n\nYou can view the puml file by typing \n\n`java -jar /usr/share/bowl-tournament/plantuml.jar -gui` \n\nin your terminal in your working directory.\n\nIf you don't use the '-o' flag, run\n\n`java -jar /usr/share/bowl-tournament/plantuml.jar ./*.puml` \n\nThis will create png image files for all the plantuml definitions. \nInsert the images into a LibreOffice document and print. \n\n### Process an entire directory\n\n**Important** You need to name your csv files in a consistent manner and include the game name in the file name e.g.\n\n - Outdoor Championship 2024 Ladies Australian Pairs.csv\n - Outdoor Championship 2024 Mens Australian Pairs.csv\n - Outdoor Championship 2024 Mixed Singles.csv\n\nCreate a regex pattern to pull out the game name from the file name. e.g. `.*2024 (.*)` will work on the above file names.\nNote the group capture `(.*)`. Your regex must contain one group capture to find the game name.\nYou can use [https://regex101.com/](https://regex101.com/) to test your pattern.\n\nRun the bowl-tournament command replacing the file name with the directory you want to process and the game with your regex pattern.\nAssuming you are currently in your terminal in your working directory then the following will work:\n\n`bowl-tournament $PWD \"RTBC Outdoor Championship 2024\" \".*2024 (.*)\" -g -o -l`\n\n## For development\n**Read the [CONTRIBUTING](CONTRIBUTING.md) guidelines**\n\nThe utility is written in Go V1.21+\n - fork this repo and then change directory to a clone of your fork.\n - create a new bug or feature branch\n - install the `make` tool if not already done.\n - run `make help` for list of available make commands.\n - run `make deploy-local` to build and deploy the utility locally.\n - if you want to build the rpm and deb packages:\n   - run `make getfpm` to install FPM and its dependencies. This needs doing only once.\n   - run `make package` to create the deb and rpm packages.\n\nThe source is in bowl-tournament.go.\n\nBefore submitting a pull request run `make package`.\n\nCreate a PR from your fork to the master branch of this repository\n\n## Help Required\nIf you know how to build and deploy this application for Windows and/or Macintosh, please consider making a pull request.\n\n## License\nThis software is licensed under the MIT License. See LICENSE.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchippyash%2Fbowl-tournament","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchippyash%2Fbowl-tournament","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchippyash%2Fbowl-tournament/lists"}