diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 000000000..21d33b5c7 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,22 @@ +### All submissions + +* [ ] I have followed the [Contributing Guidelines](https://github.com/lra/mackup/blob/master/.github/CONTRIBUTING.md) +* [ ] I have checked to ensure there aren't other open [Pull Requests](https://github.com/lra/mackup/pulls) for the same update/change + +### Adding/updating Application X Support + +* [ ] This PR is only for one application +* [ ] It has been added to the list of supported applications in the [README](https://github.com/lra/mackup/blob/master/README.md) +* [ ] Changes have been added to the WIP section of the [CHANGELOG](https://github.com/lra/mackup/blob/master/CHANGELOG.md) +* [ ] Syncing does not break the application +* [ ] Syncing does not compete with any syncing functionality internal to the application +* [ ] The configuration syncs the minimal set of data +* [ ] No file specific to the local workstation is synced +* [ ] No sensitive data is synced + +### Improving the Mackup codebase + +* [ ] My submission passes the [tests](https://github.com/lra/mackup/tree/master/tests) +* [ ] I have linted the code locally prior to submission +* [ ] I have written new tests as applicable +* [ ] I have added an explanation of what the changes do diff --git a/.github/workflows/install.yaml b/.github/workflows/install.yaml index 07615349d..341598699 100644 --- a/.github/workflows/install.yaml +++ b/.github/workflows/install.yaml @@ -1,21 +1,36 @@ name: Test installs -on: - - pull_request - - push +on: pull_request jobs: - install: + install-on-linux: strategy: matrix: + os: + - "ubuntu-20.04" + - "ubuntu-22.04" python-version: - - 2.7 - - 3.6 - - 3.7 - - 3.8 - runs-on: ubuntu-latest + - "3.8" + - "3.9" + - "3.10" + - "3.11" + - "3.12" + runs-on: ${{ matrix.os }} container: python:${{ matrix.python-version }} steps: - - uses: actions/checkout@v2 - - run: python setup.py install + - uses: actions/checkout@v4 + - run: pip install . + - run: mackup --help + + install-on-macos: + strategy: + matrix: + os: + - macos-11 + - macos-12 + - macos-13 + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v4 + - run: pip install . - run: mackup --help diff --git a/.github/workflows/linelint.yaml b/.github/workflows/linelint.yaml new file mode 100644 index 000000000..9f81640d3 --- /dev/null +++ b/.github/workflows/linelint.yaml @@ -0,0 +1,16 @@ +# Make sure that all text files end with a newline character. +# Configure your editor to end every file with a newline character. +# See +on: + - pull_request + - push +name: linelint +jobs: + linelint: + runs-on: ubuntu-latest + name: Check if all files end with a newline character + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Linelint + uses: fernandrone/linelint@master diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 4502ca383..1c9910e33 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -10,5 +10,5 @@ jobs: container: python steps: - run: pip install black - - uses: actions/checkout@v2 - - run: black --check --target-version py27 . + - uses: actions/checkout@v4 + - run: black --check --target-version py310 . diff --git a/.github/workflows/markdown.yaml b/.github/workflows/markdown.yaml index 5b1e62b9a..904a36d82 100644 --- a/.github/workflows/markdown.yaml +++ b/.github/workflows/markdown.yaml @@ -7,7 +7,9 @@ jobs: mdl: runs-on: ubuntu-latest - container: rsrchboy/mdl steps: - - uses: actions/checkout@v2 - - run: mdl . + - uses: actions/checkout@v4 + - uses: articulate/actions-markdownlint@v1 + with: + config: .markdownlint.yaml + ignore: 'tests/' diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 430fe795d..bddae6b8f 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -1,7 +1,5 @@ name: Run tests -on: - - pull_request - - push +on: pull_request jobs: @@ -10,7 +8,7 @@ jobs: container: python:2.7 steps: - run: pip install docopt six nose - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - run: nosetests --with-coverage --cover-tests --cover-inclusive --cover-branches --cover-package=mackup nose: @@ -18,12 +16,15 @@ jobs: strategy: matrix: python-version: - - 3.6 - - 3.7 - - 3.8 + - "3.8" + - "3.9" + - "3.10" + - "3.11" + # - "3.12" # Installing numpy (1.24.4): Failed container: python:${{ matrix.python-version }} steps: - - run: pip install pipenv - - uses: actions/checkout@v2 - - run: pipenv install -d + - run: echo "${HOME}/.local/bin" >> $GITHUB_PATH + - run: pip install pipx + - run: pipx install poetry + - uses: actions/checkout@v4 - run: make test diff --git a/.linelint.yml b/.linelint.yml new file mode 100644 index 000000000..83277987c --- /dev/null +++ b/.linelint.yml @@ -0,0 +1,19 @@ +# 'true' will fix files +autofix: false + +# list of paths to ignore, uses gitignore syntaxes (executes before any rule) +ignore: + - tests/fixtures/Library/Application Support/Box/Box Sync/sync_root_folder.txt + - tests/fixtures/Library/Mobile Documents/com~apple~CloudDocs/_blank_.md + +rules: + # checks if file ends in a newline character + end-of-file: + # set to true to enable this rule + enable: true + + # set to true to disable autofix (if enabled globally) + disable-autofix: true + + # if true also checks if file ends in a single newline character + single-new-line: true diff --git a/.markdownlint.yaml b/.markdownlint.yaml new file mode 100644 index 000000000..40598550b --- /dev/null +++ b/.markdownlint.yaml @@ -0,0 +1,2 @@ +MD004: + style: "dash" diff --git a/.mdl_style.rb b/.mdl_style.rb new file mode 100644 index 000000000..87660f6eb --- /dev/null +++ b/.mdl_style.rb @@ -0,0 +1,4 @@ +all +rule 'MD007', :indent => 2 +rule 'MD029', :style => :ordered +exclude_rule 'MD041' diff --git a/.mdlrc b/.mdlrc new file mode 100644 index 000000000..8f1aa6109 --- /dev/null +++ b/.mdlrc @@ -0,0 +1 @@ +style './.mdl_style.rb' diff --git a/CHANGELOG.md b/CHANGELOG.md index cb339dca1..0c18cea3f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,185 @@ ## WIP +- Updated support for GeekTool (via @yuchen-lea) +- Remve support for Apple Preview, problematic on macOS 14.1 +- Added support for Subler (via @EpicKris) + +## Mackup 0.8.39 + +- Updated support for Factorio (via @jpuris) +- Added support for Zed (via @sethherr) +- Updated support for IntelliJIdea version 2023.1 and 2023.2 +- Updated support for CLion version 2023.1 and 2023.2 +- Updated support for DataGrip version 2023.1 and 2023.2 +- Updated support for GoLand version 2023.1 and 2023.2 +- Updated support for PhpStorm version 2023.1 and 2023.2 +- Updated support for PyCharm version 2023.1 and 2023.2 +- Updated support for RubyMine version 2023.1 and 2023.2 +- Updated support for WebStorm version 2023.1 and 2023.2 +- Removed support for kindaVim (via @godbout) +- Removed support for Wooshy (via @godbout) +- Removed support for Scrolla (via @godbout) +- fix: Deprecated SafeConfigParser resolved +- bugfix: added Brewfile + +## Mackup 0.8.38 + +- Build and release with poetry + +## Mackup 0.8.37 + +- Added support for macOS Preview (via @iloveitaly) +- Fixed support for Bat (via @grigorii-horos) +- Added support for Rust (via @grigorii-horos) +- Added support for Termux (via @grigorii-horos) +- Added support for Stats (via @iloveitaly) +- Fixed support for LunarVim 1.2 (via @secsaba) +- Fixed support for Base (via @iloveitaly) +- Added support for ActivityWatch (via @YiGeon) +- Added support for dozer (via @iloveitaly) +- Added support for Zoom (via @iloveitaly) +- Fixed support for LunarVim (via @YiGeon) +- Updated support for Caffeine (via @joshmedeski) +- Added support for PrusaSlicer (via @visika) +- Added support for Logseq (via @visika) +- Updated support for iTerm2 (via @LucasLarson) +- Added support for SwitchHosts (via @zxjlm) +- Added support for Warp (via @drallas) +- Added support for Wooshy (via @godbout) +- Added support for Scrolla (via @godbout) +- Updated support for Amethyst (via @max-sixty) +- Added support for Elgato StreamDeck (via @fharper) +- Added support for ni (via @wxh16144) +- Added support for TablePlus Favorites (via @pesonn) +- Added support for asdf .default-npm-packages +- Updated poetry config location (via @syphar) +- Updated support for vim (via @iarchean) +- Updated support for Maven: include settings-security.xml (via @stevenodb) +- Added support for GoLand 2019.2 (via @carlossg) + +## Mackup 0.8.36 + +- Added support for LunarVim (via @YiGeon) +- Added support for Airflow (via @Evertt) +- Updated support for yabai (via @Liu233w) +- Updated suport for skhd (via @jonasdiemer) +- Added support for Sizzy (via @driftingly) + +## Mackup 0.8.35 + +- Updated support for iTerm2 (via @michielgerritsen) +- Added support for NSLogger (via @lavareX) +- Added support for Fork (via @lavareX) +- Updated support for Proxymann Setapp version (via @JanC) +- Added support for Btop (via @Mersid) +- Updated support for Nushell (via @maradude) +- Updated support for CleanShot (via @timfee) +- Added backwards-compatibility support for Espanso (via @joshmedeski) + +## Mackup 0.8.34 + +- Updated support for Bash it (via @jacopkane) +- Added support for Remote Desktop Manager (via @jpmat296) +- Fixed support for asciinema (via @revolter) +- Added support for Mumu (via @fharper) +- Updated support for fasd (via @doubleloop) +- Updated support for lazygit (via @joshmedeski) +- Added support for Nova (via @guillaumealgis) +- Added support for Oracle Cloud Infrastructure CLI (via @Djelibeybi) +- Added support for PicGo (via @SSBun) +- Added support for Flameshot (via @joshmedeski) +- Added support for Planner (via @spawnedc) +- Fixed support for k9s (via @gamussa) +- Added support for act (via @fharper) +- Added support for notion-enhancer (via @fharper) +- Added support for GitFox (via @L3K0V) +- Updated support for Bartender through SetApp (via @dbhagen) +- Updated support for Xonsh (via @wy-z) +- Added support for TablePlus history (via @annuh) +- Added support for xbar (via @dnicolson) +- Added support for Beyond Compare (via @mgraham) +- Added support for kindaVim (via @godbout) + +## Mackup 0.8.33 + +- Added support for Lightroom Classic (via @treee111) +- Fixed support for Hocus Focus (via @jrolfs) +- Added support for KeePassXC (via @harens) +- Fixed support for poetry (via @ameyuuno) +- Added support for npm package npmrc (via @jdvivar) +- Added support for rubiTrack 5 (via @otherguy) +- Updated support for Fisher (via @kidonng) +- Added support for Qv2ray (via @kidonng) +- Added support for Neofetch (via @kidonng) +- Added support for PsySH (via @nesk) +- Added support for polybar(via @jneo8) +- Added support for Tiles (via @damianoamatruda) +- Added support for Flake8 (via @hongqn) +- Fixed support for HandBrake (via @damianoamatruda) +- Added support for Loopback (via @damianoamatruda) +- Added support for IDA Pro (via @damianoamatruda) +- Added support for MuteSpotifyAds (via @damianoamatruda) +- Added support for Ghidra (via @damianoamatruda) +- Added support for Logitech Options (via @damianoamatruda) +- Added support for OBS (via @damianoamatruda) +- Update uninstall prompt for accuracy (via @soneji) +- Added support for Proxyman (via @NghiaTranUIT) +- Updated support for IntelliJIdea version 2021.1 (via @steffenmalisi) +- Added support for Sublime Text 4 (via @TCattd) +- Added support for Contexts (via @antoni-k) +- Added support for Swish (via @antoni-k) +- Added support for AltTab (via @aiotter) +- Added support for Goku (via @thebengeu) +- Added support for Akamai CLI (via @anirudhbagri) +- Added support for FastScripts (via @darrenbkl) +- Added support for Affinity Designer (via @EpicKris) +- Added support for Affinity Photo (via @EpicKris) +- Added support for Affinity Publisher (via @EpicKris) +- Added support for MTMR (via @dec0dOS) +- Added support for Rocket (via @revolter) +- Updated support for BetterTouchTool (via @grapswiz) +- Updated support for k9s (via @dfang) +- Added support for Mendeley Desktop (via @aiotter) +- Added support for CleanShot, Mosaic, Eagle and Nuget (via @ye4241) + +## Mackup 0.8.32 + +- Fixed an issue due to a duplicate entry in the intellijidea config +- Added support for Visual Studio for Mac version 8 (via @Qythyx) + +## Mackup 0.8.31 + +- Fixed an issue due to a duplicate entry in the webstorm config + +## Mackup 0.8.30 + +- Added support for SpaceVim (via @ionlights) +- Added support for clashX (via @awkj) +- Added support for Brave (via @cbenv) +- Added support for Nushell (via @leesiongchan) +- Updated support for Clipy (via @jclerc) +- Added support for aerc (via @Crocmagnon) +- Added support for espanso (via @maxandersen) +- Added support for lazygit (via @joshmedeski) +- Added support for WebStorm versions 2019.4, 2020.2, 2020.3, 2020.4 (via @bdcarr) +- Added support for rbenv (via @dfang) +- Added support for draft (via @dfang) +- Added support for lf (via @joshmedeski) +- Added support for Beets (via @publicarray) +- Added support for Krew (via @exherb) +- Added support for Homebrew (via @exherb) +- Added support for PyCharm versions 2020.2, 2020.3, 2020.4 (via @ameyuuno) +- Added support for Netlify (via @pgilad) +- Added support for K9s (via @tareksamni) +- Added support for Powerlevel10k (via @tareksamni) +- Updated support for aria2 (via @hongqn) +- Update support for IntelliJ (via @scooby) +- Added support for zoxide (via @kidonng) +- Added support for Raycast (via @janniks) + +## Mackup 0.8.29 + - Added support for waybar (via @mk-atlassian) - Added support for mako (via @mk-atlassian) - Added support for Swaywm (via @mk-atlassian) @@ -228,6 +407,7 @@ - Add support for DaisyDisk (via @cafferata) - Add support for MySQLWorkbench (via @cafferata) - Add support for Openbox (via @jpfarcy) +- Change OS X to macOS to match OS name change (via @samdoran) ## Mackup 0.8.16 @@ -413,7 +593,7 @@ - Added support of WebStorm 10 (via @morphinewan) - Added support of Gnome SSH Tunnel Manager (via @skyrocknroll) - Added support for Hammerspoon (via @jkaan) -- Added support for Bitchx (via @troywilson_) +- Added support for Bitchx (via @troywilson\_) - Added support for EditorConfig (via @chadluo) - Add com.agilebits.onepassword4.plist in 1Password (via @amatos) - Added support for Versions (via @amatos) @@ -723,7 +903,7 @@ - Added support for Ack (via @adamlogic) - Added support for Stata and SelfControl (via @kfinlay) - Added support for LaTeXiT (via @twsh) -- Do not link ~/Library/* files on GNU/Linux, should fix #104 +- Do not link ~/Library/\* files on GNU/Linux, should fix #104 ## Mackup 0.5 diff --git a/INSTALL.md b/INSTALL.md index 23dd83af5..7ca9edb90 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -3,7 +3,7 @@ There are 2 ways to run mackup 1. Install it with Homebrew (OSX only) -1. Install it with PIP (OSX and GNU/Linux) +2. Install it with PIP (OSX and GNU/Linux) ## Install @@ -17,6 +17,21 @@ brew install mackup mackup -h ``` +### With Homebrew (OSX only) master branch for latest updates + +Want to install latest master releases instead of waiting on homebrew package version? + +[Homebrew reference](https://docs.brew.sh/Manpage#install-options-formulacask) + +```bash +# Install master +brew install --HEAD +# Check if are using the master or stale package +brew switch mackup + +mackup -h +``` + ### With Python's PIP ```bash diff --git a/Makefile b/Makefile index 1a6c23485..979fbba7a 100644 --- a/Makefile +++ b/Makefile @@ -1,23 +1,20 @@ -develop: - pipenv run python setup.py develop - -undevelop: - pipenv run python setup.py develop --uninstall - lint: # Install mdl with "gem install mdl" mdl . test: - pipenv run nosetests --with-coverage --cover-tests --cover-inclusive --cover-branches --cover-package=mackup + poetry install --with dev + poetry run nosetests --with-coverage --cover-branches --cover-package=mackup clean: + rm -rf __pycache__ + rm -rf mackup/__pycache__ + rm -rf tests/__pycache__ rm -rf dist/ - rm -rf Mackup.egg-info/ release: clean - pipenv run python setup.py sdist - pipenv run twine upload dist/* + poetry build + poetry publish black: - black --target-version py27 . + black --target-version py310 . diff --git a/Pipfile b/Pipfile deleted file mode 100644 index 000429f63..000000000 --- a/Pipfile +++ /dev/null @@ -1,15 +0,0 @@ -[[source]] -name = "pypi" -url = "https://pypi.org/simple" -verify_ssl = true - -[packages] -docopt = "*" -six = "*" - -[dev-packages] -# Black is still a pre-release. Replaced with `brew install black` for now. -# black = "*" -coverage = "*" -nose = "*" -twine = "*" diff --git a/Pipfile.lock b/Pipfile.lock deleted file mode 100644 index ea1ec745f..000000000 --- a/Pipfile.lock +++ /dev/null @@ -1,195 +0,0 @@ -{ - "_meta": { - "hash": { - "sha256": "b7c480e641440c1617f3beb17e1085abc0bcbbaa937da6f7ffe8fa50f2eeb2b1" - }, - "pipfile-spec": 6, - "requires": {}, - "sources": [ - { - "name": "pypi", - "url": "https://pypi.org/simple", - "verify_ssl": true - } - ] - }, - "default": { - "docopt": { - "hashes": [ - "sha256:49b3a825280bd66b3aa83585ef59c4a8c82f2c8a522dbe754a8bc8d08c85c491" - ], - "index": "pypi", - "version": "==0.6.2" - }, - "six": { - "hashes": [ - "sha256:236bdbdce46e6e6a3d61a337c0f8b763ca1e8717c03b369e87a7ec7ce1319c0a", - "sha256:8f3cd2e254d8f793e7f3d6d9df77b92252b52637291d0f0da013c76ea2724b6c" - ], - "index": "pypi", - "version": "==1.14.0" - } - }, - "develop": { - "bleach": { - "hashes": [ - "sha256:cc8da25076a1fe56c3ac63671e2194458e0c4d9c7becfd52ca251650d517903c", - "sha256:e78e426105ac07026ba098f04de8abe9b6e3e98b5befbf89b51a5ef0a4292b03" - ], - "version": "==3.1.4" - }, - "certifi": { - "hashes": [ - "sha256:1d987a998c75633c40847cc966fcf5904906c920a7f17ef374f5aa4282abd304", - "sha256:51fcb31174be6e6664c5f69e3e1691a2d72a1a12e90f872cbdb1567eb47b6519" - ], - "version": "==2020.4.5.1" - }, - "chardet": { - "hashes": [ - "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae", - "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691" - ], - "version": "==3.0.4" - }, - "coverage": { - "hashes": [ - "sha256:00f1d23f4336efc3b311ed0d807feb45098fc86dee1ca13b3d6768cdab187c8a", - "sha256:01333e1bd22c59713ba8a79f088b3955946e293114479bbfc2e37d522be03355", - "sha256:0cb4be7e784dcdc050fc58ef05b71aa8e89b7e6636b99967fadbdba694cf2b65", - "sha256:0e61d9803d5851849c24f78227939c701ced6704f337cad0a91e0972c51c1ee7", - "sha256:1601e480b9b99697a570cea7ef749e88123c04b92d84cedaa01e117436b4a0a9", - "sha256:2742c7515b9eb368718cd091bad1a1b44135cc72468c731302b3d641895b83d1", - "sha256:2d27a3f742c98e5c6b461ee6ef7287400a1956c11421eb574d843d9ec1f772f0", - "sha256:402e1744733df483b93abbf209283898e9f0d67470707e3c7516d84f48524f55", - "sha256:5c542d1e62eece33c306d66fe0a5c4f7f7b3c08fecc46ead86d7916684b36d6c", - "sha256:5f2294dbf7875b991c381e3d5af2bcc3494d836affa52b809c91697449d0eda6", - "sha256:6402bd2fdedabbdb63a316308142597534ea8e1895f4e7d8bf7476c5e8751fef", - "sha256:66460ab1599d3cf894bb6baee8c684788819b71a5dc1e8fa2ecc152e5d752019", - "sha256:782caea581a6e9ff75eccda79287daefd1d2631cc09d642b6ee2d6da21fc0a4e", - "sha256:79a3cfd6346ce6c13145731d39db47b7a7b859c0272f02cdb89a3bdcbae233a0", - "sha256:7a5bdad4edec57b5fb8dae7d3ee58622d626fd3a0be0dfceda162a7035885ecf", - "sha256:8fa0cbc7ecad630e5b0f4f35b0f6ad419246b02bc750de7ac66db92667996d24", - "sha256:a027ef0492ede1e03a8054e3c37b8def89a1e3c471482e9f046906ba4f2aafd2", - "sha256:a3f3654d5734a3ece152636aad89f58afc9213c6520062db3978239db122f03c", - "sha256:a82b92b04a23d3c8a581fc049228bafde988abacba397d57ce95fe95e0338ab4", - "sha256:acf3763ed01af8410fc36afea23707d4ea58ba7e86a8ee915dfb9ceff9ef69d0", - "sha256:adeb4c5b608574a3d647011af36f7586811a2c1197c861aedb548dd2453b41cd", - "sha256:b83835506dfc185a319031cf853fa4bb1b3974b1f913f5bb1a0f3d98bdcded04", - "sha256:bb28a7245de68bf29f6fb199545d072d1036a1917dca17a1e75bbb919e14ee8e", - "sha256:bf9cb9a9fd8891e7efd2d44deb24b86d647394b9705b744ff6f8261e6f29a730", - "sha256:c317eaf5ff46a34305b202e73404f55f7389ef834b8dbf4da09b9b9b37f76dd2", - "sha256:dbe8c6ae7534b5b024296464f387d57c13caa942f6d8e6e0346f27e509f0f768", - "sha256:de807ae933cfb7f0c7d9d981a053772452217df2bf38e7e6267c9cbf9545a796", - "sha256:dead2ddede4c7ba6cb3a721870f5141c97dc7d85a079edb4bd8d88c3ad5b20c7", - "sha256:dec5202bfe6f672d4511086e125db035a52b00f1648d6407cc8e526912c0353a", - "sha256:e1ea316102ea1e1770724db01998d1603ed921c54a86a2efcb03428d5417e489", - "sha256:f90bfc4ad18450c80b024036eaf91e4a246ae287701aaa88eaebebf150868052" - ], - "index": "pypi", - "version": "==5.1" - }, - "docutils": { - "hashes": [ - "sha256:0c5b78adfbf7762415433f5515cd5c9e762339e23369dbe8000d84a4bf4ab3af", - "sha256:c2de3a60e9e7d07be26b7f2b00ca0309c207e06c100f9cc2a94931fc75a478fc" - ], - "version": "==0.16" - }, - "idna": { - "hashes": [ - "sha256:7588d1c14ae4c77d74036e8c22ff447b26d0fde8f007354fd48a7814db15b7cb", - "sha256:a068a21ceac8a4d63dbfd964670474107f541babbd2250d61922f029858365fa" - ], - "version": "==2.9" - }, - "keyring": { - "hashes": [ - "sha256:197fd5903901030ef7b82fe247f43cfed2c157a28e7747d1cfcf4bc5e699dd03", - "sha256:8179b1cdcdcbc221456b5b74e6b7cfa06f8dd9f239eb81892166d9223d82c5ba" - ], - "version": "==21.2.0" - }, - "nose": { - "hashes": [ - "sha256:9ff7c6cc443f8c51994b34a667bbcf45afd6d945be7477b52e97516fd17c53ac", - "sha256:dadcddc0aefbf99eea214e0f1232b94f2fa9bd98fa8353711dacb112bfcbbb2a", - "sha256:f1bffef9cbc82628f6e7d7b40d7e255aefaa1adb6a1b1d26c69a8b79e6208a98" - ], - "index": "pypi", - "version": "==1.3.7" - }, - "pkginfo": { - "hashes": [ - "sha256:7424f2c8511c186cd5424bbf31045b77435b37a8d604990b79d4e70d741148bb", - "sha256:a6d9e40ca61ad3ebd0b72fbadd4fba16e4c0e4df0428c041e01e06eb6ee71f32" - ], - "version": "==1.5.0.1" - }, - "pygments": { - "hashes": [ - "sha256:647344a061c249a3b74e230c739f434d7ea4d8b1d5f3721bc0f3558049b38f44", - "sha256:ff7a40b4860b727ab48fad6360eb351cc1b33cbf9b15a0f689ca5353e9463324" - ], - "version": "==2.6.1" - }, - "readme-renderer": { - "hashes": [ - "sha256:cbe9db71defedd2428a1589cdc545f9bd98e59297449f69d721ef8f1cfced68d", - "sha256:cc4957a803106e820d05d14f71033092537a22daa4f406dfbdd61177e0936376" - ], - "version": "==26.0" - }, - "requests": { - "hashes": [ - "sha256:43999036bfa82904b6af1d99e4882b560e5e2c68e5c4b0aa03b655f3d7d73fee", - "sha256:b3f43d496c6daba4493e7c431722aeb7dbc6288f52a6e04e7b6023b0247817e6" - ], - "version": "==2.23.0" - }, - "requests-toolbelt": { - "hashes": [ - "sha256:380606e1d10dc85c3bd47bf5a6095f815ec007be7a8b69c878507068df059e6f", - "sha256:968089d4584ad4ad7c171454f0a5c6dac23971e9472521ea3b6d49d610aa6fc0" - ], - "version": "==0.9.1" - }, - "six": { - "hashes": [ - "sha256:236bdbdce46e6e6a3d61a337c0f8b763ca1e8717c03b369e87a7ec7ce1319c0a", - "sha256:8f3cd2e254d8f793e7f3d6d9df77b92252b52637291d0f0da013c76ea2724b6c" - ], - "index": "pypi", - "version": "==1.14.0" - }, - "tqdm": { - "hashes": [ - "sha256:00339634a22c10a7a22476ee946bbde2dbe48d042ded784e4d88e0236eca5d81", - "sha256:ea9e3fd6bd9a37e8783d75bfc4c1faf3c6813da6bd1c3e776488b41ec683af94" - ], - "version": "==4.45.0" - }, - "twine": { - "hashes": [ - "sha256:c1af8ca391e43b0a06bbc155f7f67db0bf0d19d284bfc88d1675da497a946124", - "sha256:d561a5e511f70275e5a485a6275ff61851c16ffcb3a95a602189161112d9f160" - ], - "index": "pypi", - "version": "==3.1.1" - }, - "urllib3": { - "hashes": [ - "sha256:3018294ebefce6572a474f0604c2021e33b3fd8006ecd11d62107a5d2a963527", - "sha256:88206b0eb87e6d677d424843ac5209e3fb9d0190d0ee169599165ec25e9d9115" - ], - "version": "==1.25.9" - }, - "webencodings": { - "hashes": [ - "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78", - "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923" - ], - "version": "==0.5.1" - } - } -} diff --git a/README.md b/README.md index 10225a13f..bf034edca 100644 --- a/README.md +++ b/README.md @@ -7,24 +7,31 @@ Keep your application settings in sync. ## Table of content -- [Quickstart](#quickstart) -- [Usage](#usage) -- [What does it do](#what-does-it-do) -- [Bullsh\*t, what does it really do to my files](#bullsht-what-does-it-really-do-to-my-files) -- [Supported Storages](#supported-storages) -- [Supported Applications](#supported-applications) -- [Can you support application X](#can-you-support-application-x) -- [Why did you do this](#why-did-you-do-this) -- [What platforms are supported](#what-platforms-are-supported) -- [What's up with the weird name](#whats-up-with-the-weird-name) -- [Where can I find more information](#where-can-i-find-more-information) +- [Mackup](#mackup) + - [Table of content](#table-of-content) + - [Quickstart](#quickstart) + - [Usage](#usage) + - [What does it do](#what-does-it-do) + - [Bullsh\*t, what does it really do to my files](#bullsht-what-does-it-really-do-to-my-files) + - [Backup](#backup) + - [Restore](#restore) + - [Uninstall](#uninstall) + - [Supported Storages](#supported-storages) + - [Unsupported Storages](#unsupported-storages) + - [Supported Applications](#supported-applications) + - [Can you support application X](#can-you-support-application-x) + - [Personalization \& configuration](#personalization--configuration) + - [Why did you do this](#why-did-you-do-this) + - [What platforms are supported](#what-platforms-are-supported) + - [What's up with the weird name](#whats-up-with-the-weird-name) + - [Where can I find more information](#where-can-i-find-more-information) ## Quickstart If you have [Dropbox](https://www.dropbox.com) installed and want to use it to save your config files, that's super easy. -On OS X, if you want an easy install, you can install +On macOS, if you want an easy install, you can install [Homebrew](http://brew.sh/) and do: ```bash @@ -35,7 +42,7 @@ brew install mackup mackup backup ``` -If not running OS X, or you don't like Homebrew, you can use [pip](https://pip.pypa.io/en/stable/). +If not running macOS, or you don't like Homebrew, you can use [pip](https://pip.pypa.io/en/stable/). > Note: The below command will check if a previous version of Mackup > is already installed on your system. @@ -116,8 +123,8 @@ folder, in the `.gitconfig` file. If you have Dropbox, these things happen when you launch `mackup backup`: 1. `cp ~/.gitconfig ~/Dropbox/Mackup/.gitconfig` -1. `rm ~/.gitconfig` -1. `ln -s ~/Dropbox/Mackup/.gitconfig ~/.gitconfig` +2. `rm ~/.gitconfig` +3. `ln -s ~/Dropbox/Mackup/.gitconfig ~/.gitconfig` Now your `git` config is always backed up and up to date on all your workstations. @@ -148,7 +155,6 @@ in it stay put, so that any other computer also running Mackup is unaffected. - [Dropbox](https://www.dropbox.com/) - [Google Drive](https://drive.google.com/) -- [Copy](https://www.copy.com/) - [iCloud](http://www.apple.com/icloud/) - Anything able to sync a folder (e.g. [Git](http://git-scm.com/)) @@ -156,7 +162,7 @@ See the [README](doc/README.md) file in the doc directory for more info. ## Unsupported Storages -- [Box](https://www.box.com): No longer supported is it ignores dotfiles, see +- [Box](https://www.box.com): No longer supported as it ignores dotfiles, see . ## Supported Applications @@ -164,19 +170,27 @@ See the [README](doc/README.md) file in the doc directory for more info. - [1Password 4](https://agilebits.com/onepassword) - [2Do](http://www.2doapp.com/) - [Ack](http://beyondgrep.com/) +- [act](https://github.com/nektos/act) - [Adium](https://adium.im/) - [Adobe Camera Raw](http://www.adobe.com/products/photoshop/extend.html) - [Adobe Illustrator CC](https://www.adobe.com/products/illustrator.html) - [Adobe Photoshop CC](http://www.adobe.com/products/photoshop.html) - [Adobe Photoshop Lightroom CC](https://www.adobe.com/products/photoshop-lightroom.html) +- [Adobe Photoshop Lightroom Classic](https://www.adobe.com/de/products/photoshop-lightroom-classic.html) +- [aerc](https://aerc-mail.org/) +- [Affinity Designer](https://affinity.serif.com/designer) +- [Affinity Photo](https://affinity.serif.com/photo) +- [Affinity Publisher](https://affinity.serif.com/publisher) +- [Airflow](https://airflowapp.com/) - [Airmail](http://airmailapp.com/) +- [Akamai-CLI](https://developer.akamai.com/cli) - [Alacritty](https://github.com/jwilm/alacritty) +- [AltTab](https://alt-tab-macos.netlify.app/) - [Amethyst](https://ianyh.com/amethyst/) - [Ancient Domains of Mystery](http://www.adom.de/home/index.html) - [Android Studio](https://developer.android.com/sdk/) - [Ansible](http://www.ansible.com/) - [AppCleaner](http://freemacsoft.net/appcleaner/) -- [Hocus Focus](http://hocusfoc.us/) - [AppCode](http://www.jetbrains.com/objc/) - [Apple Music](https://www.apple.com/apple-music/) - [Apptivate](http://www.apptivateapp.com/) @@ -194,14 +208,18 @@ See the [README](doc/README.md) file in the doc directory for more info. - [Autokey](https://code.google.com/p/autokey/) - [Awareness](http://iamfutureproof.com/tools/awareness/) - [AWS Command Line Interface](https://aws.amazon.com/cli/) +- [ActivityWatch](http://activitywatch.net/) - [Bartender](http://www.macbartender.com/) - [Bash it](https://github.com/Bash-it/bash-it) - [Bash](http://www.gnu.org/software/bash/) +- [Base](https://menial.co.uk/base/) - [Bat](https://github.com/sharkdp/bat) - [Bc](https://www.gnu.org/software/bc/) - [Beatport Pro](https://www.beatport.com/desktop) +- [Beets](http://beets.io/) - [BetterSnapTool](http://www.boastr.net/) - [BetterTouchTool](http://www.boastr.net/) +- [Beyond Compare](https://scootersoftware.com/) - [BibDesk](http://bibdesk.sourceforge.net/) - [Billings Pro Server Admin](https://www.marketcircle.com/billingspro/download/billingspro-server/) - [BitBar](https://getbitbar.com/) @@ -211,6 +229,8 @@ See the [README](doc/README.md) file in the doc directory for more info. - [Boto](https://github.com/boto/boto) - [Boxer](http://boxerapp.com) - [Brackets](http://brackets.io/) +- [Brave](https://brave.com/) +- [Btop](https://github.com/aristocratos/btop) - [Bump](https://github.com/fabiospampinato/bump) - [Bundler](http://bundler.io) - [Byobu](http://byobu.co/) @@ -226,7 +246,9 @@ See the [README](doc/README.md) file in the doc directory for more info. - [Choosy](https://www.choosyosx.com/) - [chunkwm](https://github.com/koekeishiya/chunkwm) - [Cider](https://github.com/msanders/cider) +- [ClashX](https://github.com/yichengchen/clashX) - [Clasp](https://github.com/google/clasp) +- [CleanShot](https://cleanshot.com/) - [Clementine](https://www.clementine-player.org/) - [CLion](https://www.jetbrains.com/clion/) - [ClipMenu](http://www.clipmenu.com/) @@ -241,6 +263,7 @@ See the [README](doc/README.md) file in the doc directory for more info. - [Concentrate](http://www.getconcentrating.com/) - [Conky](https://github.com/brndnmtthws/conky) - [Consular](https://github.com/achiu/consular) +- [Contexts](https://contexts.co) - [ControlPlane](http://www.controlplaneapp.com/) - [CopyQ](https://github.com/hluk/CopyQ) - [CoRD](http://cord.sourceforge.net/) @@ -267,33 +290,42 @@ See the [README](doc/README.md) file in the doc directory for more info. - [Doom Emacs](https://github.com/hlissner/doom-emacs) - [Double Commander](http://doublecmd.sourceforge.net/) - [Doxie](http://www.getdoxie.com/) +- [Dozer](https://github.com/Mortennn/Dozer) +- [Draft](https://draft.sh/) - [Droplr](https://droplr.com/) - [Dropzone 3](https://aptonic.com/dropzone3/) - [Drush](http://www.drush.org/) +- [Eagle (ogdesign)](https://eagle.cool/) - [EditorConfig](http://editorconfig.org/) - [Electrum](https://electrum.org/#home) +- [Elgato StreamDeck](https://www.elgato.com/en/welcome-to-stream-deck) - [Emacs](http://www.gnu.org/software/emacs/) - [Enjoyable](https://yukkurigames.com/enjoyable/) - [Environmental Station Alpha](http://www.hempuli.com/esa/) - [eqMac2](https://bitgapp.com/eqmac/) - [ESLint](https://eslint.org/) +- [espanso](https://espanso.org) - [Exercism](http://exercism.io/) - [ExpanDrive](http://www.expandrive.com/) - [Factorio](https://www.factorio.com) - [Fantastical](http://flexibits.com/fantastical) - [fasd](https://github.com/clvv/fasd) - [fastlane](https://fastlane.tools) +- [FastScripts](https://redsweater.com/fastscripts/) - [Feeds](http://www.feedsapp.com/) - [FileZilla](https://filezilla-project.org/) - [Finicky](https://github.com/johnste/finicky) - [Fish](http://fishshell.com/) - [Fisher](https://github.com/jorgebucaran/fisher) +- [Flake8](https://flake8.pycqa.org/) +- [Flameshot](https://flameshot.org) - [FlexGet](http://flexget.com/) - [Flux](https://justgetflux.com/) - [Focus](https://heyfocus.com) - [Fontconfig](https://www.freedesktop.org/wiki/Software/fontconfig/) - [FontExplorer X](http://www.fontexplorerx.com/) - [Forge](http://www.slightlymagic.net/wiki/Forge) +- [Fork](https://git-fork.com/) - [ForkLift](http://www.binarynights.com/forklift/) - [Franz](https://meetfranz.com) - [Gas Mask](https://github.com/2ndalpha/gasmask/) @@ -301,18 +333,21 @@ See the [README](doc/README.md) file in the doc directory for more info. - [Gear Player](https://www.gearmusicplayer.com/) - [GeekTool](http://projects.tynsoe.org/en/geektool/) - [GHCi](https://wiki.haskell.org/GHC/GHCi) +- [Ghidra](https://ghidra-sre.org) - [Ghostwriter](https://wereturtle.github.io/ghostwriter/) - [Gimp](https://www.gimp.org/) -- [Git Hooks](https://github.com/icefox/git-hooks) +- [Git Hooks](https://github.com/git-hooks/git-hooks) - [Git](http://git-scm.com/) - [Gitbox](http://gitboxapp.com/) +- [GitFox](https://www.gitfox.app) - [GitKraken](https://www.gitkraken.com) - [GitUp](http://gitup.co/) - [Gmail Notifr](http://ashchan.com/projects/gmail-notifr) - [GMVault](http://gmvault.org/) - [Gnome SSH Tunnel Manager](http://sourceforge.net/projects/gstm/) -- [GnuPG](https://www.gnupg.org/) (NOTE: includes private keys) +- [GnuPG](https://www.gnupg.org/) - [Go2Shell](http://zipzapmac.com/Go2Shell) +- [Goku](https://github.com/yqrashawn/GokuRakuJoudo) - [GoLand](https://www.jetbrains.com/go/) - [Goldendict](http://goldendict.org/) - [GoodSync](https://goodsync.com/) @@ -328,7 +363,9 @@ See the [README](doc/README.md) file in the doc directory for more info. - [Heroku](https://www.heroku.com/) - [HexChat](https://hexchat.github.io/) - [Hexels](http://hexraystudios.com/hexels/) +- [Hocus Focus](http://hocusfoc.us/) - [Homebridge](https://github.com/nfarina/homebridge) +- [Homebrew](https://brew.sh) - [Houdini](http://uglyapps.co.uk/houdini/) - [Hstr](https://github.com/dvorka/hstr) - [Htop](http://htop.sourceforge.net/) @@ -339,6 +376,7 @@ See the [README](doc/README.md) file in the doc directory for more info. - [HyperSwitch](https://bahoom.com/hyperswitch) - [i2cssh](https://github.com/wouterdebie/i2cssh) - [i3](https://i3wm.org/) +- [IDA Pro](https://www.hex-rays.com/products/ida/) - [IdeaVim](https://github.com/JetBrains/ideavim) - [IINA](https://iina.io) - [Inkscape](https://inkscape.org/) @@ -360,12 +398,14 @@ See the [README](doc/README.md) file in the doc directory for more info. - [Julia](http://julialang.org) - [Jumpcut](http://jumpcut.sourceforge.net/) - [Jupyter](http://jupyter.org/) +- [k9s](https://k9scli.io/) - [Kaggle](https://kaggle.com/) - [Kaleidoscope](http://www.kaleidoscopeapp.com/) - [Karabiner Elements](https://github.com/tekezo/Karabiner-Elements) - [Karabiner](https://pqrs.org/osx/karabiner/) - [Kdenlive](https://kdenlive.org/) - [KeePassX](http://www.keepassx.org/) +- [KeePassXC](https://keepassxc.org/) - [KeepingYouAwake](https://github.com/newmarcel/KeepingYouAwake) - [Keka](http://www.kekaosx.com/en/) - [Keybase](https://keybase.io/) @@ -374,11 +414,14 @@ See the [README](doc/README.md) file in the doc directory for more info. - [KeyRemap4MacBook](https://pqrs.org/osx/karabiner/) - [Khd](https://github.com/koekeishiya/khd/) - [kitty](https://sw.kovidgoyal.net/kitty/) +- [Krew](https://github.com/kubernetes-sigs/krew) - [Kubectl](https://kubernetes.io/docs/reference/kubectl/overview/) - [Kwm](https://koekeishiya.github.io/kwm/) - [LaTeXiT](http://www.chachatelier.fr/latexit/latexit-home.php?lang=en) - [LaunchBar](https://www.obdev.at/products/launchbar/index.html) +- [lazygit](https://github.com/jesseduffield/lazygit) - [Ledger](http://ledger-cli.org) +- [lf](https://github.com/gokcehan/lf) - [LibreOffice](https://www.libreoffice.org/) - [Liftoff](https://github.com/thoughtbot/liftoff) - [Light Table](http://lighttable.com/) @@ -386,8 +429,12 @@ See the [README](doc/README.md) file in the doc directory for more info. - [Liquid Prompt](https://github.com/nojhan/liquidprompt) - [LittleSnitch](http://www.obdev.at/products/littlesnitch/) - [Livestreamer](http://livestreamer.tanuki.se/) +- [Logitech Options](https://www.logitech.com/en-us/product/options) +- [Logseq](https://logseq.com/) - [Lollypop](https://gnumdk.github.io/lollypop-web/) +- [Loopback](https://rogueamoeba.com/loopback/) - [Luftrausers](http://luftrausers.com) +- [LunarVim](https://www.lunarvim.org/) - [MacDive](http://www.mac-dive.com/) - [MacDown](http://macdown.uranusjr.com/) - [MacOSX](http://www.apple.com/osx/) @@ -396,6 +443,7 @@ See the [README](doc/README.md) file in the doc directory for more info. - [MagicPrefs](http://magicprefs.com/) - [Magnet](https://magnet.crowdcafe.com/) - [Maid](https://github.com/benjaminoakes/maid/) +- [Mail](https://support.apple.com/guide/mail/welcome/mac) - [Mailmate](http://freron.com/) - [Mailplane](http://mailplaneapp.com/) - [mako](https://wayland.emersion.fr/mako/) @@ -404,6 +452,7 @@ See the [README](doc/README.md) file in the doc directory for more info. - [MATLAB](http://www.mathworks.com/products/matlab/) - [Maven](http://maven.apache.org) - [Max](http://sbooth.org/Max/) +- [Mendeley Desktop](https://www.mendeley.com) - [MenuMeters](http://www.ragingmenace.com/software/menumeters/) - [Mercurial](https://www.mercurial-scm.org/) - [MercuryMover](http://www.heliumfoot.com/mercurymover/) @@ -415,13 +464,17 @@ See the [README](doc/README.md) file in the doc directory for more info. - [mkcert](https://github.com/FiloSottile/mkcert) - [MonoDevelop](http://www.monodevelop.com) - [Moom](http://manytricks.com/moom/) +- [Mosaic](https://lightpillar.com/mosaic.html) - [Mou](http://25.io/mou/) - [mpd](http://www.musicpd.org) - [MPlayerX](http://mplayerx.org) - [MPS Youtube](https://github.com/mps-youtube/mps-youtube) - [MPV](https://mpv.io/) +- [MTMR](https://github.com/Toxblh/MTMR) - [Multitouch](https://multitouch.app/) +- [Mumu](https://getmumu.com) - [MusicBrainz Picard](https://picard.musicbrainz.org/) +- [MuteSpotifyAds](https://github.com/simonmeusel/MuteSpotifyAds) - [mycli](https://www.mycli.net/) - [myrepos](https://github.com/joeyh/myrepos) - [MySQL Workbench](https://www.mysql.com/products/workbench/) @@ -430,23 +483,33 @@ See the [README](doc/README.md) file in the doc directory for more info. - [Nano](http://www.nano-editor.org/) - [Navicat](http://navicat.com/) - [ncmpcpp](http://rybczak.net/ncmpcpp/) +- [Neofetch](https://github.com/dylanaraps/neofetch) - [neovim](https://github.com/neovim/neovim) - [Nethack](http://www.nethack.org) +- [Netlify](https://www.netlify.com/) - [newsbeuter](http://newsbeuter.org/) - [ngrok](https://ngrok.com/) +- [ni](https://github.com/antfu/ni/) - [Nomacs](http://nomacs.org/) - [NoSQLBooster for MongoDB](https://www.nosqlbooster.com/) +- [notion-enhancer](https://notion-enhancer.github.io/) +- [Nova](https://www.nova.app/) - [npm](https://www.npmjs.com/) +- [npmrc](https://github.com/deoxxa/npmrc/) +- [NSLogger](https://github.com/fpillet/NSLogger) +- [nuget](https://www.nuget.org/) +- [Nushell](https://www.nushell.sh/) - [nvALT](http://brettterpstra.com/projects/nvalt/) - [nvpy](https://github.com/cpbotha/nvpy) +- [OBS](https://obsproject.com) - [Oh My Fish](https://github.com/bpinto/oh-my-fish) - [Oh My Tmux](https://github.com/gpakosz/.tmux) -- [Oh My Zsh](https://github.com/robbyrussell/oh-my-zsh) - [OmniFocus](https://www.omnigroup.com/omnifocus/) - [OmniGraffle](https://www.omnigroup.com/omnigraffle/) - [Openbox](http://openbox.org) - [OpenEmu](http://openemu.org) - [OpenSSH](http://www.openssh.com/) +- [Oracle Cloud Infrastructure CLI](https://docs.oracle.com/en-us/iaas/Content/API/Concepts/cliconcepts.htm) - [Paintbrush](http://paintbrush.sourceforge.net/) - [Pandoc](http://pandoc.org) - [Pass](http://www.passwordstore.org/) @@ -459,20 +522,24 @@ See the [README](doc/README.md) file in the doc directory for more info. - [Phoenix](https://github.com/kasper/phoenix) - [PhoneView](https://www.ecamm.com/mac/phoneview/) - [PhpStorm](http://www.jetbrains.com/phpstorm/) +- [PicGo](https://github.com/Molunerfinn/PicGo) - [Pidgin](https://www.pidgin.im) - [PIP](http://www.pip-installer.org/) - [PixelSnap](https://getpixelsnap.com/) - [PixelSnap 2](https://getpixelsnap.com/) +- [Planner](https://useplanner.com/) - [Pnpm](https://pnpm.js.org/) - [Pock](https://pock.pigigaldi.com) - [Poedit](http://poedit.net/) - [Poetry](https://python-poetry.org) - [PokerStars](https://www.pokerstars.com/) +- [Polybar](https://polybar.github.io/) - [PopClip](http://pilotmoon.com/popclip/) - [Popcorn-Time](https://popcorntime.io/) - [PostgreSQL](http://www.postgresql.org/) - [Postico](https://eggerapps.at/postico/) - [Pow](http://pow.cx/) +- [Powerlevel10k](https://github.com/romkatv/powerlevel10k) - [Powerline](https://github.com/powerline/powerline) - [Powerline-shell](https://github.com/b-ryan/powerline-shell) - [Prezto](https://github.com/sorin-ionescu/prezto) @@ -480,6 +547,9 @@ See the [README](doc/README.md) file in the doc directory for more info. - [Proselint](https://github.com/amperser/proselint) - [ProxyChains NG](http://sourceforge.net/projects/proxychains-ng/) - [ProxyChains](http://proxychains.sourceforge.net) +- [Proxyman](https://proxyman.io) +- [PrusaSlicer](https://www.prusa3d.com/prusaslicer/) +- [PsySH](https://psysh.org/) - [Punto Switcher](https://punto.yandex.ru/) - [PyCharm](https://www.jetbrains.com/pycharm/) - [PyPI](https://pypi.python.org/pypi) @@ -488,26 +558,33 @@ See the [README](doc/README.md) file in the doc directory for more info. - [Quicksilver](http://qsapp.com/) - [Quitter](https://marco.org/apps) - [Qutebrowser](http://qutebrowser.org/) +- [Qv2ray](https://qv2ray.net/) - [R](http://www.r-project.org/) - [Rails](http://rubyonrails.org/) - [Ranger](https://ranger.github.io/) +- [Raycast](https://raycast.com/) +- [Rbenv](https://www.github.com/rbenv/rbenv) - [Rclone](https://rclone.org/) - [Rectangle](https://rectangleapp.com/) - [Redshift Scheduler](https://github.com/spantaleev/redshift-scheduler) - [Redshift](http://jonls.dk/redshift/) +- [Remote Desktop Manager](https://remotedesktopmanager.com/) - [Rhythmbox](https://wiki.gnome.org/Apps/Rhythmbox) - [Rime](http://rime.im/) - [ripgrep](https://github.com/BurntSushi/ripgrep) - [Robomongo](http://robomongo.org/) +- [Rocket](https://matthewpalmer.net/rocket/) - [Rofi](https://github.com/DaveDavenport/rofi) - [Royal TSX](http://www.royaltsx.com/ts/osx/features) - [RStudio](https://www.rstudio.com/) - [rTorrent](http://libtorrent.rakshasa.no/) +- [rubiTrack 5](https://www.rubitrack.com) - [Rubocop](https://github.com/bbatsov/rubocop) - [Ruby Version Manager](https://rvm.io/) - [Ruby Version](https://gist.github.com/fnichol/1912050) - [Ruby](https://www.ruby-lang.org/) - [RubyMine](http://www.jetbrains.com/ruby/) +- [Rust](https://www.rust-lang.org/) - [S3cmd](http://s3tools.org/s3cmd) - [SABnzbd](http://sabnzbd.org/) - [SBCL](http://www.sbcl.org/) @@ -529,6 +606,7 @@ See the [README](doc/README.md) file in the doc directory for more info. - [SHSH Blobs](https://en.wikipedia.org/wiki/SHSH_blob) - [Shuttle](http://fitztrev.github.io/shuttle/) - [SizeUp](http://www.irradiatedsoftware.com/sizeup/) +- [Sizzy](https://sizzy.co/) - [skhd](https://github.com/koekeishiya/skhd/) - [Skim](http://skim-app.sourceforge.net/) - [Skitch](https://evernote.com/skitch/) @@ -539,8 +617,9 @@ See the [README](doc/README.md) file in the doc directory for more info. - [Smooth Mouse](http://smoothmouse.com/) - [Soulver](http://www.acqualia.com/soulver/) - [SourceTree](https://www.sourcetreeapp.com/) -- [SpaceLauncher](https://spacelauncherapp.com/) +- [SpaceLauncher](https://spacelauncherapp.com) - [Spacemacs](https://github.com/syl20bnr/spacemacs) +- [SpaceVim](https://github.com/SpaceVim/SpaceVim) - [Spark](http://www.shadowlab.org/softwares/spark.php) - [Spectacle](https://www.spectacleapp.com/) - [Spectrwm](https://github.com/conformal/spectrwm/wiki) @@ -550,8 +629,10 @@ See the [README](doc/README.md) file in the doc directory for more info. - [Starship](https://starship.rs/) - [Startupizer2](http://appledoc.gentlebytes.com/startupizer/) - [Stata](http://www.stata.com/) +- [Stats](https://github.com/exelban/stats) - [Stay](https://cordlessdog.com/stay/) - [Storyist](http://storyist.com/) +- [Subler](https://subler.org) - [Sublime Merge](https://www.sublimemerge.com/) - [Sublime Text](http://www.sublimetext.com/) - [Subversion](http://subversion.apache.org/) @@ -559,19 +640,23 @@ See the [README](doc/README.md) file in the doc directory for more info. - [Surge](http://surge.run/manual/) - [Sway](https://swaywm.org/) - [Swinsian](http://swinsian.com/) +- [Swish](https://highlyopinionated.co/swish/) +- [SwitchHosts](https://github.com/oldj/SwitchHosts) - [T](http://sferik.github.io/t/) - [TablePlus](https://tableplus.io) -- [TaskPaper](http://www.hogbaysoftware.com/products/taskpaper) +- [TaskPaper](https://www.taskpaper.com) - [Taskwarrior](http://taskwarrior.org/) -- [Teamocil](http://remiprev.github.io/teamocil/) +- [Teamocil](https://github.com/remi/teamocil) - [Telegram for macOS](https://macos.telegram.org) - [Terminal](http://www.apple.com/osx/apps/) - [Terminator](https://launchpad.net/terminator/) - [termite](https://github.com/thestinger/termite) +- [Termux](https://termux.dev/) - [TextExpander](https://smilesoftware.com/textexpander) - [TextMate](http://macromates.com/) - [Textual](http://www.codeux.com/textual/) - [Tig](https://github.com/jonas/tig) +- [Tiles](https://www.sempliva.com/tiles/) - [Tilix](https://github.com/gnunn1/tilix) - [Timeout](https://www.dejal.com/timeout/) - [tint2](https://code.google.com/p/tint2/) @@ -607,6 +692,7 @@ See the [README](doc/README.md) file in the doc directory for more info. - [VLC](http://www.videolan.org/) - [Volt](https://github.com/vim-volt/volt) - [Wakatime](https://wakatime.com/) +- [Warp](https://www.warp.dev) - [waybar](https://github.com/Alexays/Waybar) - [WebStorm](https://www.jetbrains.com/webstorm/) - [Wget](https://www.gnu.org/software/wget/) @@ -619,6 +705,7 @@ See the [README](doc/README.md) file in the doc directory for more info. - [X11](http://www.x.org/) - [Xee](https://theunarchiver.com/xee) - [Xamarin Studio](https://xamarin.com/studio) +- [xbar](https://xbarapp.com/) - [XBindKeys](http://www.nongnu.org/xbindkeys/) - [Xchat](http://xchat.org/) - [Xcode](https://developer.apple.com/xcode/) @@ -631,6 +718,9 @@ See the [README](doc/README.md) file in the doc directory for more info. - [Yummy FTP](http://www.yummysoftware.com/) - [zabbix-cli](https://github.com/usit-gd/zabbix-cli) - [zathura](https://pwmt.org/projects/zathura/) +- [zed](https://zed.dev/) +- [Zoom](http://zoom.com/) +- [zoxide](https://github.com/ajeetdsouza/zoxide) - [Zsh](http://zsh.sourceforge.net/) - [Übersicht](http://tracesof.net/uebersicht/) @@ -674,7 +764,7 @@ And it's [GPL](http://www.gnu.org/licenses/gpl.html), of course. ## What platforms are supported -- OS X +- macOS - GNU/Linux ## What's up with the weird name diff --git a/doc/README.md b/doc/README.md index 879b0d76d..d1aa0f600 100644 --- a/doc/README.md +++ b/doc/README.md @@ -13,7 +13,8 @@ vi ~/.mackup.cfg You can specify the storage type Mackup will use to store your configuration files. -For now you have 4 options: `dropbox`, `google_drive`, `icloud`, `copy` and `file_system`. + +For now, you have 4 options: `dropbox`, `google_drive`, `icloud`, `copy` and `file_system`. If none is specified, Mackup will try to use the default: `dropbox`. With the `dropbox` storage engine, Mackup will automatically figure out your @@ -38,6 +39,9 @@ engine = google_drive ### iCloud +If you choose the `iCloud` storage engine, Mackup will store store your +configuration files in the `~/Library/Mobile\ Documents/com\~apple\~CloudDocs/` folder. + ```ini [storage] engine = icloud @@ -107,6 +111,16 @@ engine = icloud directory = .config/mackup ``` +### Switching Storage + +If you ever change your mind and switch storage solutions after Mackup is +already setup (ex: from `dropbox` to `icloud`), complete the following steps. + +1. Run `mackup uninstall` on all computers +2. Copy your Mackup files to the new storage location +3. Change the storage provider details in your `.mackup.cfg` file (see above) +4. Run `mackup backup` on the main computer and `mackup restore` on all others + ## Applications ### Only sync one or two applications @@ -121,6 +135,9 @@ ssh adium ``` +Use `mackup list` to get a list of valid application names. Don't use fancy +names (with spaces) here. + A [sample](.mackup.cfg) of this file is available in this folder. Just copy it in your home folder: @@ -140,6 +157,9 @@ ssh adium ``` +Use `mackup list` to get a list of valid application names. Don't use fancy +names (with spaces) here. + A [sample](.mackup.cfg) of this file is available in this folder. Just copy it in your home folder: @@ -157,11 +177,13 @@ The stock application configs are in the `mackup/applications` directory. Remember to follow the guidelines in [CONTRIBUTING.md](https://github.com/lra/mackup/blob/master/.github/CONTRIBUTING.md) to get your Pull Request merged faster. -### Add support for an application or any file or directory +### Add support for an application or (almost) any file or directory You can customize the Mackup engine and add support for unsupported applications or just custom files and directories you'd like to sync. +NOTE: Files and directory to be synced should be rooted at $HOME. + Let's say that you'd like to add support for Nethack (config file: `.nethackrc`) and for the `bin` and `.hidden` directories you keep in your home. @@ -178,7 +200,7 @@ touch ~/.mackup/my-files.cfg Edit those files ```bash -$ cat ~/.mackup/nethack.cfg +$ nano ~/.mackup/nethack.cfg [application] name = Nethack @@ -187,7 +209,7 @@ name = Nethack ``` ```bash -$ cat ~/.mackup/my-files.cfg +$ nano ~/.mackup/my-files.cfg [application] name = My personal synced files and dirs diff --git a/doc/configuration_merge_guide.md b/doc/configuration_merge_guide.md index 5e833c34c..25daf61f2 100644 --- a/doc/configuration_merge_guide.md +++ b/doc/configuration_merge_guide.md @@ -10,8 +10,8 @@ Machine B that you would live to move over to Machine A. The problem is that if you use Mackup to send Machine A's bash configuration settings to Machine B, you will permanently lose any configurations on Machine B that you wanted to keep. Mackup obviously has no idea which features you want -to keep and which ones you don't so you'll have to do a little bit of work to -merge the different configuration files yourself before using Mackup. +to keep and which ones you don't, so you'll have to do a bit of work to merge +the different configuration files yourself before using Mackup. ## Step 0: Read Through This Entire Guide First @@ -23,11 +23,11 @@ First, pick the app you wish to keep in sync. Then determine which configuration files will be synced for that application by doing the following: 1. [Install Mackup](./../INSTALL.md) -1. Create a `.mackup.cfg` file in your home directory -1. Add the following two lines to `.mackup.cfg`. Replace **bash** +2. Create a `.mackup.cfg` file in your home directory +3. Add the following two lines to `.mackup.cfg`. Replace **bash** in the example below with the name of your application. -``` +```text [applications_to_sync] bash ``` @@ -35,7 +35,7 @@ bash You can get a list of supported apps by running `mackup list`. 1. Save the file -1. Run the following command: +2. Run the following command: `mackup --dry-run --verbose backup` @@ -64,9 +64,9 @@ from other machines. 1. Create a backup of each machine's configuration files for the app you wish to sync. -1. Choose a machine that will serve as the initial "master". It doesn't really +2. Choose a machine that will serve as the initial "master". It doesn't really matter which one. -1. Edit your configuration files on the master machine so that they +3. Edit your configuration files on the master machine so that they represent the ideal version of the file you wish to distribute out to your other machines. @@ -80,7 +80,7 @@ for your application on all machines. ##### Sample backup commands for Machine A** -``` +```bash mkdir ~/bash_backup cp ~/.bash_profile ~/bash_backup/bash_profile.bak cp ~/.bash_login ~/bash_backup/bash_login.bak @@ -90,7 +90,7 @@ cp ~/.bash_login ~/bash_backup/bash_login.bak ##### Sample backup commands for Machine B -``` +```bash mkdir ~/bash_backup cp ~/.bash_profile ~/bash_backup/bash_profile.bak cp ~/.bash_login ~/bash_backup/bash_login.bak @@ -102,23 +102,23 @@ Machine A will be our master so we now edit the existing configuration files on Machine A. We will use the vim text editor to do this for each of our configuration files: -``` +```bash vim .bash_profile vim .bash_login ``` -When editing these configuration files on Machine A, copy and and paste the settings +When editing these configuration files on Machine A, copy and paste the settings from Machine B that you want to keep. In essence, you are manually merging the -configuratoin files together. Once you are satisfied the configuration files -have all the settings you want and need, you are ready to push out your changes from -the master machine. +configuration files together. Once you are satisfied the configuration files +have all the settings you want and need, you are ready to push out your changes +from the master machine. ### Method 2: Backup Push-Merge Approach 1. Choose a machine that will serve as the initial "master". You'll probably want to use choose the machine you use most and like its configuration settings the best. -1. For each machine that aren't the "master" (i.e. "slaves"), back up all the +2. For each machine that aren't the "master" (i.e. "slaves"), back up all the configuration files for each app that you want to sync. That's it for now. However, there will be more work for you later. @@ -132,7 +132,7 @@ Machine B: ##### Sample backup commands for Machine B** -``` +```bash mkdir ~/bash_backup cp ~/.bash_profile ~/bash_backup/bash_profile.bak cp ~/.bash_login ~/bash_backup/bash_login.bak @@ -160,7 +160,7 @@ If you used Method 1 in Step 2 above, you are done. You may you discover that you didn't quite merge the files exactly the way you wanted but don't worry, that's why you created the configuration file backups. You can grab snippets from these backup configuration files and add them in to the live -configuraton files and then easily push the changes out to all your +configuration files and then easily push the changes out to all your machines using mackup. If you used Method 2, you'll need to merge in new features over time. As you diff --git a/doc/release.md b/doc/release.md index ae6167c9a..1c3bd313a 100644 --- a/doc/release.md +++ b/doc/release.md @@ -1,9 +1,10 @@ # Release - 1. Move all the WIP changes under a new version in the [changelog](../CHANGELOG.md) - 1. Increment the version in [constants.py](../mackup/constants.py) - 1. `git commit` with the message `Mackup X.Y.Z` - 1. `git tag ` - 1. `git push` - 1. `git push --tags` - 1. `make release` +1. Move all the WIP changes under a new version in the [changelog](../CHANGELOG.md) +1. Increment the version in [constants.py](../mackup/constants.py) +1. Increment the version in [pyproject.toml](../pyproject.toml) +1. `git commit` with the message `Mackup X.Y.Z` +1. `git tag ` +1. `git push` +1. `git push --tags` +1. `make release` diff --git a/mackup/application.py b/mackup/application.py index 51d319d9c..7e7522dc2 100644 --- a/mackup/application.py +++ b/mackup/application.py @@ -53,7 +53,7 @@ def backup(self): if exists home/file if home/file is a real file if exists mackup/file - are you sure ? + are you sure? if sure rm mackup/file mv home/file mackup/file @@ -72,7 +72,6 @@ def backup(self): and (os.path.isfile(mackup_filepath) or os.path.isdir(mackup_filepath)) and os.path.samefile(home_filepath, mackup_filepath) ): - if self.verbose: print( "Backing up\n {}\n to\n {} ...".format( @@ -87,7 +86,6 @@ def backup(self): # Check if we already have a backup if os.path.exists(mackup_filepath): - # Name it right if os.path.isfile(mackup_filepath): file_type = "file" @@ -98,11 +96,11 @@ def backup(self): else: raise ValueError("Unsupported file: {}".format(mackup_filepath)) - # Ask the user if he really want to replace it + # Ask the user if he really wants to replace it if utils.confirm( "A {} named {} already exists in the" " backup.\nAre you sure that you want to" - " replace it ?".format(file_type, mackup_filepath) + " replace it?".format(file_type, mackup_filepath) ): # Delete the file in Mackup utils.delete(mackup_filepath) @@ -144,7 +142,7 @@ def restore(self): Algorithm: if exists mackup/file if exists home/file - are you sure ? + are you sure? if sure rm home/file link mackup/file home/file @@ -196,7 +194,7 @@ def restore(self): if utils.confirm( "You already have a {} named {} in your" " home.\nDo you want to replace it with" - " your backup ?".format(file_type, filename) + " your backup?".format(file_type, filename) ): utils.delete(home_filepath) utils.link(mackup_filepath, home_filepath) diff --git a/mackup/applications/act.cfg b/mackup/applications/act.cfg new file mode 100644 index 000000000..6e15b606f --- /dev/null +++ b/mackup/applications/act.cfg @@ -0,0 +1,5 @@ +[application] +name = act + +[configuration_files] +.actrc diff --git a/mackup/applications/activitywatch.cfg b/mackup/applications/activitywatch.cfg new file mode 100644 index 000000000..01d57f2df --- /dev/null +++ b/mackup/applications/activitywatch.cfg @@ -0,0 +1,5 @@ +[application] +name = Activity Watch + +[configuration_files] +Library/Application Support/activitywatch diff --git a/mackup/applications/aerc.cfg b/mackup/applications/aerc.cfg new file mode 100644 index 000000000..5f8f45fcb --- /dev/null +++ b/mackup/applications/aerc.cfg @@ -0,0 +1,5 @@ +[application] +name = aerc + +[configuration_files] +Library/Preferences/aerc diff --git a/mackup/applications/affinity-designer.cfg b/mackup/applications/affinity-designer.cfg new file mode 100644 index 000000000..2835e5eac --- /dev/null +++ b/mackup/applications/affinity-designer.cfg @@ -0,0 +1,5 @@ +[application] +name = Affinity Designer + +[configuration_files] +Library/Containers/Affinity Designer/Data/Library/Application Support/user diff --git a/mackup/applications/affinity-photo.cfg b/mackup/applications/affinity-photo.cfg new file mode 100644 index 000000000..3fe5214ba --- /dev/null +++ b/mackup/applications/affinity-photo.cfg @@ -0,0 +1,5 @@ +[application] +name = Affinity Photo + +[configuration_files] +Library/Containers/Affinity Photo/Data/Library/Application Support/user diff --git a/mackup/applications/affinity-publisher.cfg b/mackup/applications/affinity-publisher.cfg new file mode 100644 index 000000000..09067fe57 --- /dev/null +++ b/mackup/applications/affinity-publisher.cfg @@ -0,0 +1,5 @@ +[application] +name = Affinity Publisher + +[configuration_files] +Library/Containers/Affinity Publisher/Data/Library/Application Support/user diff --git a/mackup/applications/airflow.cfg b/mackup/applications/airflow.cfg new file mode 100644 index 000000000..5524e7912 --- /dev/null +++ b/mackup/applications/airflow.cfg @@ -0,0 +1,6 @@ +[application] +name = Airflow + +[configuration_files] +Library/Preferences/com.bitcavehq.Airflow.plist +Library/Application Support/Airflow diff --git a/mackup/applications/akamai-cli.cfg b/mackup/applications/akamai-cli.cfg new file mode 100644 index 000000000..849d7d751 --- /dev/null +++ b/mackup/applications/akamai-cli.cfg @@ -0,0 +1,5 @@ +[application] +name = Akamai-CLI + +[configuration_files] +.edgerc diff --git a/mackup/applications/alt-tab.cfg b/mackup/applications/alt-tab.cfg new file mode 100644 index 000000000..81a2aac94 --- /dev/null +++ b/mackup/applications/alt-tab.cfg @@ -0,0 +1,5 @@ +[application] +name = AltTab + +[configuration_files] +Library/Preferences/com.lwouis.alt-tab-macos.plist diff --git a/mackup/applications/amethyst.cfg b/mackup/applications/amethyst.cfg index 3865d6649..87b1798cd 100644 --- a/mackup/applications/amethyst.cfg +++ b/mackup/applications/amethyst.cfg @@ -3,3 +3,6 @@ name = Amethyst [configuration_files] Library/Preferences/com.amethyst.Amethyst.plist + +[xdg_configuration_files] +amethyst/amethyst.yml diff --git a/mackup/applications/aria2c.cfg b/mackup/applications/aria2c.cfg index 14c3b30fa..ded172f65 100644 --- a/mackup/applications/aria2c.cfg +++ b/mackup/applications/aria2c.cfg @@ -3,3 +3,6 @@ name = aria2c [configuration_files] .aria2 + +[xdg_configuration_files] +aria2 diff --git a/mackup/applications/asciinema.cfg b/mackup/applications/asciinema.cfg index 2aa216805..de4200b3b 100644 --- a/mackup/applications/asciinema.cfg +++ b/mackup/applications/asciinema.cfg @@ -1,5 +1,5 @@ [application] name = asciinema -[configuration_files] -.asciinema +[xdg_configuration_files] +asciinema diff --git a/mackup/applications/asdf.cfg b/mackup/applications/asdf.cfg index 109799dd3..d57f8dc14 100644 --- a/mackup/applications/asdf.cfg +++ b/mackup/applications/asdf.cfg @@ -3,5 +3,6 @@ name = asdf [configuration_files] .asdfrc -.tool-versions .default-gems +.default-npm-packages +.tool-versions diff --git a/mackup/applications/bartender.cfg b/mackup/applications/bartender.cfg index 3fe09640d..85ce1a68e 100644 --- a/mackup/applications/bartender.cfg +++ b/mackup/applications/bartender.cfg @@ -3,3 +3,5 @@ name = Bartender [configuration_files] Library/Preferences/com.surteesstudios.Bartender.plist +Library/Preferences/com.surteesstudios.Bartender-setapp.plist +Library/Application Support/Bartender/Bartender.BartenderPreferences diff --git a/mackup/applications/base.cfg b/mackup/applications/base.cfg new file mode 100644 index 000000000..7c6fb2c42 --- /dev/null +++ b/mackup/applications/base.cfg @@ -0,0 +1,7 @@ +[application] +name = Base + +[configuration_files] +Library/Containers/uk.co.menial.Base/Data/Library/Preferences/uk.co.menial.Base.plist +# contains license and preference state +Library/Containers/uk.co.menial.Base/Data/Library/Application Support/Base/ diff --git a/mackup/applications/bash-it.cfg b/mackup/applications/bash-it.cfg index 6736e1871..9eca56631 100644 --- a/mackup/applications/bash-it.cfg +++ b/mackup/applications/bash-it.cfg @@ -2,4 +2,4 @@ name = Bash it [configuration_files] -.bash_it +.bash_it/enabled diff --git a/mackup/applications/bat.cfg b/mackup/applications/bat.cfg index 915e9b915..a54e7f761 100644 --- a/mackup/applications/bat.cfg +++ b/mackup/applications/bat.cfg @@ -3,3 +3,5 @@ name = Bat [xdg_configuration_files] bat/config +bat/syntaxes +bat/themes diff --git a/mackup/applications/beets.cfg b/mackup/applications/beets.cfg new file mode 100644 index 000000000..e6af33f98 --- /dev/null +++ b/mackup/applications/beets.cfg @@ -0,0 +1,5 @@ +[application] +name = Beets + +[xdg_configuration_files] +beets/config.yaml diff --git a/mackup/applications/bettertouchtool.cfg b/mackup/applications/bettertouchtool.cfg index 04d3d074c..bcc5ba49c 100644 --- a/mackup/applications/bettertouchtool.cfg +++ b/mackup/applications/bettertouchtool.cfg @@ -8,3 +8,4 @@ Library/Application Support/BetterTouchTool/btt_data_store.v2-shm Library/Application Support/BetterTouchTool/btt_data_store.v2-wal Library/Application Support/BetterTouchTool/bttdata2 Library/Preferences/com.hegenberg.BetterTouchTool.plist +Library/Application Support/BetterTouchTool/bettersnaptool.bttlicense diff --git a/mackup/applications/beyond-compare.cfg b/mackup/applications/beyond-compare.cfg new file mode 100644 index 000000000..404bd8a39 --- /dev/null +++ b/mackup/applications/beyond-compare.cfg @@ -0,0 +1,9 @@ +[application] +name = Beyond Compare + +[configuration_files] +Library/Preferences/com.ScooterSoftware.BeyondCompare.plist +Library/Application Support/Beyond Compare/BC4Key.txt +Library/Application Support/Beyond Compare/BCColors.xml +Library/Application Support/Beyond Compare/BCCommands.xml +Library/Application Support/Beyond Compare/BCPreferences.xml diff --git a/mackup/applications/brave.cfg b/mackup/applications/brave.cfg new file mode 100644 index 000000000..599bcf41b --- /dev/null +++ b/mackup/applications/brave.cfg @@ -0,0 +1,5 @@ +[application] +name = Brave + +[configuration_files] +Library/Application Support/BraveSoftware/Brave-Browser/Default/Preferences diff --git a/mackup/applications/btop.cfg b/mackup/applications/btop.cfg new file mode 100644 index 000000000..e066c25eb --- /dev/null +++ b/mackup/applications/btop.cfg @@ -0,0 +1,5 @@ +[application] +name = btop + +[xdg_configuration_files] +btop diff --git a/mackup/applications/caffeine.cfg b/mackup/applications/caffeine.cfg index ff5a7fee6..a7a5ab7b6 100644 --- a/mackup/applications/caffeine.cfg +++ b/mackup/applications/caffeine.cfg @@ -3,3 +3,4 @@ name = Caffeine [configuration_files] Library/Preferences/com.lightheadsw.Caffeine.plist +Library/Preferences/com.intelliscapesolutions.caffeine.plist diff --git a/mackup/applications/clashx.cfg b/mackup/applications/clashx.cfg new file mode 100644 index 000000000..dc5590547 --- /dev/null +++ b/mackup/applications/clashx.cfg @@ -0,0 +1,5 @@ +[application] +name = ClashX + +[xdg_configuration_files] +clash diff --git a/mackup/applications/cleanshot.cfg b/mackup/applications/cleanshot.cfg new file mode 100644 index 000000000..beeaf04e0 --- /dev/null +++ b/mackup/applications/cleanshot.cfg @@ -0,0 +1,6 @@ +[application] +name = CleanShot + +[configuration_files] +Library/Preferences/com.getcleanshot.app-setapp.plist +Library/Preferences/pl.maketheweb.cleanshotx.plist diff --git a/mackup/applications/clion.cfg b/mackup/applications/clion.cfg index 88e256af5..b6cb99cdf 100644 --- a/mackup/applications/clion.cfg +++ b/mackup/applications/clion.cfg @@ -4,3 +4,5 @@ name = CLion [configuration_files] Library/Preferences/CLion2016.2 Library/Application Support/CLion2016.2 +Library/Application Support/JetBrains/CLion2023.1 +Library/Application Support/JetBrains/CLion2023.2 diff --git a/mackup/applications/clipy.cfg b/mackup/applications/clipy.cfg index 4ab6db013..bcf723cad 100644 --- a/mackup/applications/clipy.cfg +++ b/mackup/applications/clipy.cfg @@ -2,5 +2,4 @@ name = Clipy [configuration_files] -Library/Application Support/Clipy Library/Preferences/com.clipy-app.Clipy.plist diff --git a/mackup/applications/contexts.cfg b/mackup/applications/contexts.cfg new file mode 100644 index 000000000..43fedfaee --- /dev/null +++ b/mackup/applications/contexts.cfg @@ -0,0 +1,5 @@ +[application] +name = Contexts + +[configuration_files] +Library/Preferences/com.contextsformac.Contexts.plist diff --git a/mackup/applications/ctags.cfg b/mackup/applications/ctags.cfg index d2727d579..5d9d3b997 100644 --- a/mackup/applications/ctags.cfg +++ b/mackup/applications/ctags.cfg @@ -3,3 +3,4 @@ name = Ctags [configuration_files] .ctags +.ctags.d diff --git a/mackup/applications/datagrip.cfg b/mackup/applications/datagrip.cfg index d2f3441a0..36b73e089 100644 --- a/mackup/applications/datagrip.cfg +++ b/mackup/applications/datagrip.cfg @@ -13,3 +13,5 @@ Library/Preferences/DataGrip2018.3 Library/Application Support/DataGrip2019.1 Library/Preferences/DataGrip2019.1 Library/Preferences/DataGrip2019.2 +Library/Application Support/JetBrains/DataGrip2023.1 +Library/Application Support/JetBrains/DataGrip2023.2 diff --git a/mackup/applications/docker.cfg b/mackup/applications/docker.cfg index d4fc84ce9..eeb9705ff 100644 --- a/mackup/applications/docker.cfg +++ b/mackup/applications/docker.cfg @@ -2,5 +2,5 @@ name = Docker [configuration_files] -.dockercfg .docker/config.json +.docker/daemon.json diff --git a/mackup/applications/dozer.cfg b/mackup/applications/dozer.cfg new file mode 100644 index 000000000..467e3a4aa --- /dev/null +++ b/mackup/applications/dozer.cfg @@ -0,0 +1,5 @@ +[application] +name = Dozer + +[configuration_files] +Library/Preferences/com.mortennn.Dozer.plist diff --git a/mackup/applications/draft.cfg b/mackup/applications/draft.cfg new file mode 100644 index 000000000..1c28adde9 --- /dev/null +++ b/mackup/applications/draft.cfg @@ -0,0 +1,5 @@ +[application] +name = Draft + +[configuration_files] +.draft/config.toml diff --git a/mackup/applications/espanso.cfg b/mackup/applications/espanso.cfg new file mode 100644 index 000000000..93166c2c3 --- /dev/null +++ b/mackup/applications/espanso.cfg @@ -0,0 +1,9 @@ +[application] +name = espanso + +[configuration_files] +Library/Preferences/espanso +Library/Application Support/espanso + +[xdg_configuration_files] +espanso diff --git a/mackup/applications/factorio.cfg b/mackup/applications/factorio.cfg index 14536bcb2..f33c8d483 100644 --- a/mackup/applications/factorio.cfg +++ b/mackup/applications/factorio.cfg @@ -6,3 +6,4 @@ Library/Application Support/factorio/config Library/Application Support/factorio/mods Library/Application Support/factorio/saves Library/Application Support/factorio/player-data.json +Library/Application Support/factorio/blueprint-storage.dat diff --git a/mackup/applications/fasd.cfg b/mackup/applications/fasd.cfg index 4bcb0321e..e4e84bff7 100644 --- a/mackup/applications/fasd.cfg +++ b/mackup/applications/fasd.cfg @@ -3,3 +3,4 @@ name = fasd [configuration_files] .fasd +.fasdrc diff --git a/mackup/applications/fastscripts.cfg b/mackup/applications/fastscripts.cfg new file mode 100644 index 000000000..059c0a254 --- /dev/null +++ b/mackup/applications/fastscripts.cfg @@ -0,0 +1,6 @@ +[application] +name = FastScripts + +[configuration_files] +Library/Preferences/com.red-sweater.fastscripts.plist +Library/Application Support/FastScripts diff --git a/mackup/applications/finicky.cfg b/mackup/applications/finicky.cfg index 7608aac24..dc8b886dd 100644 --- a/mackup/applications/finicky.cfg +++ b/mackup/applications/finicky.cfg @@ -1,5 +1,5 @@ [application] -name = fincky +name = finicky [configuration_files] .finicky.js diff --git a/mackup/applications/fisher.cfg b/mackup/applications/fisher.cfg index 651146492..c95e43125 100644 --- a/mackup/applications/fisher.cfg +++ b/mackup/applications/fisher.cfg @@ -2,4 +2,4 @@ name = Fisher [xdg_configuration_files] -fish/fishfile +fish/fish_plugins diff --git a/mackup/applications/flake8.cfg b/mackup/applications/flake8.cfg new file mode 100644 index 000000000..14019fbba --- /dev/null +++ b/mackup/applications/flake8.cfg @@ -0,0 +1,8 @@ +[application] +name = flake8 + +[configuration_files] +.flake8 + +[xdg_configuration_files] +flake8 diff --git a/mackup/applications/flameshot.cfg b/mackup/applications/flameshot.cfg new file mode 100644 index 000000000..df42a3e6c --- /dev/null +++ b/mackup/applications/flameshot.cfg @@ -0,0 +1,5 @@ +[application] +name = Flameshot + +[xdg_configuration_files] +flameshot/flameshot.ini diff --git a/mackup/applications/fork.cfg b/mackup/applications/fork.cfg new file mode 100644 index 000000000..6f7a10649 --- /dev/null +++ b/mackup/applications/fork.cfg @@ -0,0 +1,6 @@ +[application] +name = Fork + +[configuration_files] +Library/Application Support/com.DanPristupov.Fork/custom-commands.json +Library/Preferences/com.DanPristupov.Fork.plist diff --git a/mackup/applications/geektool.cfg b/mackup/applications/geektool.cfg index da67ed563..0de55119b 100644 --- a/mackup/applications/geektool.cfg +++ b/mackup/applications/geektool.cfg @@ -6,4 +6,5 @@ Library/Preferences/org.tynsoe.GeekTool.plist Library/Preferences/org.tynsoe.geeklet.file.plist Library/Preferences/org.tynsoe.geeklet.image.plist Library/Preferences/org.tynsoe.geeklet.shell.plist +Library/Preferences/org.tynsoe.geeklet.web.plist Library/Preferences/org.tynsoe.geektool3.plist diff --git a/mackup/applications/ghidra.cfg b/mackup/applications/ghidra.cfg new file mode 100644 index 000000000..f052c909c --- /dev/null +++ b/mackup/applications/ghidra.cfg @@ -0,0 +1,5 @@ +[application] +name = Ghidra + +[configuration_files] +.ghidra diff --git a/mackup/applications/gitfox.cfg b/mackup/applications/gitfox.cfg new file mode 100644 index 000000000..199f097b6 --- /dev/null +++ b/mackup/applications/gitfox.cfg @@ -0,0 +1,7 @@ +[application] +name = GitFox + +[configuration_files] +Library/Preferences/com.bytieful.Gitfox.plist +Library/Preferences/com.bytieful.Gitfox-retail.plist +Library/Preferences/com.bytieful.Gitfox-setapp.plist diff --git a/mackup/applications/goku.cfg b/mackup/applications/goku.cfg new file mode 100644 index 000000000..4c33e547e --- /dev/null +++ b/mackup/applications/goku.cfg @@ -0,0 +1,5 @@ +[application] +name = Goku + +[xdg_configuration_files] +karabiner.edn diff --git a/mackup/applications/goland.cfg b/mackup/applications/goland.cfg index a46cf5643..e5e0f2fdf 100644 --- a/mackup/applications/goland.cfg +++ b/mackup/applications/goland.cfg @@ -2,14 +2,18 @@ name = GoLand [configuration_files] -Library/Preferences/com.jetbrains.gogland-EAP.plist Library/Application Support/Gogland1.0 +Library/Application Support/GoLand2017.3 +Library/Application Support/GoLand2018.1 +Library/Application Support/GoLand2018.2 +Library/Application Support/GoLand2018.3 +Library/Application Support/GoLand2019.2 +Library/Preferences/com.jetbrains.gogland-EAP.plist Library/Preferences/Gogland1.0 Library/Preferences/GoLand2017.3 -Library/Application Support/GoLand2017.3 Library/Preferences/GoLand2018.1 -Library/Application Support/GoLand2018.1 Library/Preferences/GoLand2018.2 -Library/Application Support/GoLand2018.2 Library/Preferences/GoLand2018.3 -Library/Application Support/GoLand2018.3 +Library/Preferences/GoLand2019.2 +Library/Application Support/JetBrains/GoLand2023.1 +Library/Application Support/JetBrains/GoLand2023.2 diff --git a/mackup/applications/handbrake.cfg b/mackup/applications/handbrake.cfg index b9e27dd09..9040592ba 100644 --- a/mackup/applications/handbrake.cfg +++ b/mackup/applications/handbrake.cfg @@ -2,4 +2,4 @@ name = HandBrake [configuration_files] -Library/Application Support/HandBrake/UserPresets.plist +Library/Containers/fr.handbrake.HandBrake/Data/Library/Application Support/HandBrake/UserPresets.json diff --git a/mackup/applications/hocus-focus.cfg b/mackup/applications/hocus-focus.cfg index a0820d335..e516091a8 100644 --- a/mackup/applications/hocus-focus.cfg +++ b/mackup/applications/hocus-focus.cfg @@ -3,6 +3,6 @@ name = Hocus Focus [configuration_files] Library/Preferences/com.uglyapps.HocusFocus.plist -Library/Application Support/com.uglyapps.HocusFocusHocusFocus.db -Library/Application Support/com.uglyapps.HocusFocusHocusFocus.db-shm -Library/Application Support/com.uglyapps.HocusFocusHocusFocus.db-wal +Library/Application Support/com.uglyapps.HocusFocus/HocusFocus.db +Library/Application Support/com.uglyapps.HocusFocus/HocusFocus.db-shm +Library/Application Support/com.uglyapps.HocusFocus/HocusFocus.db-wal diff --git a/mackup/applications/homebrew.cfg b/mackup/applications/homebrew.cfg new file mode 100644 index 000000000..0a53f033a --- /dev/null +++ b/mackup/applications/homebrew.cfg @@ -0,0 +1,6 @@ +[application] +name = Homebrew + +[configuration_files] +.Brewfile +Brewfile diff --git a/mackup/applications/idapro.cfg b/mackup/applications/idapro.cfg new file mode 100644 index 000000000..332b892d3 --- /dev/null +++ b/mackup/applications/idapro.cfg @@ -0,0 +1,5 @@ +[application] +name = IDA Pro + +[configuration_files] +.idapro diff --git a/mackup/applications/intellijidea.cfg b/mackup/applications/intellijidea.cfg index 2024b5b4b..fb42e8dba 100644 --- a/mackup/applications/intellijidea.cfg +++ b/mackup/applications/intellijidea.cfg @@ -3,64 +3,79 @@ name = IntelliJ IDEA [configuration_files] .IntelliJIdea12/config -Library/Application Support/IntelliJIdea12 -Library/Preferences/IntelliJIdea12 .IntelliJIdea13/config -Library/Application Support/IntelliJIdea13 -Library/Preferences/IntelliJIdea13 .IntelliJIdea14/config -Library/Application Support/IntelliJIdea14 -Library/Preferences/IntelliJIdea14 .IntelliJIdea15/config -Library/Application Support/IntelliJIdea15 -Library/Preferences/IntelliJIdea15 +IdeaIC2018.2/config +IdeaIC2018.3/config +IdeaIC2019.1/config +IdeaIC2019.2/config +IdeaIC2019.3/config IntelliJIdea2016.1/config -Library/Application Support/IntelliJIdea2016.1 -Library/Preferences/IntelliJIdea2016.1 -Library/Application Support/IdeaIC2016.1 -Library/Preferences/IdeaIC2016.1 -Library/Preferences/IntelliJIdea2016.2 -Library/Application Support/IntelliJIdea2016.2 IntelliJIdea2016.2/config -Library/Preferences/IntelliJIdea2016.3 -Library/Application Support/IntelliJIdea2016.3 IntelliJIdea2016.3/config -Library/Preferences/IntelliJIdea2017.1 -Library/Application Support/IntelliJIdea2017.1 IntelliJIdea2017.1/config -Library/Preferences/IntelliJIdea2017.2 -Library/Application Support/IntelliJIdea2017.2 IntelliJIdea2017.2/config -Library/Preferences/IntelliJIdea2017.3 -Library/Application Support/IntelliJIdea2017.3 IntelliJIdea2017.3/config -Library/Preferences/IntelliJIdea2018.1 -Library/Application Support/IntelliJIdea2018.1 IntelliJIdea2018.1/config -Library/Preferences/IdeaIC2018.2 -Library/Application Support/IdeaIC2018.2 -IdeaIC2018.2/config -Library/Preferences/IntelliJIdea2018.2 -Library/Application Support/IntelliJIdea2018.2 IntelliJIdea2018.2/config -Library/Preferences/IdeaIC2018.3 -Library/Application Support/IdeaIC2018.3 -IdeaIC2018.3/config -Library/Preferences/IntelliJIdea2018.3 -Library/Application Support/IntelliJIdea2018.3 IntelliJIdea2018.3/config -Library/Preferences/IdeaIC2019.1 +IntelliJIdea2019.1/config +IntelliJIdea2019.2/config +IntelliJIdea2019.3/config +Library/Application Support/IdeaIC2016.1 +Library/Application Support/IdeaIC2017.1 +Library/Application Support/IdeaIC2017.2 +Library/Application Support/IdeaIC2017.3 +Library/Application Support/IdeaIC2018.2 +Library/Application Support/IdeaIC2018.3 Library/Application Support/IdeaIC2019.1 -IdeaIC2019.1/config -Library/Preferences/IntelliJIdea2019.1 +Library/Application Support/IntelliJIdea12 +Library/Application Support/IntelliJIdea13 +Library/Application Support/IntelliJIdea14 +Library/Application Support/IntelliJIdea15 +Library/Application Support/IntelliJIdea2016.1 +Library/Application Support/IntelliJIdea2016.2 +Library/Application Support/IntelliJIdea2016.3 +Library/Application Support/IntelliJIdea2017.1 +Library/Application Support/IntelliJIdea2017.2 +Library/Application Support/IntelliJIdea2017.3 +Library/Application Support/IntelliJIdea2018.1 +Library/Application Support/IntelliJIdea2018.2 +Library/Application Support/IntelliJIdea2018.3 Library/Application Support/IntelliJIdea2019.1 -IntelliJIdea2019.1/config -IdeaIC2019.2/config -Library/Preferences/IntelliJIdea2019.2 Library/Application Support/IntelliJIdea2019.2 -IntelliJIdea2019.2/config -IdeaIC2019.3/config -Library/Preferences/IntelliJIdea2019.3 Library/Application Support/IntelliJIdea2019.3 -IntelliJIdea2019.3/config Library/Application Support/JetBrains/IntelliJIdea2020.1 +Library/Application Support/JetBrains/IntelliJIdea2020.2 +Library/Application Support/JetBrains/IntelliJIdea2020.3 +Library/Application Support/JetBrains/IntelliJIdea2021.1 +Library/Application Support/JetBrains/IntelliJIdea2022.1 +Library/Application Support/JetBrains/IntelliJIdea2022.2 +Library/Application Support/JetBrains/IntelliJIdea2023.1 +Library/Application Support/JetBrains/IntelliJIdea2023.2 +Library/Preferences/IdeaIC2016.1 +Library/Preferences/IdeaIC2016.2 +Library/Preferences/IdeaIC2016.3 +Library/Preferences/IdeaIC2017.1 +Library/Preferences/IdeaIC2017.2 +Library/Preferences/IdeaIC2017.3 +Library/Preferences/IdeaIC2018.2 +Library/Preferences/IdeaIC2018.3 +Library/Preferences/IdeaIC2019.1 +Library/Preferences/IntelliJIdea12 +Library/Preferences/IntelliJIdea13 +Library/Preferences/IntelliJIdea14 +Library/Preferences/IntelliJIdea15 +Library/Preferences/IntelliJIdea2016.1 +Library/Preferences/IntelliJIdea2016.2 +Library/Preferences/IntelliJIdea2016.3 +Library/Preferences/IntelliJIdea2017.1 +Library/Preferences/IntelliJIdea2017.2 +Library/Preferences/IntelliJIdea2017.3 +Library/Preferences/IntelliJIdea2018.1 +Library/Preferences/IntelliJIdea2018.2 +Library/Preferences/IntelliJIdea2018.3 +Library/Preferences/IntelliJIdea2019.1 +Library/Preferences/IntelliJIdea2019.2 +Library/Preferences/IntelliJIdea2019.3 diff --git a/mackup/applications/iterm2.cfg b/mackup/applications/iterm2.cfg index 02e826fe3..bb6453e76 100644 --- a/mackup/applications/iterm2.cfg +++ b/mackup/applications/iterm2.cfg @@ -3,3 +3,6 @@ name = iTerm2 [configuration_files] Library/Preferences/com.googlecode.iterm2.plist + +[xdg_configuration_files] +iterm2/AppSupport/DynamicProfiles diff --git a/mackup/applications/k9s.cfg b/mackup/applications/k9s.cfg new file mode 100644 index 000000000..5a5f29fe0 --- /dev/null +++ b/mackup/applications/k9s.cfg @@ -0,0 +1,6 @@ +[application] +name = k9s + +[xdg_configuration_files] +k9s/config.yml +k9s/skin.yml diff --git a/mackup/applications/keepassxc.cfg b/mackup/applications/keepassxc.cfg new file mode 100644 index 000000000..e68a462a3 --- /dev/null +++ b/mackup/applications/keepassxc.cfg @@ -0,0 +1,6 @@ +[application] +name = KeePassXC + +[configuration_files] +Library/Preferences/org.keepassxc.keepassxc.plist +Library/Application Support/keepassxc/keepassxc.ini diff --git a/mackup/applications/krew.cfg b/mackup/applications/krew.cfg new file mode 100644 index 000000000..11e530e2e --- /dev/null +++ b/mackup/applications/krew.cfg @@ -0,0 +1,5 @@ +[application] +name = Krew + +[configuration_files] +.krew diff --git a/mackup/applications/lazygit.cfg b/mackup/applications/lazygit.cfg new file mode 100644 index 000000000..0488a8afc --- /dev/null +++ b/mackup/applications/lazygit.cfg @@ -0,0 +1,9 @@ +[application] +name = lazygit + +[configuration_files] +Library/Application Support/jesseduffield/lazygit/config.yml +Library/Application Support/lazygit/config.yml + +[xdg_configuration_files] +lazygit/config.yml diff --git a/mackup/applications/lf.cfg b/mackup/applications/lf.cfg new file mode 100644 index 000000000..21506795b --- /dev/null +++ b/mackup/applications/lf.cfg @@ -0,0 +1,5 @@ +[application] +name = lf + +[xdg_configuration_files] +lf/lfrc diff --git a/mackup/applications/lightroom-classic.cfg b/mackup/applications/lightroom-classic.cfg new file mode 100644 index 000000000..94a7a42af --- /dev/null +++ b/mackup/applications/lightroom-classic.cfg @@ -0,0 +1,5 @@ +[application] +name = Adobe Lightroom Classic + +[configuration_files] +Library/Preferences/com.adobe.LightroomClassicCC7.plist diff --git a/mackup/applications/littlesnitch.cfg b/mackup/applications/littlesnitch.cfg index d3ef2509f..f952d2abb 100644 --- a/mackup/applications/littlesnitch.cfg +++ b/mackup/applications/littlesnitch.cfg @@ -3,6 +3,7 @@ name = LittleSnitch [configuration_files] Library/Preferences/at.obdev.LittleSnitchNetworkMonitor.plist +Library/Preferences/at.obdev.littlesnitch.networkmonitor.plist Library/Application Support/Little Snitch/rules.usr.xpl Library/Application Support/Little Snitch/configuration.xpl Library/Application Support/Little Snitch/configuration.user.xpl diff --git a/mackup/applications/logitech-options.cfg b/mackup/applications/logitech-options.cfg new file mode 100644 index 000000000..751d1ec15 --- /dev/null +++ b/mackup/applications/logitech-options.cfg @@ -0,0 +1,5 @@ +[application] +name = Logitech Options + +[configuration_files] +Library/Preferences/com.logitech.manager.setting.ffff.plist diff --git a/mackup/applications/logseq.cfg b/mackup/applications/logseq.cfg new file mode 100644 index 000000000..aaf5b8ce7 --- /dev/null +++ b/mackup/applications/logseq.cfg @@ -0,0 +1,5 @@ +[application] +name = Logseq + +[configuration_files] +.logseq diff --git a/mackup/applications/loopback.cfg b/mackup/applications/loopback.cfg new file mode 100644 index 000000000..930dc5e53 --- /dev/null +++ b/mackup/applications/loopback.cfg @@ -0,0 +1,6 @@ +[application] +name = Loopback + +[configuration_files] +Library/Preferences/com.rogueamoeba.Loopback.plist +Library/Application Support/Loopback/Devices.plist diff --git a/mackup/applications/lunarvim.cfg b/mackup/applications/lunarvim.cfg new file mode 100644 index 000000000..9cd77d474 --- /dev/null +++ b/mackup/applications/lunarvim.cfg @@ -0,0 +1,5 @@ +[application] +name = LunarVim + +[xdg_configuration_files] +lvim/config.lua diff --git a/mackup/applications/mail.cfg b/mackup/applications/mail.cfg new file mode 100644 index 000000000..cd75971f7 --- /dev/null +++ b/mackup/applications/mail.cfg @@ -0,0 +1,5 @@ +[application] +name = Mail + +[configuration_files] +Library/Preferences/com.apple.mail.plist diff --git a/mackup/applications/mailmate.cfg b/mackup/applications/mailmate.cfg index a49ed2c87..c122a2c17 100644 --- a/mackup/applications/mailmate.cfg +++ b/mackup/applications/mailmate.cfg @@ -10,3 +10,4 @@ Library/Application Support/Mailmate/Signatures.plist Library/Application Support/Mailmate/Sources.plist Library/Application Support/Mailmate/Submission.plist Library/Application Support/Mailmate/Tags.plist +Library/Application Support/Mailmate/Resources/KeyBindings diff --git a/mackup/applications/maven.cfg b/mackup/applications/maven.cfg index 50e0dc4e3..fa44fd0a1 100644 --- a/mackup/applications/maven.cfg +++ b/mackup/applications/maven.cfg @@ -2,5 +2,6 @@ name = Maven [configuration_files] +.m2/settings-security.xml .m2/settings.xml .m2/toolchains.xml diff --git a/mackup/applications/mendeley.cfg b/mackup/applications/mendeley.cfg new file mode 100644 index 000000000..b33797eb7 --- /dev/null +++ b/mackup/applications/mendeley.cfg @@ -0,0 +1,5 @@ +[application] +name = Mendelay Desktop + +[configuration_files] +Library/Application Support/Mendeley Desktop diff --git a/mackup/applications/mosaic.cfg b/mackup/applications/mosaic.cfg new file mode 100644 index 000000000..51d1bfd5a --- /dev/null +++ b/mackup/applications/mosaic.cfg @@ -0,0 +1,5 @@ +[application] +name = Mosaic + +[configuration_files] +Library/Application Support/com.lightpillar.Mosaic/MosaicCoreData.storedata diff --git a/mackup/applications/mpv.cfg b/mackup/applications/mpv.cfg index c6f993541..e8151585a 100644 --- a/mackup/applications/mpv.cfg +++ b/mackup/applications/mpv.cfg @@ -10,5 +10,6 @@ name = MPV mpv/config mpv/mpv.conf mpv/scripts +mpv/script-opts mpv/input.conf mpv/watch_later diff --git a/mackup/applications/mtmr.cfg b/mackup/applications/mtmr.cfg new file mode 100644 index 000000000..04691eafc --- /dev/null +++ b/mackup/applications/mtmr.cfg @@ -0,0 +1,5 @@ +[application] +name = mtmr + +[configuration_files] +Library/Application Support/MTMR/items.json diff --git a/mackup/applications/mumu.cfg b/mackup/applications/mumu.cfg new file mode 100644 index 000000000..1a388a63b --- /dev/null +++ b/mackup/applications/mumu.cfg @@ -0,0 +1,5 @@ +[application] +name = Mumu + +[configuration_files] +Library/Application Support/Mumu diff --git a/mackup/applications/mutespotifyads.cfg b/mackup/applications/mutespotifyads.cfg new file mode 100644 index 000000000..f8d3b8614 --- /dev/null +++ b/mackup/applications/mutespotifyads.cfg @@ -0,0 +1,5 @@ +[application] +name = MuteSpotifyAds + +[configuration_files] +Library/Preferences/de.simonmeusel.MuteSpotifyAds.plist diff --git a/mackup/applications/neofetch.cfg b/mackup/applications/neofetch.cfg new file mode 100644 index 000000000..3c52c7644 --- /dev/null +++ b/mackup/applications/neofetch.cfg @@ -0,0 +1,5 @@ +[application] +name = Neofetch + +[xdg_configuration_files] +neofetch/config.conf diff --git a/mackup/applications/neovim.cfg b/mackup/applications/neovim.cfg index 01f0ce9f5..424df0fcc 100644 --- a/mackup/applications/neovim.cfg +++ b/mackup/applications/neovim.cfg @@ -7,3 +7,12 @@ name = neovim [xdg_configuration_files] nvim/init.vim +nvim/init.lua +nvim/lua +nvim/colors +nvim/compiler +nvim/ftplugin +nvim/ftdetect +nvim/indent +nvim/plugin +nvim/syntax diff --git a/mackup/applications/netlify.cfg b/mackup/applications/netlify.cfg new file mode 100644 index 000000000..83d4b0e30 --- /dev/null +++ b/mackup/applications/netlify.cfg @@ -0,0 +1,5 @@ +[application] +name = Netlify + +[configuration_files] +.netlify/config.json diff --git a/mackup/applications/ni.cfg b/mackup/applications/ni.cfg new file mode 100644 index 000000000..fb635404d --- /dev/null +++ b/mackup/applications/ni.cfg @@ -0,0 +1,5 @@ +[application] +name = ni + +[configuration_files] +.nirc diff --git a/mackup/applications/notion-enhancer.cfg b/mackup/applications/notion-enhancer.cfg new file mode 100644 index 000000000..78a892afd --- /dev/null +++ b/mackup/applications/notion-enhancer.cfg @@ -0,0 +1,5 @@ +[application] +name = notion-enhancer + +[configuration_files] +.notion-enhancer diff --git a/mackup/applications/nova.cfg b/mackup/applications/nova.cfg new file mode 100644 index 000000000..16970eb58 --- /dev/null +++ b/mackup/applications/nova.cfg @@ -0,0 +1,5 @@ +[application] +name = Nova + +[configuration_files] +Library/Preferences/com.panic.Nova.plist diff --git a/mackup/applications/npmrc.cfg b/mackup/applications/npmrc.cfg new file mode 100644 index 000000000..2ed1e1c89 --- /dev/null +++ b/mackup/applications/npmrc.cfg @@ -0,0 +1,5 @@ +[application] +name = npmrc + +[configuration_files] +.npmrcs diff --git a/mackup/applications/nslogger.cfg b/mackup/applications/nslogger.cfg new file mode 100644 index 000000000..56932ecae --- /dev/null +++ b/mackup/applications/nslogger.cfg @@ -0,0 +1,5 @@ +[application] +name = NSLogger + +[configuration_files] +Library/Preferences/com.florentpillet.NSLogger.plist diff --git a/mackup/applications/nuget.cfg b/mackup/applications/nuget.cfg new file mode 100644 index 000000000..317651a84 --- /dev/null +++ b/mackup/applications/nuget.cfg @@ -0,0 +1,5 @@ +[application] +name = nuget + +[configuration_files] +.nuget/NuGet/NuGet.Config diff --git a/mackup/applications/nushell.cfg b/mackup/applications/nushell.cfg new file mode 100644 index 000000000..782260e3d --- /dev/null +++ b/mackup/applications/nushell.cfg @@ -0,0 +1,10 @@ +[application] +name = Nushell + +[configuration_files] +Library/Application Support/nushell/env.nu +Library/Application Support/nushell/config.nu + +[xdg_configuration_files] +nushell/config.nu +nushell/env.nu diff --git a/mackup/applications/obs.cfg b/mackup/applications/obs.cfg new file mode 100644 index 000000000..48b0e5036 --- /dev/null +++ b/mackup/applications/obs.cfg @@ -0,0 +1,7 @@ +[application] +name = OBS + +[configuration_files] +Library/Preferences/com.obsproject.obs-studio.plist +Library/Application Support/obs-studio/global.ini +Library/Application Support/obs-studio/basic diff --git a/mackup/applications/oci.cfg b/mackup/applications/oci.cfg new file mode 100644 index 000000000..3b144903c --- /dev/null +++ b/mackup/applications/oci.cfg @@ -0,0 +1,6 @@ +[application] +name = Oracle Cloud Infrastructure CLI + +[configuration_files] +.oci/config +.oci/oci_cli_rc diff --git a/mackup/applications/ogdesign-eagle.cfg b/mackup/applications/ogdesign-eagle.cfg new file mode 100644 index 000000000..9fba0defe --- /dev/null +++ b/mackup/applications/ogdesign-eagle.cfg @@ -0,0 +1,5 @@ +[application] +name = Eagle (ogdesign) + +[configuration_files] +Library/Application Support/Eagle/Settings diff --git a/mackup/applications/oh-my-zsh.cfg b/mackup/applications/oh-my-zsh.cfg deleted file mode 100644 index 37e8aa59d..000000000 --- a/mackup/applications/oh-my-zsh.cfg +++ /dev/null @@ -1,6 +0,0 @@ -[application] -name = Oh My Zsh - -[configuration_files] -.oh-my-zsh/custom -.oh-my-zsh/completions diff --git a/mackup/applications/p10k.cfg b/mackup/applications/p10k.cfg new file mode 100644 index 000000000..a5e377bc5 --- /dev/null +++ b/mackup/applications/p10k.cfg @@ -0,0 +1,5 @@ +[application] +name = Powerlevel10k + +[configuration_files] +.p10k.zsh diff --git a/mackup/applications/phpstorm.cfg b/mackup/applications/phpstorm.cfg index 2913e82d6..9977d4298 100644 --- a/mackup/applications/phpstorm.cfg +++ b/mackup/applications/phpstorm.cfg @@ -2,6 +2,17 @@ name = PhpStorm [configuration_files] +Library/Application Support/JetBrains/PhpStorm2020.1 +Library/Application Support/JetBrains/PhpStorm2020.2 +Library/Application Support/JetBrains/PhpStorm2020.3 +Library/Application Support/JetBrains/PhpStorm2021.1 +Library/Application Support/JetBrains/PhpStorm2021.2 +Library/Application Support/JetBrains/PhpStorm2021.3 +Library/Application Support/JetBrains/PhpStorm2022.1 +Library/Application Support/JetBrains/PhpStorm2022.2 +Library/Application Support/JetBrains/PhpStorm2022.3 +Library/Application Support/JetBrains/PhpStorm2023.1 +Library/Application Support/JetBrains/PhpStorm2023.2 Library/Application Support/PhpStorm2016.1 Library/Application Support/PhpStorm2016.2 Library/Application Support/PhpStorm2016.3 diff --git a/mackup/applications/picgo.cfg b/mackup/applications/picgo.cfg new file mode 100644 index 000000000..23d3c307f --- /dev/null +++ b/mackup/applications/picgo.cfg @@ -0,0 +1,5 @@ +[application] +name = PicGo + +[configuration_files] +Library/Application Support/picgo/data.json diff --git a/mackup/applications/planner.cfg b/mackup/applications/planner.cfg new file mode 100644 index 000000000..ed5863382 --- /dev/null +++ b/mackup/applications/planner.cfg @@ -0,0 +1,6 @@ +[application] +name = Planner + +[configuration_files] +.var/app/com.github.alainm23.planner/config +.var/app/com.github.alainm23.planner/data diff --git a/mackup/applications/poetry.cfg b/mackup/applications/poetry.cfg index c0cb2c318..459105a72 100644 --- a/mackup/applications/poetry.cfg +++ b/mackup/applications/poetry.cfg @@ -2,4 +2,8 @@ name = poetry [configuration_files] -Library/Application Support/pypoetry/config.cfg +Library/Application Support/pypoetry/config.toml +Library/Preferences/pypoetry/config.toml + +[xdg_configuration_files] +pypoetry/config.toml diff --git a/mackup/applications/polybar.cfg b/mackup/applications/polybar.cfg new file mode 100644 index 000000000..7798d4ae0 --- /dev/null +++ b/mackup/applications/polybar.cfg @@ -0,0 +1,11 @@ +[application] +name = polybar + +[configuration_files] +.polybar/config +.polybar/launch.sh + +[xdg_configuration_files] +polybar/config +polybar/launch.sh +polybar/scripts diff --git a/mackup/applications/proxyman.cfg b/mackup/applications/proxyman.cfg new file mode 100644 index 000000000..424a882cd --- /dev/null +++ b/mackup/applications/proxyman.cfg @@ -0,0 +1,8 @@ +[application] +name = Proxyman + +[configuration_files] +Library/Application Support/com.proxyman.NSProxy +Library/Preferences/com.proxyman.NSProxy.plist +Library/Application Support/com.proxyman.NSProxy-setapp +Library/Preferences/com.proxyman.NSProxy-setapp.plist diff --git a/mackup/applications/prusa-slicer.cfg b/mackup/applications/prusa-slicer.cfg new file mode 100644 index 000000000..f388c1c22 --- /dev/null +++ b/mackup/applications/prusa-slicer.cfg @@ -0,0 +1,5 @@ +[application] +name = PrusaSlicer + +[xdg_configuration_files] +PrusaSlicer diff --git a/mackup/applications/psysh.cfg b/mackup/applications/psysh.cfg new file mode 100644 index 000000000..41542e87f --- /dev/null +++ b/mackup/applications/psysh.cfg @@ -0,0 +1,5 @@ +[application] +name = PsySH + +[xdg_configuration_files] +psysh/config.php diff --git a/mackup/applications/pycharm.cfg b/mackup/applications/pycharm.cfg index d0946853d..c6fbaf6f7 100644 --- a/mackup/applications/pycharm.cfg +++ b/mackup/applications/pycharm.cfg @@ -2,23 +2,28 @@ name = PyCharm [configuration_files] -.PyCharm40/config -Library/Application Support/PyCharm40 -Library/Preferences/PyCharm40 -.PyCharm50/config -Library/Application Support/PyCharm50 -Library/Preferences/PyCharm50 .PyCharm2016.1/config .PyCharm2016.2/config +.PyCharm40/config +.PyCharm50/config +.PyCharmCE2019.3/config +Library/Application Support/JetBrains/PyCharm2020.1 +Library/Application Support/JetBrains/PyCharm2020.2 +Library/Application Support/JetBrains/PyCharm2020.3 +Library/Application Support/JetBrains/PyCharm2020.4 +Library/Application Support/JetBrains/PyCharmCE2020.1 +Library/Application Support/JetBrains/PyCharm2023.1 +Library/Application Support/JetBrains/PyCharm2023.2 +Library/Application Support/PyCharm Library/Application Support/PyCharm2016.1 Library/Application Support/PyCharm2016.2 +Library/Application Support/PyCharm2019.2 +Library/Application Support/PyCharm2019.3 +Library/Application Support/PyCharm40 +Library/Application Support/PyCharm50 Library/Preferences/PyCharm2016.1 Library/Preferences/PyCharm2016.2 Library/Preferences/PyCharm2019.2 Library/Preferences/PyCharm2019.3 -Library/Application Support/PyCharm2019.2 -Library/Application Support/PyCharm2019.3 -.PyCharmCE2019.3/config -Library/Application Support/JetBrains/PyCharm2020.1 -Library/Application Support/JetBrains/PyCharmCE2020.1 -Library/Application Support/PyCharm +Library/Preferences/PyCharm40 +Library/Preferences/PyCharm50 diff --git a/mackup/applications/qv2ray.cfg b/mackup/applications/qv2ray.cfg new file mode 100644 index 000000000..25721f229 --- /dev/null +++ b/mackup/applications/qv2ray.cfg @@ -0,0 +1,6 @@ +[application] +name = Qv2ray + +[configuration_files] +Library/Preferences/qv2ray/Qv2ray.conf +Library/Preferences/qv2ray/plugin_settings diff --git a/mackup/applications/raycast.cfg b/mackup/applications/raycast.cfg new file mode 100644 index 000000000..767ed4d16 --- /dev/null +++ b/mackup/applications/raycast.cfg @@ -0,0 +1,5 @@ +[application] +name = Raycast + +[configuration_files] +Library/Preferences/com.raycast.macos.plist diff --git a/mackup/applications/rbenv.cfg b/mackup/applications/rbenv.cfg new file mode 100644 index 000000000..75d007814 --- /dev/null +++ b/mackup/applications/rbenv.cfg @@ -0,0 +1,5 @@ +[application] +name = rbenv + +[configuration_files] +.rbenv/default_gems diff --git a/mackup/applications/remote-desktop-manager.cfg b/mackup/applications/remote-desktop-manager.cfg new file mode 100644 index 000000000..372542c9d --- /dev/null +++ b/mackup/applications/remote-desktop-manager.cfg @@ -0,0 +1,6 @@ +[application] +name = Remote Desktop Manager + +[configuration_files] +Library/Application Support/com.devolutions.remotedesktopmanager.free/Connections.db +Library/Application Support/com.devolutions.remotedesktopmanager/Connections.db diff --git a/mackup/applications/rocket.cfg b/mackup/applications/rocket.cfg new file mode 100644 index 000000000..b1e402c0d --- /dev/null +++ b/mackup/applications/rocket.cfg @@ -0,0 +1,6 @@ +[application] +name = Rocket + +[configuration_files] +Library/Preferences/net.matthewpalmer.Rocket.plist +Library/Application Support/Rocket diff --git a/mackup/applications/rubitrack5.cfg b/mackup/applications/rubitrack5.cfg new file mode 100644 index 000000000..f78e19929 --- /dev/null +++ b/mackup/applications/rubitrack5.cfg @@ -0,0 +1,5 @@ +[application] +name = rubiTrack 5 + +[configuration_files] +Library/Preferences/com.shiftoption.rubitrack5.pro.plist diff --git a/mackup/applications/rubymine.cfg b/mackup/applications/rubymine.cfg index 7a996e937..962114c19 100644 --- a/mackup/applications/rubymine.cfg +++ b/mackup/applications/rubymine.cfg @@ -22,3 +22,5 @@ Library/Application Support/RubyMine2017.3 Library/Preferences/RubyMine2017.3 Library/Application Support/RubyMine2018.1 Library/Preferences/RubyMine2018.1 +Library/Application Support/JetBrains/RubyMine2023.1 +Library/Application Support/JetBrains/RubyMine2023.2 diff --git a/mackup/applications/rust.cfg b/mackup/applications/rust.cfg new file mode 100644 index 000000000..feea6e031 --- /dev/null +++ b/mackup/applications/rust.cfg @@ -0,0 +1,5 @@ +[application] +name = Rust + +[configuration_files] +.cargo/config diff --git a/mackup/applications/sequel-pro.cfg b/mackup/applications/sequel-pro.cfg index 76361d66c..81eb3be19 100644 --- a/mackup/applications/sequel-pro.cfg +++ b/mackup/applications/sequel-pro.cfg @@ -3,4 +3,6 @@ name = Sequel Pro [configuration_files] Library/Application Support/Sequel Pro/Data +Library/Application Support/Sequel Pro/Bundles +Library/Application Support/Sequel Pro/Themes Library/Preferences/com.sequelpro.SequelPro.plist diff --git a/mackup/applications/sizzy.cfg b/mackup/applications/sizzy.cfg new file mode 100644 index 000000000..ab27f7e0e --- /dev/null +++ b/mackup/applications/sizzy.cfg @@ -0,0 +1,6 @@ +[application] +name = Sizzy + +[configuration_files] +Library/Application Support/Sizzy/config.json +Library/Application Support/Sizzy/window-state.json diff --git a/mackup/applications/skhd.cfg b/mackup/applications/skhd.cfg index 064ffd304..74f116aef 100644 --- a/mackup/applications/skhd.cfg +++ b/mackup/applications/skhd.cfg @@ -3,3 +3,6 @@ name = skhd [configuration_files] .skhdrc + +[xdg_configuration_files] +skhd/skhdrc diff --git a/mackup/applications/spacevim.cfg b/mackup/applications/spacevim.cfg new file mode 100644 index 000000000..33dd700ab --- /dev/null +++ b/mackup/applications/spacevim.cfg @@ -0,0 +1,8 @@ +[application] +name = SpaceVim + +[configuration_files] +# Default configuration directory +.SpaceVim.d +# Default configuration file; could be this specific or backup the config directory +# .SpaceVim.d/init.toml diff --git a/mackup/applications/stats.cfg b/mackup/applications/stats.cfg new file mode 100644 index 000000000..8f8820ecf --- /dev/null +++ b/mackup/applications/stats.cfg @@ -0,0 +1,5 @@ +[application] +name = Stats + +[configuration_files] +Library/Preferences/eu.exelban.Stats.plist diff --git a/mackup/applications/streamdeck.cfg b/mackup/applications/streamdeck.cfg new file mode 100644 index 000000000..41436f081 --- /dev/null +++ b/mackup/applications/streamdeck.cfg @@ -0,0 +1,5 @@ +[application] +name = Elgato StreamDeck + +[configuration_files] +Library/Application Support/com.elgato.StreamDeck diff --git a/mackup/applications/subler.cfg b/mackup/applications/subler.cfg new file mode 100644 index 000000000..64593a6fa --- /dev/null +++ b/mackup/applications/subler.cfg @@ -0,0 +1,5 @@ +[application] +name = Subler + +[configuration_files] +Library/Application Support/Subler diff --git a/mackup/applications/sublime-text.cfg b/mackup/applications/sublime-text.cfg new file mode 100644 index 000000000..2728a27f1 --- /dev/null +++ b/mackup/applications/sublime-text.cfg @@ -0,0 +1,9 @@ +[application] +name = Sublime Text + +[configuration_files] +# Based on https://packagecontrol.io/docs/syncing +Library/Application Support/Sublime Text/Packages/User + +[xdg_configuration_files] +sublime-text/Packages/User diff --git a/mackup/applications/swish.cfg b/mackup/applications/swish.cfg new file mode 100644 index 000000000..575109a74 --- /dev/null +++ b/mackup/applications/swish.cfg @@ -0,0 +1,5 @@ +[application] +name = Swish + +[configuration_files] +Library/Preferences/co.highlyopinionated.swish.plist diff --git a/mackup/applications/switchhosts.cfg b/mackup/applications/switchhosts.cfg new file mode 100644 index 000000000..d88b7c9fe --- /dev/null +++ b/mackup/applications/switchhosts.cfg @@ -0,0 +1,5 @@ +[application] +name = SwitchHosts + +[configuration_files] +.SwitchHosts/data/collection/hosts diff --git a/mackup/applications/tableplus.cfg b/mackup/applications/tableplus.cfg index b35733094..3a35979d3 100644 --- a/mackup/applications/tableplus.cfg +++ b/mackup/applications/tableplus.cfg @@ -2,6 +2,8 @@ name = TablePlus [configuration_files] +Library/Application Support/com.tinyapp.TablePlus/Cache/Favorite +Library/Application Support/com.tinyapp.TablePlus/Cache/History Library/Application Support/com.tinyapp.TablePlus/Data Library/Application Support/com.tinyapp.TablePlus/Plugins Library/Preferences/com.tinyapp.TablePlus.plist diff --git a/mackup/applications/termux.cfg b/mackup/applications/termux.cfg new file mode 100644 index 000000000..e70ef49b8 --- /dev/null +++ b/mackup/applications/termux.cfg @@ -0,0 +1,7 @@ +[application] +name = Configuration for Termux + +[configuration_files] +.termux/colors.properties +.termux/termux.properties +.termux/font.ttf diff --git a/mackup/applications/tiles.cfg b/mackup/applications/tiles.cfg new file mode 100644 index 000000000..6da97d757 --- /dev/null +++ b/mackup/applications/tiles.cfg @@ -0,0 +1,5 @@ +[application] +name = Tiles + +[configuration_files] +Library/Preferences/com.sempliva.Tiles.plist diff --git a/mackup/applications/vim.cfg b/mackup/applications/vim.cfg index c5a4af9b5..72c337496 100644 --- a/mackup/applications/vim.cfg +++ b/mackup/applications/vim.cfg @@ -7,6 +7,7 @@ name = Vim .gvimrc.before .vim/autoload .vim/after +.vim/bundle .vim/colors .vim/doc .vim/ftdetect diff --git a/mackup/applications/vs4mac.cfg b/mackup/applications/vs4mac.cfg index 72a9dd624..e9424be49 100644 --- a/mackup/applications/vs4mac.cfg +++ b/mackup/applications/vs4mac.cfg @@ -5,3 +5,5 @@ name = Visual Studio for Mac Library/VisualStudio Library/Preferences/VisualStudio/7.0/EditingLayout.xml Library/Preferences/VisualStudio/7.0/MonoDevelopProperties.xml +Library/Preferences/VisualStudio/8.0/EditingLayout.xml +Library/Preferences/VisualStudio/8.0/MonoDevelopProperties.xml diff --git a/mackup/applications/warp.cfg b/mackup/applications/warp.cfg new file mode 100644 index 000000000..039e843ce --- /dev/null +++ b/mackup/applications/warp.cfg @@ -0,0 +1,5 @@ +[application] +name = Warp + +[configuration_files] +.warp diff --git a/mackup/applications/webstorm.cfg b/mackup/applications/webstorm.cfg index a18ac928e..f6aac155e 100644 --- a/mackup/applications/webstorm.cfg +++ b/mackup/applications/webstorm.cfg @@ -2,43 +2,47 @@ name = WebStorm [configuration_files] +Library/Application Support/JetBrains/WebStorm2020.1 +Library/Application Support/JetBrains/WebStorm2020.2 +Library/Application Support/JetBrains/WebStorm2020.3 +Library/Application Support/JetBrains/WebStorm2020.4 +Library/Application Support/JetBrains/WebStorm2021.1 +Library/Application Support/JetBrains/WebStorm2021.2 +Library/Application Support/JetBrains/WebStorm2021.3 +Library/Application Support/JetBrains/WebStorm2023.1 +Library/Application Support/JetBrains/WebStorm2023.2 Library/Application Support/WebStorm +Library/Application Support/WebStorm10 +Library/Application Support/WebStorm11 +Library/Application Support/WebStorm2016.1 +Library/Application Support/WebStorm2016.2 +Library/Application Support/WebStorm2016.3 +Library/Application Support/WebStorm2017.1 +Library/Application Support/WebStorm2017.2 +Library/Application Support/WebStorm2017.3 +Library/Application Support/WebStorm2018.1 +Library/Application Support/WebStorm2018.2 +Library/Application Support/WebStorm2018.3 +Library/Application Support/WebStorm2019.1 +Library/Application Support/WebStorm2019.2 +Library/Application Support/WebStorm2019.3 +Library/Application Support/WebStorm2019.4 Library/Application Support/WebStorm8 -Library/Preferences/WebStorm8 Library/Application Support/WebStorm9 -Library/Preferences/WebStorm9 -Library/Application Support/WebStorm10 Library/Preferences/WebStorm10 -Library/Application Support/WebStorm11 Library/Preferences/WebStorm11 -Library/Application Support/WebStorm2016.1 Library/Preferences/WebStorm2016.1 -Library/Application Support/WebStorm2016.2 Library/Preferences/WebStorm2016.2 -Library/Application Support/WebStorm2016.3 Library/Preferences/WebStorm2016.3 -Library/Application Support/WebStorm2017.1 Library/Preferences/WebStorm2017.1 -Library/Application Support/WebStorm2017.2 Library/Preferences/WebStorm2017.2 -Library/Application Support/WebStorm2017.3 Library/Preferences/WebStorm2017.3 -Library/Application Support/WebStorm2018.1 Library/Preferences/WebStorm2018.1 -Library/Application Support/WebStorm2018.2 Library/Preferences/WebStorm2018.2 -Library/Application Support/WebStorm2018.3 Library/Preferences/WebStorm2018.3 -Library/Application Support/WebStorm2019.1 Library/Preferences/WebStorm2019.1 -Library/Application Support/WebStorm2019.2 Library/Preferences/WebStorm2019.2 -Library/Application Support/WebStorm2019.3 Library/Preferences/WebStorm2019.3 -Library/Application Support/WebStorm2020.1 -Library/Preferences/WebStorm2020.1 -Library/Application Support/WebStorm2020.2 -Library/Preferences/WebStorm2020.2 -Library/Application Support/WebStorm2020.3 -Library/Preferences/WebStorm2020.3 -Library/Application Support/JetBrains/WebStorm2020.1 +Library/Preferences/WebStorm2019.4 +Library/Preferences/WebStorm8 +Library/Preferences/WebStorm9 diff --git a/mackup/applications/xbar.cfg b/mackup/applications/xbar.cfg new file mode 100644 index 000000000..e1de62f4d --- /dev/null +++ b/mackup/applications/xbar.cfg @@ -0,0 +1,6 @@ +[application] +name = xbar + +[configuration_files] +Library/Application Support/xbar/xbar.config.json +Library/Application Support/xbar/plugins diff --git a/mackup/applications/xonsh.cfg b/mackup/applications/xonsh.cfg index 7f06fe8db..7f760b258 100644 --- a/mackup/applications/xonsh.cfg +++ b/mackup/applications/xonsh.cfg @@ -3,3 +3,6 @@ name = Xonsh [configuration_files] .xonshrc + +[xdg_configuration_files] +xonsh diff --git a/mackup/applications/yabai.cfg b/mackup/applications/yabai.cfg index c4542196d..a22287e49 100644 --- a/mackup/applications/yabai.cfg +++ b/mackup/applications/yabai.cfg @@ -3,3 +3,6 @@ name = yabai [configuration_files] .yabairc + +[xdg_configuration_files] +yabai/yabairc diff --git a/mackup/applications/zed.cfg b/mackup/applications/zed.cfg new file mode 100644 index 000000000..052feafff --- /dev/null +++ b/mackup/applications/zed.cfg @@ -0,0 +1,6 @@ +[application] +name = Zed + +[xdg_configuration_files] +zed/keymap.json +zed/settings.json diff --git a/mackup/applications/zoom.cfg b/mackup/applications/zoom.cfg new file mode 100644 index 000000000..2d973a86e --- /dev/null +++ b/mackup/applications/zoom.cfg @@ -0,0 +1,9 @@ +[application] +name = Zoom + +[configuration_files] +Library/Preferences/us.zoom.Transcode.plist +Library/Preferences/us.zoom.xos.Hotkey.plist +Library/Preferences/us.zoom.xos.plist +Library/Preferences/us.zoom.ZoomAutoUpdater.plist +Library/Preferences/ZoomChat.plist diff --git a/mackup/applications/zoxide.cfg b/mackup/applications/zoxide.cfg new file mode 100644 index 000000000..4e2ca35ab --- /dev/null +++ b/mackup/applications/zoxide.cfg @@ -0,0 +1,5 @@ +[application] +name = zoxide + +[configuration_files] +Library/Application Support/zoxide diff --git a/mackup/appsdb.py b/mackup/appsdb.py index 638ff40f4..3699cb1f0 100644 --- a/mackup/appsdb.py +++ b/mackup/appsdb.py @@ -26,7 +26,7 @@ def __init__(self): self.apps = dict() for config_file in ApplicationsDatabase.get_config_files(): - config = configparser.SafeConfigParser(allow_no_value=True) + config = configparser.ConfigParser(allow_no_value=True) # Needed to not lowercase the configuration_files in the ini files config.optionxform = str diff --git a/mackup/config.py b/mackup/config.py index ebcf48daa..9ad9a36d1 100644 --- a/mackup/config.py +++ b/mackup/config.py @@ -9,7 +9,6 @@ MACKUP_CONFIG_FILE, ENGINE_DROPBOX, ENGINE_GDRIVE, - ENGINE_COPY, ENGINE_ICLOUD, ENGINE_FS, ) @@ -17,7 +16,6 @@ from .utils import ( error, get_dropbox_folder_location, - get_copy_folder_location, get_google_drive_folder_location, get_icloud_folder_location, ) @@ -45,7 +43,7 @@ def __init__(self, filename=None): # Initialize the parser self._parser = self._setup_parser(filename) - # Do we have an old config file ? + # Do we have an old config file? self._warn_on_old_config() # Get the storage engine @@ -68,7 +66,7 @@ def engine(self): """ The engine used by the storage. - ENGINE_DROPBOX, ENGINE_GDRIVE, ENGINE_COPY, ENGINE_ICLOUD or ENGINE_FS. + ENGINE_DROPBOX, ENGINE_GDRIVE, ENGINE_ICLOUD or ENGINE_FS. Returns: str @@ -139,7 +137,7 @@ def _setup_parser(self, filename=None): filename (str) or None Returns: - SafeConfigParser + ConfigParser """ assert isinstance(filename, str) or filename is None @@ -147,14 +145,16 @@ def _setup_parser(self, filename=None): if not filename: filename = MACKUP_CONFIG_FILE - parser = configparser.SafeConfigParser(allow_no_value=True) + parser = configparser.ConfigParser( + allow_no_value=True, inline_comment_prefixes=(";", "#") + ) parser.read(os.path.join(os.path.join(os.environ["HOME"], filename))) return parser def _warn_on_old_config(self): """Warn the user if an old config format is detected.""" - # Is an old setion is in the config file ? + # Is an old section in the config file? old_sections = ["Allowed Applications", "Ignored Applications"] for old_section in old_sections: if self._parser.has_section(old_section): @@ -189,7 +189,6 @@ def _parse_engine(self): if engine not in [ ENGINE_DROPBOX, ENGINE_GDRIVE, - ENGINE_COPY, ENGINE_ICLOUD, ENGINE_FS, ]: @@ -208,8 +207,6 @@ def _parse_path(self): path = get_dropbox_folder_location() elif self.engine == ENGINE_GDRIVE: path = get_google_drive_folder_location() - elif self.engine == ENGINE_COPY: - path = get_copy_folder_location() elif self.engine == ENGINE_ICLOUD: path = get_icloud_folder_location() elif self.engine == ENGINE_FS: @@ -253,7 +250,7 @@ def _parse_apps_to_ignore(self): # We ignore nothing by default apps_to_ignore = set() - # Is the "[applications_to_ignore]" in the cfg file ? + # Is the "[applications_to_ignore]" in the cfg file? section_title = "applications_to_ignore" if self._parser.has_section(section_title): apps_to_ignore = set(self._parser.options(section_title)) @@ -270,7 +267,7 @@ def _parse_apps_to_sync(self): # We allow nothing by default apps_to_sync = set() - # Is the "[applications_to_sync]" section in the cfg file ? + # Is the "[applications_to_sync]" section in the cfg file? section_title = "applications_to_sync" if self._parser.has_section(section_title): apps_to_sync = set(self._parser.options(section_title)) diff --git a/mackup/constants.py b/mackup/constants.py index 5525e5119..28fb5fd08 100644 --- a/mackup/constants.py +++ b/mackup/constants.py @@ -1,6 +1,6 @@ """Constants used in Mackup.""" # Current version -VERSION = "0.8.28" +VERSION = "0.8.39" # Support platforms PLATFORM_DARWIN = "Darwin" @@ -22,8 +22,20 @@ CUSTOM_APPS_DIR = ".mackup" # Supported engines -ENGINE_COPY = "copy" ENGINE_DROPBOX = "dropbox" ENGINE_FS = "file_system" ENGINE_GDRIVE = "google_drive" ENGINE_ICLOUD = "icloud" + +DOCUMENTATION_URL = "https://github.com/lra/mackup/blob/master/doc/README.md" + +# Error message displayed when mackup can't find the storage specified +# in the config (or the default one). +ERROR_UNABLE_TO_FIND_STORAGE = ( + "Unable to find your {provider} =(\n" + "If this is the first time you use %s, you may want " + "to use another provider.\n" + "Take a look at the documentation [1] to know more about " + "how to configure mackup.\n\n" + "[1]: %s" % (MACKUP_APP_NAME, DOCUMENTATION_URL) +) diff --git a/mackup/mackup.py b/mackup/mackup.py index c60184353..734e8ee9c 100644 --- a/mackup/mackup.py +++ b/mackup/mackup.py @@ -36,13 +36,13 @@ def check_for_usable_environment(self): " Run mackup --help for guidance." ) - # Do we have a folder to put the Mackup folder ? + # Do we have a folder set to save Mackup content into? if not os.path.isdir(self._config.path): utils.error( "Unable to find the storage folder: {}".format(self._config.path) ) - # Is Sublime Text running ? + # Is Sublime Text running? # if is_process_running('Sublime Text'): # error("Sublime Text is running. It is known to cause problems" # " when Sublime Text is running while I backup or restore" diff --git a/mackup/main.py b/mackup/main.py index b07a91224..198ac2563 100644 --- a/mackup/main.py +++ b/mackup/main.py @@ -1,7 +1,7 @@ """Mackup. Keep your application settings in sync. -Copyright (C) 2013-2019 Laurent Raufaste +Copyright (C) 2013-2021 Laurent Raufaste Usage: mackup list @@ -127,12 +127,11 @@ def printAppHeader(app_name): utils.confirm( "You are going to uninstall Mackup.\n" "Every configuration file, setting and dotfile" - " managed by Mackup will be unlinked and moved back" + " managed by Mackup will be unlinked and copied back" " to their original place, in your home folder.\n" - "Are you sure ?" + "Are you sure?" ) ): - # Uninstall the apps except Mackup, which we'll uninstall last, to # keep the settings as long as possible app_names = mckp.get_apps_to_backup() @@ -162,7 +161,7 @@ def printAppHeader(app_name): "All your files have been put back into place. You can now" " safely uninstall Mackup.\n" "\n" - "Thanks for using Mackup !" + "Thanks for using Mackup!" ) elif args["list"]: diff --git a/mackup/utils.py b/mackup/utils.py index bcd2977e0..6cf005f45 100644 --- a/mackup/utils.py +++ b/mackup/utils.py @@ -22,7 +22,7 @@ def confirm(question): """ - Ask the user if he really want something to happen. + Ask the user if he really wants something to happen. Args: question(str): What can happen @@ -34,7 +34,7 @@ def confirm(question): return True while True: - answer = input(question + " ").lower() + answer = input(question + " ").lower() if answer == "yes" or answer == "y": confirmed = True @@ -72,7 +72,7 @@ def copy(src, dst): """ Copy a file or a folder (recursively) from src to dst. - For simplicity sake, both src and dst must be absolute path and must + For the sake of simplicity, both src and dst must be absolute path and must include the filename of the file or folder. Also do not include any trailing slash. @@ -90,7 +90,7 @@ def copy(src, dst): assert os.path.exists(src) assert isinstance(dst, str) - # Create the path to the dst file if it does not exists + # Create the path to the dst file if it does not exist abs_path = os.path.dirname(os.path.abspath(dst)) if not os.path.isdir(abs_path): os.makedirs(abs_path) @@ -104,7 +104,7 @@ def copy(src, dst): elif os.path.isdir(src): shutil.copytree(src, dst) - # What the heck is this ? + # What the heck is this? else: raise ValueError("Unsupported file: {}".format(src)) @@ -116,7 +116,7 @@ def link(target, link_to): """ Create a link to a target file or a folder. - For simplicity sake, both target and link_to must be absolute path and must + For the sake of simplicity, both target and link_to must be absolute path and must include the filename of the file or folder. Also do not include any trailing slash. @@ -133,7 +133,7 @@ def link(target, link_to): assert os.path.exists(target) assert isinstance(link_to, str) - # Create the path to the link if it does not exists + # Create the path to the link if it does not exist abs_path = os.path.dirname(os.path.abspath(link_to)) if not os.path.isdir(abs_path): os.makedirs(abs_path) @@ -205,7 +205,7 @@ def get_dropbox_folder_location(): with open(host_db_path, "r") as f_hostdb: data = f_hostdb.read().split() except IOError: - error("Unable to find your Dropbox install =(") + error(constants.ERROR_UNABLE_TO_FIND_STORAGE.format(provider="Dropbox install")) dropbox_home = base64.b64decode(data[1]).decode() return dropbox_home @@ -244,39 +244,15 @@ def get_google_drive_folder_location(): con.close() if not googledrive_home: - error("Unable to find your Google Drive install =(") + error( + constants.ERROR_UNABLE_TO_FIND_STORAGE.format( + provider="Google Drive install" + ) + ) return googledrive_home -def get_copy_folder_location(): - """ - Try to locate the Copy folder. - - Returns: - (str) Full path to the current Copy folder - """ - copy_settings_path = "Library/Application Support/Copy Agent/config.db" - copy_home = None - - copy_settings = os.path.join(os.environ["HOME"], copy_settings_path) - - if os.path.isfile(copy_settings): - database = sqlite3.connect(copy_settings) - if database: - cur = database.cursor() - query = "SELECT value " "FROM config2 " "WHERE option = 'csmRootPath';" - cur.execute(query) - data = cur.fetchone() - copy_home = str(data[0]) - cur.close() - - if not copy_home: - error("Unable to find your Copy install =(") - - return copy_home - - def get_icloud_folder_location(): """ Try to locate the iCloud Drive folder. @@ -289,7 +265,7 @@ def get_icloud_folder_location(): icloud_home = os.path.expanduser(yosemite_icloud_path) if not os.path.isdir(icloud_home): - error("Unable to find your iCloud Drive =(") + error(constants.ERROR_UNABLE_TO_FIND_STORAGE.format(provider="iCloud Drive")) return str(icloud_home) @@ -381,7 +357,7 @@ def can_file_be_synced_on_current_platform(path): # If the given path is relative, prepend home fullpath = os.path.join(os.environ["HOME"], path) - # Compute the ~/Library path on OS X + # Compute the ~/Library path on macOS # End it with a slash because we are looking for this specific folder and # not any file/folder named LibrarySomething library_path = os.path.join(os.environ["HOME"], "Library/") diff --git a/poetry.lock b/poetry.lock new file mode 100644 index 000000000..5906252f0 --- /dev/null +++ b/poetry.lock @@ -0,0 +1,684 @@ +# This file is automatically @generated by Poetry 1.7.0 and should not be changed by hand. + +[[package]] +name = "2to3" +version = "1.0" +description = "Adds the 2to3 command directly to entry_points." +optional = false +python-versions = "*" +files = [ + {file = "2to3-1.0-py3-none-any.whl", hash = "sha256:a39fb204829c6ed90be1507f3aff1c2b4fa6734585d57a50286f039546b5fb7f"}, + {file = "2to3-1.0.tar.gz", hash = "sha256:958bc212c928bbdcbc778b72528e0a39ae4ee8040eda6af6c3b5dd640c98ce6d"}, +] + +[[package]] +name = "alabaster" +version = "0.7.13" +description = "A configurable sidebar-enabled Sphinx theme" +optional = false +python-versions = ">=3.6" +files = [ + {file = "alabaster-0.7.13-py3-none-any.whl", hash = "sha256:1ee19aca801bbabb5ba3f5f258e4422dfa86f82f3e9cefb0859b283cdd7f62a3"}, + {file = "alabaster-0.7.13.tar.gz", hash = "sha256:a27a4a084d5e690e16e01e03ad2b2e552c61a65469419b907243193de1a84ae2"}, +] + +[[package]] +name = "babel" +version = "2.13.1" +description = "Internationalization utilities" +optional = false +python-versions = ">=3.7" +files = [ + {file = "Babel-2.13.1-py3-none-any.whl", hash = "sha256:7077a4984b02b6727ac10f1f7294484f737443d7e2e66c5e4380e41a3ae0b4ed"}, + {file = "Babel-2.13.1.tar.gz", hash = "sha256:33e0952d7dd6374af8dbf6768cc4ddf3ccfefc244f9986d4074704f2fbd18900"}, +] + +[package.dependencies] +pytz = {version = ">=2015.7", markers = "python_version < \"3.9\""} +setuptools = {version = "*", markers = "python_version >= \"3.12\""} + +[package.extras] +dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] + +[[package]] +name = "certifi" +version = "2023.7.22" +description = "Python package for providing Mozilla's CA Bundle." +optional = false +python-versions = ">=3.6" +files = [ + {file = "certifi-2023.7.22-py3-none-any.whl", hash = "sha256:92d6037539857d8206b8f6ae472e8b77db8058fec5937a1ef3f54304089edbb9"}, + {file = "certifi-2023.7.22.tar.gz", hash = "sha256:539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082"}, +] + +[[package]] +name = "charset-normalizer" +version = "3.3.2" +description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +optional = false +python-versions = ">=3.7.0" +files = [ + {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, + {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, +] + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] + +[[package]] +name = "coverage" +version = "7.3.2" +description = "Code coverage measurement for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "coverage-7.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d872145f3a3231a5f20fd48500274d7df222e291d90baa2026cc5152b7ce86bf"}, + {file = "coverage-7.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:310b3bb9c91ea66d59c53fa4989f57d2436e08f18fb2f421a1b0b6b8cc7fffda"}, + {file = "coverage-7.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f47d39359e2c3779c5331fc740cf4bce6d9d680a7b4b4ead97056a0ae07cb49a"}, + {file = "coverage-7.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aa72dbaf2c2068404b9870d93436e6d23addd8bbe9295f49cbca83f6e278179c"}, + {file = "coverage-7.3.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:beaa5c1b4777f03fc63dfd2a6bd820f73f036bfb10e925fce067b00a340d0f3f"}, + {file = "coverage-7.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:dbc1b46b92186cc8074fee9d9fbb97a9dd06c6cbbef391c2f59d80eabdf0faa6"}, + {file = "coverage-7.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:315a989e861031334d7bee1f9113c8770472db2ac484e5b8c3173428360a9148"}, + {file = "coverage-7.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d1bc430677773397f64a5c88cb522ea43175ff16f8bfcc89d467d974cb2274f9"}, + {file = "coverage-7.3.2-cp310-cp310-win32.whl", hash = "sha256:a889ae02f43aa45032afe364c8ae84ad3c54828c2faa44f3bfcafecb5c96b02f"}, + {file = "coverage-7.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:c0ba320de3fb8c6ec16e0be17ee1d3d69adcda99406c43c0409cb5c41788a611"}, + {file = "coverage-7.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ac8c802fa29843a72d32ec56d0ca792ad15a302b28ca6203389afe21f8fa062c"}, + {file = "coverage-7.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:89a937174104339e3a3ffcf9f446c00e3a806c28b1841c63edb2b369310fd074"}, + {file = "coverage-7.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e267e9e2b574a176ddb983399dec325a80dbe161f1a32715c780b5d14b5f583a"}, + {file = "coverage-7.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2443cbda35df0d35dcfb9bf8f3c02c57c1d6111169e3c85fc1fcc05e0c9f39a3"}, + {file = "coverage-7.3.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4175e10cc8dda0265653e8714b3174430b07c1dca8957f4966cbd6c2b1b8065a"}, + {file = "coverage-7.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0cbf38419fb1a347aaf63481c00f0bdc86889d9fbf3f25109cf96c26b403fda1"}, + {file = "coverage-7.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:5c913b556a116b8d5f6ef834038ba983834d887d82187c8f73dec21049abd65c"}, + {file = "coverage-7.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1981f785239e4e39e6444c63a98da3a1db8e971cb9ceb50a945ba6296b43f312"}, + {file = "coverage-7.3.2-cp311-cp311-win32.whl", hash = "sha256:43668cabd5ca8258f5954f27a3aaf78757e6acf13c17604d89648ecc0cc66640"}, + {file = "coverage-7.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10c39c0452bf6e694511c901426d6b5ac005acc0f78ff265dbe36bf81f808a2"}, + {file = "coverage-7.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:4cbae1051ab791debecc4a5dcc4a1ff45fc27b91b9aee165c8a27514dd160836"}, + {file = "coverage-7.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:12d15ab5833a997716d76f2ac1e4b4d536814fc213c85ca72756c19e5a6b3d63"}, + {file = "coverage-7.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c7bba973ebee5e56fe9251300c00f1579652587a9f4a5ed8404b15a0471f216"}, + {file = "coverage-7.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fe494faa90ce6381770746077243231e0b83ff3f17069d748f645617cefe19d4"}, + {file = "coverage-7.3.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6e9589bd04d0461a417562649522575d8752904d35c12907d8c9dfeba588faf"}, + {file = "coverage-7.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d51ac2a26f71da1b57f2dc81d0e108b6ab177e7d30e774db90675467c847bbdf"}, + {file = "coverage-7.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:99b89d9f76070237975b315b3d5f4d6956ae354a4c92ac2388a5695516e47c84"}, + {file = "coverage-7.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:fa28e909776dc69efb6ed975a63691bc8172b64ff357e663a1bb06ff3c9b589a"}, + {file = "coverage-7.3.2-cp312-cp312-win32.whl", hash = "sha256:289fe43bf45a575e3ab10b26d7b6f2ddb9ee2dba447499f5401cfb5ecb8196bb"}, + {file = "coverage-7.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:7dbc3ed60e8659bc59b6b304b43ff9c3ed858da2839c78b804973f613d3e92ed"}, + {file = "coverage-7.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f94b734214ea6a36fe16e96a70d941af80ff3bfd716c141300d95ebc85339738"}, + {file = "coverage-7.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:af3d828d2c1cbae52d34bdbb22fcd94d1ce715d95f1a012354a75e5913f1bda2"}, + {file = "coverage-7.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:630b13e3036e13c7adc480ca42fa7afc2a5d938081d28e20903cf7fd687872e2"}, + {file = "coverage-7.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c9eacf273e885b02a0273bb3a2170f30e2d53a6d53b72dbe02d6701b5296101c"}, + {file = "coverage-7.3.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d8f17966e861ff97305e0801134e69db33b143bbfb36436efb9cfff6ec7b2fd9"}, + {file = "coverage-7.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b4275802d16882cf9c8b3d057a0839acb07ee9379fa2749eca54efbce1535b82"}, + {file = "coverage-7.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:72c0cfa5250f483181e677ebc97133ea1ab3eb68645e494775deb6a7f6f83901"}, + {file = "coverage-7.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:cb536f0dcd14149425996821a168f6e269d7dcd2c273a8bff8201e79f5104e76"}, + {file = "coverage-7.3.2-cp38-cp38-win32.whl", hash = "sha256:307adb8bd3abe389a471e649038a71b4eb13bfd6b7dd9a129fa856f5c695cf92"}, + {file = "coverage-7.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:88ed2c30a49ea81ea3b7f172e0269c182a44c236eb394718f976239892c0a27a"}, + {file = "coverage-7.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b631c92dfe601adf8f5ebc7fc13ced6bb6e9609b19d9a8cd59fa47c4186ad1ce"}, + {file = "coverage-7.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d3d9df4051c4a7d13036524b66ecf7a7537d14c18a384043f30a303b146164e9"}, + {file = "coverage-7.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f7363d3b6a1119ef05015959ca24a9afc0ea8a02c687fe7e2d557705375c01f"}, + {file = "coverage-7.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2f11cc3c967a09d3695d2a6f03fb3e6236622b93be7a4b5dc09166a861be6d25"}, + {file = "coverage-7.3.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:149de1d2401ae4655c436a3dced6dd153f4c3309f599c3d4bd97ab172eaf02d9"}, + {file = "coverage-7.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:3a4006916aa6fee7cd38db3bfc95aa9c54ebb4ffbfc47c677c8bba949ceba0a6"}, + {file = "coverage-7.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9028a3871280110d6e1aa2df1afd5ef003bab5fb1ef421d6dc748ae1c8ef2ebc"}, + {file = "coverage-7.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9f805d62aec8eb92bab5b61c0f07329275b6f41c97d80e847b03eb894f38d083"}, + {file = "coverage-7.3.2-cp39-cp39-win32.whl", hash = "sha256:d1c88ec1a7ff4ebca0219f5b1ef863451d828cccf889c173e1253aa84b1e07ce"}, + {file = "coverage-7.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b4767da59464bb593c07afceaddea61b154136300881844768037fd5e859353f"}, + {file = "coverage-7.3.2-pp38.pp39.pp310-none-any.whl", hash = "sha256:ae97af89f0fbf373400970c0a21eef5aa941ffeed90aee43650b81f7d7f47637"}, + {file = "coverage-7.3.2.tar.gz", hash = "sha256:be32ad29341b0170e795ca590e1c07e81fc061cb5b10c74ce7203491484404ef"}, +] + +[package.extras] +toml = ["tomli"] + +[[package]] +name = "docopt" +version = "0.6.2" +description = "Pythonic argument parser, that will make you smile" +optional = false +python-versions = "*" +files = [ + {file = "docopt-0.6.2.tar.gz", hash = "sha256:49b3a825280bd66b3aa83585ef59c4a8c82f2c8a522dbe754a8bc8d08c85c491"}, +] + +[[package]] +name = "docutils" +version = "0.20.1" +description = "Docutils -- Python Documentation Utilities" +optional = false +python-versions = ">=3.7" +files = [ + {file = "docutils-0.20.1-py3-none-any.whl", hash = "sha256:96f387a2c5562db4476f09f13bbab2192e764cac08ebbf3a34a95d9b1e4a59d6"}, + {file = "docutils-0.20.1.tar.gz", hash = "sha256:f08a4e276c3a1583a86dce3e34aba3fe04d02bba2dd51ed16106244e8a923e3b"}, +] + +[[package]] +name = "idna" +version = "3.4" +description = "Internationalized Domain Names in Applications (IDNA)" +optional = false +python-versions = ">=3.5" +files = [ + {file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"}, + {file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"}, +] + +[[package]] +name = "imagesize" +version = "1.4.1" +description = "Getting image size from png/jpeg/jpeg2000/gif file" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"}, + {file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"}, +] + +[[package]] +name = "importlib-metadata" +version = "6.8.0" +description = "Read metadata from Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "importlib_metadata-6.8.0-py3-none-any.whl", hash = "sha256:3ebb78df84a805d7698245025b975d9d67053cd94c79245ba4b3eb694abe68bb"}, + {file = "importlib_metadata-6.8.0.tar.gz", hash = "sha256:dbace7892d8c0c4ac1ad096662232f831d4e64f4c4545bd53016a3e9d4654743"}, +] + +[package.dependencies] +zipp = ">=0.5" + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +perf = ["ipython"] +testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-perf (>=0.9.2)", "pytest-ruff"] + +[[package]] +name = "jinja2" +version = "3.1.2" +description = "A very fast and expressive template engine." +optional = false +python-versions = ">=3.7" +files = [ + {file = "Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"}, + {file = "Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"}, +] + +[package.dependencies] +MarkupSafe = ">=2.0" + +[package.extras] +i18n = ["Babel (>=2.7)"] + +[[package]] +name = "markupsafe" +version = "2.1.3" +description = "Safely add untrusted strings to HTML/XML markup." +optional = false +python-versions = ">=3.7" +files = [ + {file = "MarkupSafe-2.1.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cd0f502fe016460680cd20aaa5a76d241d6f35a1c3350c474bac1273803893fa"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e09031c87a1e51556fdcb46e5bd4f59dfb743061cf93c4d6831bf894f125eb57"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:68e78619a61ecf91e76aa3e6e8e33fc4894a2bebe93410754bd28fce0a8a4f9f"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65c1a9bcdadc6c28eecee2c119465aebff8f7a584dd719facdd9e825ec61ab52"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:525808b8019e36eb524b8c68acdd63a37e75714eac50e988180b169d64480a00"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:962f82a3086483f5e5f64dbad880d31038b698494799b097bc59c2edf392fce6"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:aa7bd130efab1c280bed0f45501b7c8795f9fdbeb02e965371bbef3523627779"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c9c804664ebe8f83a211cace637506669e7890fec1b4195b505c214e50dd4eb7"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-win32.whl", hash = "sha256:10bbfe99883db80bdbaff2dcf681dfc6533a614f700da1287707e8a5d78a8431"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-win_amd64.whl", hash = "sha256:1577735524cdad32f9f694208aa75e422adba74f1baee7551620e43a3141f559"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ad9e82fb8f09ade1c3e1b996a6337afac2b8b9e365f926f5a61aacc71adc5b3c"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3c0fae6c3be832a0a0473ac912810b2877c8cb9d76ca48de1ed31e1c68386575"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b076b6226fb84157e3f7c971a47ff3a679d837cf338547532ab866c57930dbee"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bfce63a9e7834b12b87c64d6b155fdd9b3b96191b6bd334bf37db7ff1fe457f2"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:338ae27d6b8745585f87218a3f23f1512dbf52c26c28e322dbe54bcede54ccb9"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e4dd52d80b8c83fdce44e12478ad2e85c64ea965e75d66dbeafb0a3e77308fcc"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:df0be2b576a7abbf737b1575f048c23fb1d769f267ec4358296f31c2479db8f9"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-win32.whl", hash = "sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-win_amd64.whl", hash = "sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:f698de3fd0c4e6972b92290a45bd9b1536bffe8c6759c62471efaa8acb4c37bc"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:aa57bd9cf8ae831a362185ee444e15a93ecb2e344c8e52e4d721ea3ab6ef1823"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffcc3f7c66b5f5b7931a5aa68fc9cecc51e685ef90282f4a82f0f5e9b704ad11"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47d4f1c5f80fc62fdd7777d0d40a2e9dda0a05883ab11374334f6c4de38adffd"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1f67c7038d560d92149c060157d623c542173016c4babc0c1913cca0564b9939"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:9aad3c1755095ce347e26488214ef77e0485a3c34a50c5a5e2471dff60b9dd9c"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:14ff806850827afd6b07a5f32bd917fb7f45b046ba40c57abdb636674a8b559c"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8f9293864fe09b8149f0cc42ce56e3f0e54de883a9de90cd427f191c346eb2e1"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-win32.whl", hash = "sha256:715d3562f79d540f251b99ebd6d8baa547118974341db04f5ad06d5ea3eb8007"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-win_amd64.whl", hash = "sha256:1b8dd8c3fd14349433c79fa8abeb573a55fc0fdd769133baac1f5e07abf54aeb"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ca379055a47383d02a5400cb0d110cef0a776fc644cda797db0c5696cfd7e18e"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:b7ff0f54cb4ff66dd38bebd335a38e2c22c41a8ee45aa608efc890ac3e3931bc"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c011a4149cfbcf9f03994ec2edffcb8b1dc2d2aede7ca243746df97a5d41ce48"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:56d9f2ecac662ca1611d183feb03a3fa4406469dafe241673d521dd5ae92a155"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-win32.whl", hash = "sha256:8758846a7e80910096950b67071243da3e5a20ed2546e6392603c096778d48e0"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-win_amd64.whl", hash = "sha256:787003c0ddb00500e49a10f2844fac87aa6ce977b90b0feaaf9de23c22508b24"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:2ef12179d3a291be237280175b542c07a36e7f60718296278d8593d21ca937d4"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2c1b19b3aaacc6e57b7e25710ff571c24d6c3613a45e905b1fde04d691b98ee0"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8afafd99945ead6e075b973fefa56379c5b5c53fd8937dad92c662da5d8fd5ee"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8c41976a29d078bb235fea9b2ecd3da465df42a562910f9022f1a03107bd02be"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d080e0a5eb2529460b30190fcfcc4199bd7f827663f858a226a81bc27beaa97e"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:69c0f17e9f5a7afdf2cc9fb2d1ce6aabdb3bafb7f38017c0b77862bcec2bbad8"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:504b320cd4b7eff6f968eddf81127112db685e81f7e36e75f9f84f0df46041c3"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:42de32b22b6b804f42c5d98be4f7e5e977ecdd9ee9b660fda1a3edf03b11792d"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-win32.whl", hash = "sha256:ceb01949af7121f9fc39f7d27f91be8546f3fb112c608bc4029aef0bab86a2a5"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-win_amd64.whl", hash = "sha256:1b40069d487e7edb2676d3fbdb2b0829ffa2cd63a2ec26c4938b2d34391b4ecc"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8023faf4e01efadfa183e863fefde0046de576c6f14659e8782065bcece22198"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6b2b56950d93e41f33b4223ead100ea0fe11f8e6ee5f641eb753ce4b77a7042b"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9dcdfd0eaf283af041973bff14a2e143b8bd64e069f4c383416ecd79a81aab58"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05fb21170423db021895e1ea1e1f3ab3adb85d1c2333cbc2310f2a26bc77272e"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:282c2cb35b5b673bbcadb33a585408104df04f14b2d9b01d4c345a3b92861c2c"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ab4a0df41e7c16a1392727727e7998a467472d0ad65f3ad5e6e765015df08636"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7ef3cb2ebbf91e330e3bb937efada0edd9003683db6b57bb108c4001f37a02ea"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0a4e4a1aff6c7ac4cd55792abf96c915634c2b97e3cc1c7129578aa68ebd754e"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-win32.whl", hash = "sha256:fec21693218efe39aa7f8599346e90c705afa52c5b31ae019b2e57e8f6542bb2"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-win_amd64.whl", hash = "sha256:3fd4abcb888d15a94f32b75d8fd18ee162ca0c064f35b11134be77050296d6ba"}, + {file = "MarkupSafe-2.1.3.tar.gz", hash = "sha256:af598ed32d6ae86f1b747b82783958b1a4ab8f617b06fe68795c7f026abbdcad"}, +] + +[[package]] +name = "nose-py3" +version = "1.6.3" +description = "nose extends unittest to make testing easier - python3 version" +optional = false +python-versions = ">=3.6" +files = [ + {file = "nose_py3-1.6.3-py3-none-any.whl", hash = "sha256:97daa91c0f1aa0594857aac709ba6da52f5a7d88d16b618b2506d595e2d0580e"}, +] + +[package.dependencies] +2to3 = "*" +coverage = "*" +numpy = "*" +six = "*" +sphinx = "*" + +[[package]] +name = "numpy" +version = "1.24.4" +description = "Fundamental package for array computing in Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "numpy-1.24.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c0bfb52d2169d58c1cdb8cc1f16989101639b34c7d3ce60ed70b19c63eba0b64"}, + {file = "numpy-1.24.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ed094d4f0c177b1b8e7aa9cba7d6ceed51c0e569a5318ac0ca9a090680a6a1b1"}, + {file = "numpy-1.24.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79fc682a374c4a8ed08b331bef9c5f582585d1048fa6d80bc6c35bc384eee9b4"}, + {file = "numpy-1.24.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ffe43c74893dbf38c2b0a1f5428760a1a9c98285553c89e12d70a96a7f3a4d6"}, + {file = "numpy-1.24.4-cp310-cp310-win32.whl", hash = "sha256:4c21decb6ea94057331e111a5bed9a79d335658c27ce2adb580fb4d54f2ad9bc"}, + {file = "numpy-1.24.4-cp310-cp310-win_amd64.whl", hash = "sha256:b4bea75e47d9586d31e892a7401f76e909712a0fd510f58f5337bea9572c571e"}, + {file = "numpy-1.24.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f136bab9c2cfd8da131132c2cf6cc27331dd6fae65f95f69dcd4ae3c3639c810"}, + {file = "numpy-1.24.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e2926dac25b313635e4d6cf4dc4e51c8c0ebfed60b801c799ffc4c32bf3d1254"}, + {file = "numpy-1.24.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:222e40d0e2548690405b0b3c7b21d1169117391c2e82c378467ef9ab4c8f0da7"}, + {file = "numpy-1.24.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7215847ce88a85ce39baf9e89070cb860c98fdddacbaa6c0da3ffb31b3350bd5"}, + {file = "numpy-1.24.4-cp311-cp311-win32.whl", hash = "sha256:4979217d7de511a8d57f4b4b5b2b965f707768440c17cb70fbf254c4b225238d"}, + {file = "numpy-1.24.4-cp311-cp311-win_amd64.whl", hash = "sha256:b7b1fc9864d7d39e28f41d089bfd6353cb5f27ecd9905348c24187a768c79694"}, + {file = "numpy-1.24.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1452241c290f3e2a312c137a9999cdbf63f78864d63c79039bda65ee86943f61"}, + {file = "numpy-1.24.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:04640dab83f7c6c85abf9cd729c5b65f1ebd0ccf9de90b270cd61935eef0197f"}, + {file = "numpy-1.24.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5425b114831d1e77e4b5d812b69d11d962e104095a5b9c3b641a218abcc050e"}, + {file = "numpy-1.24.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd80e219fd4c71fc3699fc1dadac5dcf4fd882bfc6f7ec53d30fa197b8ee22dc"}, + {file = "numpy-1.24.4-cp38-cp38-win32.whl", hash = "sha256:4602244f345453db537be5314d3983dbf5834a9701b7723ec28923e2889e0bb2"}, + {file = "numpy-1.24.4-cp38-cp38-win_amd64.whl", hash = "sha256:692f2e0f55794943c5bfff12b3f56f99af76f902fc47487bdfe97856de51a706"}, + {file = "numpy-1.24.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2541312fbf09977f3b3ad449c4e5f4bb55d0dbf79226d7724211acc905049400"}, + {file = "numpy-1.24.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9667575fb6d13c95f1b36aca12c5ee3356bf001b714fc354eb5465ce1609e62f"}, + {file = "numpy-1.24.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3a86ed21e4f87050382c7bc96571755193c4c1392490744ac73d660e8f564a9"}, + {file = "numpy-1.24.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d11efb4dbecbdf22508d55e48d9c8384db795e1b7b51ea735289ff96613ff74d"}, + {file = "numpy-1.24.4-cp39-cp39-win32.whl", hash = "sha256:6620c0acd41dbcb368610bb2f4d83145674040025e5536954782467100aa8835"}, + {file = "numpy-1.24.4-cp39-cp39-win_amd64.whl", hash = "sha256:befe2bf740fd8373cf56149a5c23a0f601e82869598d41f8e188a0e9869926f8"}, + {file = "numpy-1.24.4-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:31f13e25b4e304632a4619d0e0777662c2ffea99fcae2029556b17d8ff958aef"}, + {file = "numpy-1.24.4-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95f7ac6540e95bc440ad77f56e520da5bf877f87dca58bd095288dce8940532a"}, + {file = "numpy-1.24.4-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:e98f220aa76ca2a977fe435f5b04d7b3470c0a2e6312907b37ba6068f26787f2"}, + {file = "numpy-1.24.4.tar.gz", hash = "sha256:80f5e3a4e498641401868df4208b74581206afbee7cf7b8329daae82676d9463"}, +] + +[[package]] +name = "packaging" +version = "23.2" +description = "Core utilities for Python packages" +optional = false +python-versions = ">=3.7" +files = [ + {file = "packaging-23.2-py3-none-any.whl", hash = "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7"}, + {file = "packaging-23.2.tar.gz", hash = "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5"}, +] + +[[package]] +name = "pygments" +version = "2.16.1" +description = "Pygments is a syntax highlighting package written in Python." +optional = false +python-versions = ">=3.7" +files = [ + {file = "Pygments-2.16.1-py3-none-any.whl", hash = "sha256:13fc09fa63bc8d8671a6d247e1eb303c4b343eaee81d861f3404db2935653692"}, + {file = "Pygments-2.16.1.tar.gz", hash = "sha256:1daff0494820c69bc8941e407aa20f577374ee88364ee10a98fdbe0aece96e29"}, +] + +[package.extras] +plugins = ["importlib-metadata"] + +[[package]] +name = "pytz" +version = "2023.3.post1" +description = "World timezone definitions, modern and historical" +optional = false +python-versions = "*" +files = [ + {file = "pytz-2023.3.post1-py2.py3-none-any.whl", hash = "sha256:ce42d816b81b68506614c11e8937d3aa9e41007ceb50bfdcb0749b921bf646c7"}, + {file = "pytz-2023.3.post1.tar.gz", hash = "sha256:7b4fddbeb94a1eba4b557da24f19fdf9db575192544270a9101d8509f9f43d7b"}, +] + +[[package]] +name = "requests" +version = "2.31.0" +description = "Python HTTP for Humans." +optional = false +python-versions = ">=3.7" +files = [ + {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"}, + {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"}, +] + +[package.dependencies] +certifi = ">=2017.4.17" +charset-normalizer = ">=2,<4" +idna = ">=2.5,<4" +urllib3 = ">=1.21.1,<3" + +[package.extras] +socks = ["PySocks (>=1.5.6,!=1.5.7)"] +use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] + +[[package]] +name = "setuptools" +version = "68.2.2" +description = "Easily download, build, install, upgrade, and uninstall Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "setuptools-68.2.2-py3-none-any.whl", hash = "sha256:b454a35605876da60632df1a60f736524eb73cc47bbc9f3f1ef1b644de74fd2a"}, + {file = "setuptools-68.2.2.tar.gz", hash = "sha256:4ac1475276d2f1c48684874089fefcd83bd7162ddaafb81fac866ba0db282a87"}, +] + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] +testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] +testing-integration = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "packaging (>=23.1)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] + +[[package]] +name = "six" +version = "1.16.0" +description = "Python 2 and 3 compatibility utilities" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, +] + +[[package]] +name = "snowballstemmer" +version = "2.2.0" +description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." +optional = false +python-versions = "*" +files = [ + {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"}, + {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"}, +] + +[[package]] +name = "sphinx" +version = "7.1.2" +description = "Python documentation generator" +optional = false +python-versions = ">=3.8" +files = [ + {file = "sphinx-7.1.2-py3-none-any.whl", hash = "sha256:d170a81825b2fcacb6dfd5a0d7f578a053e45d3f2b153fecc948c37344eb4cbe"}, + {file = "sphinx-7.1.2.tar.gz", hash = "sha256:780f4d32f1d7d1126576e0e5ecc19dc32ab76cd24e950228dcf7b1f6d3d9e22f"}, +] + +[package.dependencies] +alabaster = ">=0.7,<0.8" +babel = ">=2.9" +colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} +docutils = ">=0.18.1,<0.21" +imagesize = ">=1.3" +importlib-metadata = {version = ">=4.8", markers = "python_version < \"3.10\""} +Jinja2 = ">=3.0" +packaging = ">=21.0" +Pygments = ">=2.13" +requests = ">=2.25.0" +snowballstemmer = ">=2.0" +sphinxcontrib-applehelp = "*" +sphinxcontrib-devhelp = "*" +sphinxcontrib-htmlhelp = ">=2.0.0" +sphinxcontrib-jsmath = "*" +sphinxcontrib-qthelp = "*" +sphinxcontrib-serializinghtml = ">=1.1.5" + +[package.extras] +docs = ["sphinxcontrib-websupport"] +lint = ["docutils-stubs", "flake8 (>=3.5.0)", "flake8-simplify", "isort", "mypy (>=0.990)", "ruff", "sphinx-lint", "types-requests"] +test = ["cython", "filelock", "html5lib", "pytest (>=4.6)"] + +[[package]] +name = "sphinxcontrib-applehelp" +version = "1.0.4" +description = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books" +optional = false +python-versions = ">=3.8" +files = [ + {file = "sphinxcontrib-applehelp-1.0.4.tar.gz", hash = "sha256:828f867945bbe39817c210a1abfd1bc4895c8b73fcaade56d45357a348a07d7e"}, + {file = "sphinxcontrib_applehelp-1.0.4-py3-none-any.whl", hash = "sha256:29d341f67fb0f6f586b23ad80e072c8e6ad0b48417db2bde114a4c9746feb228"}, +] + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +test = ["pytest"] + +[[package]] +name = "sphinxcontrib-devhelp" +version = "1.0.2" +description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document." +optional = false +python-versions = ">=3.5" +files = [ + {file = "sphinxcontrib-devhelp-1.0.2.tar.gz", hash = "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"}, + {file = "sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e"}, +] + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +test = ["pytest"] + +[[package]] +name = "sphinxcontrib-htmlhelp" +version = "2.0.1" +description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" +optional = false +python-versions = ">=3.8" +files = [ + {file = "sphinxcontrib-htmlhelp-2.0.1.tar.gz", hash = "sha256:0cbdd302815330058422b98a113195c9249825d681e18f11e8b1f78a2f11efff"}, + {file = "sphinxcontrib_htmlhelp-2.0.1-py3-none-any.whl", hash = "sha256:c38cb46dccf316c79de6e5515e1770414b797162b23cd3d06e67020e1d2a6903"}, +] + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +test = ["html5lib", "pytest"] + +[[package]] +name = "sphinxcontrib-jsmath" +version = "1.0.1" +description = "A sphinx extension which renders display math in HTML via JavaScript" +optional = false +python-versions = ">=3.5" +files = [ + {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, + {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, +] + +[package.extras] +test = ["flake8", "mypy", "pytest"] + +[[package]] +name = "sphinxcontrib-qthelp" +version = "1.0.3" +description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document." +optional = false +python-versions = ">=3.5" +files = [ + {file = "sphinxcontrib-qthelp-1.0.3.tar.gz", hash = "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72"}, + {file = "sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"}, +] + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +test = ["pytest"] + +[[package]] +name = "sphinxcontrib-serializinghtml" +version = "1.1.5" +description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)." +optional = false +python-versions = ">=3.5" +files = [ + {file = "sphinxcontrib-serializinghtml-1.1.5.tar.gz", hash = "sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952"}, + {file = "sphinxcontrib_serializinghtml-1.1.5-py2.py3-none-any.whl", hash = "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd"}, +] + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +test = ["pytest"] + +[[package]] +name = "urllib3" +version = "2.0.7" +description = "HTTP library with thread-safe connection pooling, file post, and more." +optional = false +python-versions = ">=3.7" +files = [ + {file = "urllib3-2.0.7-py3-none-any.whl", hash = "sha256:fdb6d215c776278489906c2f8916e6e7d4f5a9b602ccbcfdf7f016fc8da0596e"}, + {file = "urllib3-2.0.7.tar.gz", hash = "sha256:c97dfde1f7bd43a71c8d2a58e369e9b2bf692d1334ea9f9cae55add7d0dd0f84"}, +] + +[package.extras] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +secure = ["certifi", "cryptography (>=1.9)", "idna (>=2.0.0)", "pyopenssl (>=17.1.0)", "urllib3-secure-extra"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["zstandard (>=0.18.0)"] + +[[package]] +name = "zipp" +version = "3.17.0" +description = "Backport of pathlib-compatible object wrapper for zip files" +optional = false +python-versions = ">=3.8" +files = [ + {file = "zipp-3.17.0-py3-none-any.whl", hash = "sha256:0e923e726174922dce09c53c59ad483ff7bbb8e572e00c7f7c46b88556409f31"}, + {file = "zipp-3.17.0.tar.gz", hash = "sha256:84e64a1c28cf7e91ed2078bb8cc8c259cb19b76942096c8d7b84947690cabaf0"}, +] + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"] +testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy (>=0.9.1)", "pytest-ruff"] + +[metadata] +lock-version = "2.0" +python-versions = "^3.8" +content-hash = "454bbc88f1b6c2be019c27da622698360726b6528f909624561b45613d32e3f1" diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 000000000..883fa3486 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,25 @@ +[tool.poetry] +name = "mackup" +version = "0.8.39" +description = "Keep your application settings in sync (macOS/Linux)" +authors = ["Laurent Raufaste "] +license = "GPLv3" +readme = "README.md" + +[tool.poetry.dependencies] +python = "^3.8" +docopt = "^0.6.2" +six = "^1.16.0" + +[tool.poetry.group.dev] +optional = true + +[tool.poetry.group.dev.dependencies] +nose-py3 = "^1.6.3" + +[build-system] +requires = ["poetry-core"] +build-backend = "poetry.core.masonry.api" + +[tool.poetry.scripts] +mackup = "mackup.main:main" diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index 2a9acf13d..000000000 --- a/setup.cfg +++ /dev/null @@ -1,2 +0,0 @@ -[bdist_wheel] -universal = 1 diff --git a/setup.py b/setup.py deleted file mode 100644 index 8870e2acb..000000000 --- a/setup.py +++ /dev/null @@ -1,32 +0,0 @@ -"""Setup file to automate the install of Mackup in the Python environment.""" -from setuptools import setup -from mackup.constants import VERSION - - -setup( - name="mackup", - version=VERSION, - author="Laurent Raufaste", - author_email="analogue@glop.org", - url="https://github.com/lra/mackup", - description="Keep your application settings in sync (OS X/Linux)", - keywords="configuration config dotfiles sync backup dropbox gdrive box", - license="GPLv3", - packages=["mackup"], - install_requires=["docopt", "six"], - entry_points={"console_scripts": ["mackup=mackup.main:main"]}, - package_data={"mackup": ["applications/*.cfg"]}, - classifiers=[ - "Development Status :: 4 - Beta", - "Environment :: Console", - "Intended Audience :: End Users/Desktop", - ( - "License :: OSI Approved :: " - "GNU General Public License v3 or later (GPLv3+)" - ), - "Natural Language :: English", - "Operating System :: POSIX", - "Programming Language :: Python", - "Topic :: Utilities", - ], -) diff --git a/tests/README.md b/tests/README.md index 0d2ca02ee..d27f371d0 100644 --- a/tests/README.md +++ b/tests/README.md @@ -2,19 +2,19 @@ Tests are put in this folder. -Feel free to add more, the more the better ! +Feel free to add more, the more the better! ## How to run the tests ```bash -cd src/mackup -pip install -r requirements.txt -nosetests +pip install pipenv +pipenv install -d +pipenv run make test ``` And you should see -``` +```text . ---------------------------------------------------------------------- Ran 1 test in 0.016s @@ -23,4 +23,4 @@ OK ``` Yeah, I wrote this file when there was only 1 test, I hope there will be more -when you read it ! +when you read it! diff --git a/tests/config_tests.py b/tests/config_tests.py index 6f5bab59d..08109b3cc 100644 --- a/tests/config_tests.py +++ b/tests/config_tests.py @@ -4,7 +4,6 @@ from mackup.constants import ( ENGINE_DROPBOX, ENGINE_GDRIVE, - ENGINE_COPY, ENGINE_ICLOUD, ENGINE_FS, ) @@ -28,10 +27,10 @@ def test_config_no_config(self): assert cfg.path == "/home/some_user/Dropbox" assert isinstance(cfg.directory, str) - assert cfg.directory == u"Mackup" + assert cfg.directory == "Mackup" assert isinstance(cfg.fullpath, str) - assert cfg.fullpath == u"/home/some_user/Dropbox/Mackup" + assert cfg.fullpath == "/home/some_user/Dropbox/Mackup" assert cfg.apps_to_ignore == set() assert cfg.apps_to_sync == set() @@ -43,13 +42,13 @@ def test_config_empty(self): assert cfg.engine == ENGINE_DROPBOX assert isinstance(cfg.path, str) - assert cfg.path == u"/home/some_user/Dropbox" + assert cfg.path == "/home/some_user/Dropbox" assert isinstance(cfg.directory, str) - assert cfg.directory == u"Mackup" + assert cfg.directory == "Mackup" assert isinstance(cfg.fullpath, str) - assert cfg.fullpath == u"/home/some_user/Dropbox/Mackup" + assert cfg.fullpath == "/home/some_user/Dropbox/Mackup" assert cfg.apps_to_ignore == set() assert cfg.apps_to_sync == set() @@ -61,13 +60,13 @@ def test_config_engine_dropbox(self): assert cfg.engine == ENGINE_DROPBOX assert isinstance(cfg.path, str) - assert cfg.path == u"/home/some_user/Dropbox" + assert cfg.path == "/home/some_user/Dropbox" assert isinstance(cfg.directory, str) - assert cfg.directory == u"some_weirld_name" + assert cfg.directory == "some_weirld_name" assert isinstance(cfg.fullpath, str) - assert cfg.fullpath == u"/home/some_user/Dropbox/some_weirld_name" + assert cfg.fullpath == "/home/some_user/Dropbox/some_weirld_name" assert cfg.apps_to_ignore == set() assert cfg.apps_to_sync == set() @@ -79,13 +78,13 @@ def test_config_engine_filesystem_absolute(self): assert cfg.engine == ENGINE_FS assert isinstance(cfg.path, str) - assert cfg.path == u"/some/absolute/folder" + assert cfg.path == "/some/absolute/folder" assert isinstance(cfg.directory, str) - assert cfg.directory == u"custom_folder" + assert cfg.directory == "custom_folder" assert isinstance(cfg.fullpath, str) - assert cfg.fullpath == u"/some/absolute/folder/custom_folder" + assert cfg.fullpath == "/some/absolute/folder/custom_folder" assert cfg.apps_to_ignore == set(["subversion", "sequel-pro"]) assert cfg.apps_to_sync == set() @@ -98,15 +97,15 @@ def test_config_engine_filesystem(self): assert isinstance(cfg.path, str) assert cfg.path.endswith( - os.path.join(os.environ[u"HOME"], u"some/relative/folder") + os.path.join(os.environ["HOME"], "some/relative/folder") ) assert isinstance(cfg.directory, str) - assert cfg.directory == u"Mackup" + assert cfg.directory == "Mackup" assert isinstance(cfg.fullpath, str) assert cfg.fullpath == os.path.join( - os.environ[u"HOME"], u"some/relative/folder", u"Mackup" + os.environ["HOME"], "some/relative/folder", "Mackup" ) assert cfg.apps_to_ignore == set() @@ -119,31 +118,13 @@ def test_config_engine_google_drive(self): assert cfg.engine == ENGINE_GDRIVE assert isinstance(cfg.path, str) - assert cfg.path == u"/Users/whatever/Google Drive" - - assert isinstance(cfg.directory, str) - assert cfg.directory == u"Mackup" - - assert isinstance(cfg.fullpath, str) - assert cfg.fullpath.endswith(u"/Google Drive/Mackup") - - assert cfg.apps_to_ignore == set(["subversion", "sequel-pro", "sabnzbd"]) - assert cfg.apps_to_sync == set(["sublime-text-3", "x11", "sabnzbd"]) - - def test_config_engine_copy(self): - cfg = Config("mackup-engine-copy.cfg") - - assert isinstance(cfg.engine, str) - assert cfg.engine == ENGINE_COPY - - assert isinstance(cfg.path, str) - assert cfg.path == u"/Users/someuser/Copy" + assert cfg.path == "/Users/whatever/Google Drive" assert isinstance(cfg.directory, str) - assert cfg.directory == u"Mackup" + assert cfg.directory == "Mackup" assert isinstance(cfg.fullpath, str) - assert cfg.fullpath.endswith(u"/Copy/Mackup") + assert cfg.fullpath.endswith("/Google Drive/Mackup") assert cfg.apps_to_ignore == set(["subversion", "sequel-pro", "sabnzbd"]) assert cfg.apps_to_sync == set(["sublime-text-3", "x11", "sabnzbd"]) @@ -160,10 +141,10 @@ def test_config_engine_icloud(self): ) assert isinstance(cfg.directory, str) - assert cfg.directory == u"Mackup" + assert cfg.directory == "Mackup" assert isinstance(cfg.fullpath, str) - assert cfg.fullpath.endswith(u"/com~apple~CloudDocs/Mackup") + assert cfg.fullpath.endswith("/com~apple~CloudDocs/Mackup") assert cfg.apps_to_ignore == set(["subversion", "sequel-pro", "sabnzbd"]) assert cfg.apps_to_sync == set(["sublime-text-3", "x11", "sabnzbd"]) @@ -186,10 +167,10 @@ def test_config_apps_to_ignore(self): assert cfg.path == "/home/some_user/Dropbox" assert isinstance(cfg.directory, str) - assert cfg.directory == u"Mackup" + assert cfg.directory == "Mackup" assert isinstance(cfg.fullpath, str) - assert cfg.fullpath == u"/home/some_user/Dropbox/Mackup" + assert cfg.fullpath == "/home/some_user/Dropbox/Mackup" assert cfg.apps_to_ignore == set(["subversion", "sequel-pro", "sabnzbd"]) assert cfg.apps_to_sync == set() @@ -201,13 +182,13 @@ def test_config_apps_to_sync(self): assert cfg.engine == ENGINE_DROPBOX assert isinstance(cfg.path, str) - assert cfg.path == u"/home/some_user/Dropbox" + assert cfg.path == "/home/some_user/Dropbox" assert isinstance(cfg.directory, str) - assert cfg.directory == u"Mackup" + assert cfg.directory == "Mackup" assert isinstance(cfg.fullpath, str) - assert cfg.fullpath == u"/home/some_user/Dropbox/Mackup" + assert cfg.fullpath == "/home/some_user/Dropbox/Mackup" assert cfg.apps_to_ignore == set() assert cfg.apps_to_sync == set(["sabnzbd", "sublime-text-3", "x11"]) @@ -219,13 +200,13 @@ def test_config_apps_to_ignore_and_sync(self): assert cfg.engine == ENGINE_DROPBOX assert isinstance(cfg.path, str) - assert cfg.path == u"/home/some_user/Dropbox" + assert cfg.path == "/home/some_user/Dropbox" assert isinstance(cfg.directory, str) - assert cfg.directory == u"Mackup" + assert cfg.directory == "Mackup" assert isinstance(cfg.fullpath, str) - assert cfg.fullpath == u"/home/some_user/Dropbox/Mackup" + assert cfg.fullpath == "/home/some_user/Dropbox/Mackup" assert cfg.apps_to_ignore == set(["subversion", "sequel-pro", "sabnzbd"]) assert cfg.apps_to_sync == set(["sabnzbd", "sublime-text-3", "x11", "vim"]) diff --git a/tests/fixtures/Library/Application Support/Copy Agent/config.db b/tests/fixtures/Library/Application Support/Copy Agent/config.db deleted file mode 100644 index 5903ca1db..000000000 Binary files a/tests/fixtures/Library/Application Support/Copy Agent/config.db and /dev/null differ diff --git a/tests/fixtures/Library/Mobile Documents/com~apple~CloudDocs/_blank_.md b/tests/fixtures/Library/Mobile Documents/com~apple~CloudDocs/_blank_.md index 6a23f9455..06c937b02 100644 --- a/tests/fixtures/Library/Mobile Documents/com~apple~CloudDocs/_blank_.md +++ b/tests/fixtures/Library/Mobile Documents/com~apple~CloudDocs/_blank_.md @@ -1 +1 @@ -Blank file for git sync \ No newline at end of file +Blank file for git sync diff --git a/tests/fixtures/mackup-apps_to_ignore.cfg b/tests/fixtures/mackup-apps_to_ignore.cfg index be205c742..b3c69e181 100644 --- a/tests/fixtures/mackup-apps_to_ignore.cfg +++ b/tests/fixtures/mackup-apps_to_ignore.cfg @@ -1,4 +1,4 @@ [applications_to_ignore] -subversion -sequel-pro +subversion ; inline comment +sequel-pro # inline comment sabnzbd diff --git a/tests/fixtures/mackup-engine-copy.cfg b/tests/fixtures/mackup-engine-copy.cfg deleted file mode 100644 index 901c2cb09..000000000 --- a/tests/fixtures/mackup-engine-copy.cfg +++ /dev/null @@ -1,12 +0,0 @@ -[storage] -engine = copy - -[applications_to_ignore] -subversion -sequel-pro -sabnzbd - -[applications_to_sync] -sabnzbd -sublime-text-3 -x11 diff --git a/tests/utils_test.py b/tests/utils_test.py index 36b76e2f4..0fbf4fe81 100644 --- a/tests/utils_test.py +++ b/tests/utils_test.py @@ -279,7 +279,7 @@ def test_error(self): def test_failed_backup_location(self): """ Tests for the error that should occur if the backup folder cannot be - found for Dropbox, Google, and Copy + found for Dropbox and Google """ # Hack to make our home folder some temporary folder temp_home = tempfile.mkdtemp() @@ -297,12 +297,6 @@ def test_failed_backup_location(self): ) self.assertRaises(SystemExit, utils.get_google_drive_folder_location) - # Check for the missing Copy Folder - assert not os.path.exists( - os.path.join(temp_home, "Library/Application Support/Copy Agent/config.db") - ) - self.assertRaises(SystemExit, utils.get_copy_folder_location) - def test_is_process_running(self): # A pgrep that has one letter and a wildcard will always return id 1 assert utils.is_process_running("a*")