{"id":13747737,"url":"https://github.com/wffls/waffles","last_synced_at":"2025-05-09T09:30:49.682Z","repository":{"id":33497416,"uuid":"37143294","full_name":"wffls/waffles","owner":"wffls","description":"Bash Configuration Management","archived":false,"fork":false,"pushed_at":"2017-09-30T00:20:40.000Z","size":4159,"stargazers_count":91,"open_issues_count":6,"forks_count":13,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-30T11:02:15.148Z","etag":null,"topics":["bash","configuration-management","linux","minimal","shell","simple"],"latest_commit_sha":null,"homepage":"http://wffls.github.io","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"ropenscilabs/rwalkable","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wffls.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}},"created_at":"2015-06-09T16:13:12.000Z","updated_at":"2024-05-13T04:27:29.000Z","dependencies_parsed_at":"2022-07-25T19:02:05.253Z","dependency_job_id":null,"html_url":"https://github.com/wffls/waffles","commit_stats":null,"previous_names":[],"tags_count":33,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wffls%2Fwaffles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wffls%2Fwaffles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wffls%2Fwaffles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wffls%2Fwaffles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wffls","download_url":"https://codeload.github.com/wffls/waffles/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253226318,"owners_count":21874312,"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","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":["bash","configuration-management","linux","minimal","shell","simple"],"created_at":"2024-08-03T06:01:40.551Z","updated_at":"2025-05-09T09:30:49.398Z","avatar_url":"https://github.com/wffls.png","language":"Shell","funding_links":[],"categories":["Shell"],"sub_categories":[],"readme":"# Waffles!\n\nWaffles is a suite of Bash scripts to manage server resources in an\nidempotent fashion.\n\n## Installation and Usage\n\nTo install Waffles, just clone the git repo and source the `init.sh` file:\n\n```bash\n$ git clone https://github.com/wffls/waffles /opt/waffles\n$ source /opt/waffles/init.sh\n$ apt.pkg --help\n```\n\nYou can integrate Waffles into a Bash script by sourcing the `init.sh` file\nwithin the script:\n\n```bash\n#!/bin/bash\nsource /opt/waffles/init.sh\n\n# Install memcached\napt.pkg --package memcached --version latest\n\n# Set the listen option\nfile.line --file /etc/memcached.conf --line \"-l 0.0.0.0\" --match \"^-l\"\n\n# Determine the amount of memory available and use half of that for memcached\nmemory_bytes=$(elements System.Memory.Total 2\u003e/dev/null)\nmemory=$(( $memory_bytes / 1024 / 1024 / 2 ))\n\n# Set the memory available to memcached\nfile.line --file /etc/memcached.conf --line \"-m $memory\" --match \"^-m\"\n\n# Manage the memcached service\nservice.sysv --name memcached\n\n# If any changes happened, restart memcached\nif [[ -n $waffles_total_changes ]]; then\n  exec.mute /etc/init.d/memcached restart\nfi\n```\n\n## Development\n\nWaffles tries to be as simple as possible while still providing useful\nutilities for everyday systems administration. If you find a bug or would like\nto add a feature, just make a patch and open a Pull Request.\n\n### Testing\n\nAdding unit and acceptance tests are encouraged but not required for Pull\nRequests.\n\n#### Unit Tests\n\nUnit tests can be found in `tests/core.sh`. They're mainly used to verify\ncertain functions work correctly.\n\n#### Acceptance Tests\n\nAcceptance tests are used to verify resources work correctly.\n[Test Kitchen](http://kitchen.ci/) and Docker are used to run the suite of\ntests. Use the [install.sh](https://github.com/wffls/waffles/blob/master/tests/kitchen/install.sh)\nWaffles script to set up Test Kitchen and all other requirements on an\nUbuntu-based system.\n\nTest files can be found in `tests/kitchen/resources`. Each resource test\nrequires 5 functions:\n\n* setup\n* create\n* update\n* delete\n* teardown\n\nIf any of the functions aren't applicable to the resource test you're writing,\njust issue a `return`.\n\nYou can execute tests by running:\n\n```bash\n$ cd /opt/waffles/tests/kitchen\n$ ./test.sh --platform ubuntu-1404 --resource file.line\n```\n\n`--platform` will take any regex compatible with the `kitchen test` command.\n`--resource` is the name of any resource you want to test. If you want to run\nall tests, use `all` as the value.\n\n## More Information\n\nSee [wffls.github.io](http://wffls.github.io) for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwffls%2Fwaffles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwffls%2Fwaffles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwffls%2Fwaffles/lists"}