{"id":16897657,"url":"https://github.com/cevich/touchstone","last_synced_at":"2026-04-17T04:33:22.729Z","repository":{"id":79003541,"uuid":"113239154","full_name":"cevich/touchstone","owner":"cevich","description":"Ansible role to easily make sets of plays, roles or tasks idempotent.","archived":false,"fork":false,"pushed_at":"2018-04-10T19:57:58.000Z","size":34,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-10-19T09:03:46.031Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cevich.png","metadata":{"files":{"readme":"README.md","changelog":null,"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-12-05T22:19:05.000Z","updated_at":"2018-04-10T19:57:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"740515c5-36d6-4070-a590-42b9647cc9a9","html_url":"https://github.com/cevich/touchstone","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cevich/touchstone","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cevich%2Ftouchstone","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cevich%2Ftouchstone/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cevich%2Ftouchstone/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cevich%2Ftouchstone/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cevich","download_url":"https://codeload.github.com/cevich/touchstone/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cevich%2Ftouchstone/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31915253,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T18:22:33.417Z","status":"online","status_checked_at":"2026-04-17T02:00:06.879Z","response_time":62,"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-10-13T17:39:02.561Z","updated_at":"2026-04-17T04:33:22.708Z","avatar_url":"https://github.com/cevich.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Touchstone\n==========\n\n[Ansible Galaxy enabled](https://galaxy.ansible.com/cevich/touchstone/)\nrole to easily make sets of plays, roles or\ntasks idempotent. This is critical for some sequence declarations. For\nexample if one role does partitioning, and another does formatting.\nRe-applying that sequence in the future stands a good chance of wrecking\nyour data.\n\nRequirements\n------------\n\nSame as stock Ansible ``2.3+``\n\nRole Variables\n--------------\n\n`touch_touchstone`:\n\u003e\n\u003e When true, mark the end-state or completion identified by\n\u003e `stone_name`.\n\n`stone_name`:\n\u003e\n\u003e Optional, identification string to use when multiple end-states must\n\u003e be tracked. For example multiple playbooks. Defaults to ``.touchstone``.\n\n`touchstone_filepath`:\n\u003e\n\u003e Optional, directory path where the touchstone will be checked or\n\u003e written. Must be a permanent, and writable directory for\n\u003e `ansible_user`, i.e. not a `tmpdir` based `/tmp`. A lock file will\n\u003e be created/checked in this directory whether or not the touchstone\n\u003e is touched.\n\n`stone_touched`:\n\u003e\n\u003e A boolean value, set during the role to reflect the current\n\u003e touchstone state. When `True`, it indicates the stone was touched at\n\u003e least once in the past.\n\n`touchstone_template`:\n\u003e\n\u003e Optional, full path to jinja2 template used for generating the touchstone\n\u003e file contents.\n\nDependencies\n------------\n\nA systemd-based machine with a unique /etc/machine-id.\n\nExample Playbook\n----------------\n\n    - hosts: all\n      roles:\n         - role: cevich.touchstone\n\n         - role: something\n           when: not stone_touched\n\n         - role: another_thing\n           when: not stone_touched\n\n         - role: final_thing\n           when: not stone_touched\n\n         - role: cevich.touchstone\n           touch_touchstone: True\n\nLicense\n-------\n\n\u003e Easily make sets of plays, roles or tasks idempotent. Copyright (C)\n\u003e 2017 Christopher C. Evich\n\u003e\n\u003e This program is free software: you can redistribute it and/or modify\n\u003e it under the terms of the GNU General Public License as published by\n\u003e the Free Software Foundation, either version 3 of the License, or (at\n\u003e your option) any later version.\n\u003e\n\u003e This program is distributed in the hope that it will be useful, but\n\u003e WITHOUT ANY WARRANTY; without even the implied warranty of\n\u003e MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n\u003e General Public License for more details.\n\u003e\n\u003e You should have received a copy of the GNU General Public License\n\u003e along with this program. If not, see\n\u003e \u003chttps://www.gnu.org/licenses/\u003e.\n\nAuthor Information\n------------------\n\nCausing trouble and inciting mayhem with Linux since Windows 98\n\nContinuous Integration\n----------------------\n\nTravis CI: [![Build Status](https://travis-ci.org/cevich/touchstone.svg?branch=master)](https://travis-ci.org/cevich/touchstone)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcevich%2Ftouchstone","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcevich%2Ftouchstone","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcevich%2Ftouchstone/lists"}