{"id":27096385,"url":"https://github.com/johndevlopment/jbackup","last_synced_at":"2025-04-06T09:39:50.706Z","repository":{"id":64562889,"uuid":"575167419","full_name":"JohnDevlopment/jbackup","owner":"JohnDevlopment","description":"Extendable backup system","archived":false,"fork":false,"pushed_at":"2024-08-24T20:51:14.000Z","size":1118,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-08-24T21:48:06.597Z","etag":null,"topics":["backup-utility","command-line-tool","python3","python310"],"latest_commit_sha":null,"homepage":"","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/JohnDevlopment.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":"2022-12-06T22:48:25.000Z","updated_at":"2024-07-22T16:58:45.000Z","dependencies_parsed_at":"2024-02-29T23:25:50.499Z","dependency_job_id":"4054c095-be13-4d8d-839f-56a8884a77df","html_url":"https://github.com/JohnDevlopment/jbackup","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnDevlopment%2Fjbackup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnDevlopment%2Fjbackup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnDevlopment%2Fjbackup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnDevlopment%2Fjbackup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JohnDevlopment","download_url":"https://codeload.github.com/JohnDevlopment/jbackup/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247463803,"owners_count":20942940,"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":["backup-utility","command-line-tool","python3","python310"],"created_at":"2025-04-06T09:39:50.034Z","updated_at":"2025-04-06T09:39:50.700Z","avatar_url":"https://github.com/JohnDevlopment.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# JBackup\n\n\u003c!-- markdown-toc start - Don't edit this section. Run M-x markdown-toc-refresh-toc --\u003e\n**Table of Contents**\n\n- [JBackup](#jbackup)\n- [Definitions](#definitions)\n- [Installation](#installation)\n    - [Source Install](#source-install)\n- [Usage](#usage)\n\n\u003c!-- markdown-toc end --\u003e\n\nA Python-based extendable backup system.\n\nThis system was developed for the purpose of automating backups\nfor all of my projects. The core of the system are actions and\nrules.\n\nActions are scripts that provide a generic interface to do something;\nfor example, a script to compress a directory into an archive. Rules\nare config files which provide arguments to the action; with the\nsame example, a path to the directory to compress.\n\nAction properties are defined in an action, and rules provide\nvalues for them.\n\n# Definitions\n**Action**  \nA Python script containing a class used to implement a behavior.\nActions are loaded as modules and their class is extracted. An\ninstance of that class is used to run the action. Actions have\nproperties, which are covered below.\n\n**Action Property**  \nA variable defined by an action \u0026mdash; it has a name and a value.\nActions use rules to provide values for their properties.\n\n\u003ca id=\"def-data-path\"\u003e\u003c/a\u003e\n**Data Path**  \nThe path in which actions and rules will be created. The path is\nselected based on user permissions: if the user has root privileges,\nthe path is `/usr/local/etc/jbackup`; for everyone else, the path\nis `~/.local/etc/jbackup`.\n\n**Rule**  \nA config file that provides values for the action.\n\n# Installation\nYou can install `jbackup` with `pip`:\n\n``` sh\npip3 install git+https://github.com/JohnDevlopment/jbackup.git\n```\n\n## Source Install\nDownload an archive or clone this repository and head into the\nroot directory. Install the dependencies listed in\n`requirements.txt`.\n\n``` sh\npip3 install -r requirements.txt\n```\n\nInstall the `build` package for Python with this command:\n\n``` sh\npip3 install build\n```\n\nBuild the project using this command:\n\n``` sh\npython3 -m build\n```\n\nNow install from either the tar archive or the wheel:\n\n``` sh\n# Install from a wheel\npip3 install dist/jbackup-\u003cversion\u003e-py3-none-any.whl\n\n# Install using the source distribution\npip3 install dist/jbackup-\u003cversion\u003e.tar.gz\n```\n\nIt is recommended that you install from the wheel. Otherwise,\nyou can install from the source distribution. `\u003cversion\u003e` is\nreplaced with the project version.\n\n# Usage\nJBackup can be used with the commandline utility `jbackup`. It has several\nsubcommands:\n\n* complete\n* create-action\n* create-rule\n* do\n* locate\n* show\n\n# Action Creation\nIn order to start using JBackup, create an action:\n\n``` sh\njbackup create-action \u003caction\u003e\n```\n\n`\u003caction\u003e` is the name of the action you want to create. A Python\nscript named `\u003caction\u003e.py` (with the `\u003caction\u003e` replaced, of course)\nis created under the `actions` subdirectory in the current data path.\u003csup\u003e[1](#fnt-1)\u003c/sup\u003e\n\nThe newly created file is based off of a template, which you can find in\n`templates/_template.py` under the directory where the package is installed.\n\n# Rule Creation\nNext, create a rule with this command:\n\n``` sh\njbackup create-rule \u003crule\u003e\n```\n\nThis creates a rule with the given name under the `rules` subdirectory\nof the current data path.\u003csup\u003e[1](#fnt-1)\u003c/sup\u003e\n\nRules are currently in [TOML](https://toml.io) format, though this can\nbe changed with the `-f` option. That being said, TOML is the only format\nsupported right now. \u003c!-- Should the need arise, I might a new format --\u003e\n\n--------------------\n\n\u003csmall id=\"fnt-1\"\u003e1 Check the [definition](#def-data-path) above.\u003c/small\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohndevlopment%2Fjbackup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjohndevlopment%2Fjbackup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohndevlopment%2Fjbackup/lists"}