{"id":19031466,"url":"https://github.com/plandes/clj-perferg","last_synced_at":"2026-06-19T02:32:10.519Z","repository":{"id":80107510,"uuid":"82999304","full_name":"plandes/clj-perferg","owner":"plandes","description":"Convert PerfProStudio files to ERG mode files (used for the WahooKickr).","archived":false,"fork":false,"pushed_at":"2017-04-14T18:53:36.000Z","size":61,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-21T20:25:15.240Z","etag":null,"topics":["clojure","command-line-tool","wahoo","workout"],"latest_commit_sha":null,"homepage":null,"language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/plandes.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"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":"2017-02-24T03:57:43.000Z","updated_at":"2017-06-22T19:10:57.000Z","dependencies_parsed_at":null,"dependency_job_id":"73515482-4102-4d84-92bc-212f9bc52c73","html_url":"https://github.com/plandes/clj-perferg","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/plandes/clj-perferg","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plandes%2Fclj-perferg","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plandes%2Fclj-perferg/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plandes%2Fclj-perferg/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plandes%2Fclj-perferg/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/plandes","download_url":"https://codeload.github.com/plandes/clj-perferg/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plandes%2Fclj-perferg/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34515405,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-19T02:00:06.005Z","response_time":61,"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":["clojure","command-line-tool","wahoo","workout"],"created_at":"2024-11-08T21:23:45.507Z","updated_at":"2026-06-19T02:32:10.497Z","avatar_url":"https://github.com/plandes.png","language":"Clojure","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Convert PerfProStudio files to ERG (Wahoo Kickr) files.\n\n[![Travis CI Build Status][travis-badge]][travis-link]\n\n  [travis-link]: https://travis-ci.org/plandes/clj-perferg\n  [travis-badge]: https://travis-ci.org/plandes/clj-perferg.svg?branch=master\n\nConvert PerfProStudio files to ERG mode files, which is used for trainers like\nthe WahooKickr.  I use [iMobileIntervals](http://imobileintervals.com), which\ntakes\n[ERG](http://support.trainerroad.com/hc/en-us/articles/201869764-Erg-Mode-Explained) file\nforms.  However, my coach exports files\nas [PerfPro (.ppsmrx)](http://perfprostudio.com).  This utility converts to an\nERG file and also optionally provides and Excel summary file.\n\n\n## Obtaining\n\nThe latest release binaries are\navailable [here](https://github.com/plandes/clj-perferg/releases/latest).\n\n### Source\n\nIn your `project.clj` file, add:\n\n[![Clojars Project](https://clojars.org/com.zensols.tools/erg/latest-version.svg)](https://clojars.org/com.zensols.tools/erg/)\n\n\n## Usage\n\nThe app needs a `-p` for the `.ppsmrx` PerfPro file and\nyour [FTP](https://wattbike.com/us/functional-threshold-power).  You can\noptionally provide `-e` and use `-h` to get a usage.\n\n```bash\n$ pp2erg -p Bike\\ Climb\\ 3\\ \\(4x4\\)\\ +\\ \\(4x1\\)\\ min.ppsmrx -f 244 -e\nperferg: perfpro: processing Bike Climb 3 (4x4) + (4x1) min.ppsmrx with ftp 244\nperferg: perfpro: wrote: Bike Climb 3 (4x4) + (4x1) min.erg\nperferg: perfpro: wrote: Bike Climb 3 (4x4) + (4x1) min.xls\n```\n\nUsage:\n```sql\n$ pp2erg --help\nusage: pp2erg [options]\nConvert a perfpro .ppsmrx file to .erg and optionally .xls\n  -l, --level \u003clog level\u003e     INFO  Log level to set in the Log4J2 system.\n  -p, --perfpro \u003cfile\u003e              The PerfPro .ppsmrx file input file\n  -e, --excel                       If provided output an Excel summary file as well\n  -f, --ftp \u003cnumber\u003e                The functional threshold power\n  -i, --interpolate \u003cnumber\u003e  4.5   zone to percent FTP interplation constant\n```\n\n## Todo\n\n* Currently the tool doesn't support individual zones--that's next.\n* Add option to parse FTP description matches (i.e. *\"seated climb 75% FTP\"*\n  gets an FTP of 75%.\n\n\n## Documentation\n\nAPI [documentation](https://plandes.github.io/clj-perferg/codox/index.html).\n\n\n## Building\n\nTo build from source, do the folling:\n\n- Install [Leiningen](http://leiningen.org) (this is just a script)\n- Install [GNU make](https://www.gnu.org/software/make/)\n- Install [Git](https://git-scm.com)\n- Download the source: `git clone https://github.com/clj-perferg \u0026\u0026 cd clj-perferg`\n- Download the make include files:\n```bash\nmkdir ../clj-zenbuild \u0026\u0026 wget -O - https://api.github.com/repos/plandes/clj-zenbuild/tarball | tar zxfv - -C ../clj-zenbuild --strip-components 1\n```\n- Build the distribution binaries: `make dist`\n\nNote that you can also build a single jar file with all the dependencies with: `make uber`\n\n\n## Changelog\n\nAn extensive changelog is available [here](CHANGELOG.md).\n\n\n## License\n\nCopyright © 2017 Paul Landes\n\nApache License version 2.0\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n[http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplandes%2Fclj-perferg","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fplandes%2Fclj-perferg","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplandes%2Fclj-perferg/lists"}