├── .gitattributes
├── .github
├── FUNDING.yml
├── ISSUE_TEMPLATE
│ ├── bug_report.md
│ └── feature_request.md
├── PULL_REQUEST_TEMPLATE.md
└── workflows
│ ├── codeql-analysis.yml
│ └── create-release.yml
├── .gitignore
├── .gitmodules
├── .pyup.yml
├── .travis.yaml
├── .vscode
└── settings.json
├── AUTHORS.md
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── MANIFEST.in
├── Makefile
├── Pipfile
├── README.rst
├── TODO
├── config
├── askpass.applescript
├── com.macdaily.askpass.plist
├── com.macdaily.{MODE}.plist
├── confirm.applescript
├── daemon.applescript
└── dailyrc.ini
├── doc
├── archive.rst
├── bundle.rst
├── cleanup.rst
├── config.rst
├── dependency.rst
├── help.rst
├── img
│ ├── Python.png
│ ├── askpass.png
│ └── confirm.png
├── install.rst
├── launch.rst
├── logging.rst
├── miscellaneous.rst
├── postinstall.rst
├── reinstall.rst
├── rst
│ ├── macdaily-archive.rst
│ ├── macdaily-cleanup-brew.rst
│ ├── macdaily-cleanup-cask.rst
│ ├── macdaily-cleanup-npm.rst
│ ├── macdaily-cleanup-pip.rst
│ ├── macdaily-cleanup.rst
│ ├── macdaily-config.rst
│ ├── macdaily-dependency-brew.rst
│ ├── macdaily-dependency-pip.rst
│ ├── macdaily-dependency.rst
│ ├── macdaily-help.rst
│ ├── macdaily-install-apm.rst
│ ├── macdaily-install-brew.rst
│ ├── macdaily-install-cask.rst
│ ├── macdaily-install-gem.rst
│ ├── macdaily-install-mas.rst
│ ├── macdaily-install-npm.rst
│ ├── macdaily-install-pip.rst
│ ├── macdaily-install-system.rst
│ ├── macdaily-install.rst
│ ├── macdaily-launch.rst
│ ├── macdaily-logging-apm.rst
│ ├── macdaily-logging-app.rst
│ ├── macdaily-logging-brew.rst
│ ├── macdaily-logging-cask.rst
│ ├── macdaily-logging-gem.rst
│ ├── macdaily-logging-mas.rst
│ ├── macdaily-logging-npm.rst
│ ├── macdaily-logging-pip.rst
│ ├── macdaily-logging-tap.rst
│ ├── macdaily-logging.rst
│ ├── macdaily-postinstall.rst
│ ├── macdaily-reinstall-brew.rst
│ ├── macdaily-reinstall-cask.rst
│ ├── macdaily-reinstall.rst
│ ├── macdaily-uninstall-brew.rst
│ ├── macdaily-uninstall-cask.rst
│ ├── macdaily-uninstall-pip.rst
│ ├── macdaily-uninstall.rst
│ ├── macdaily-update-apm.rst
│ ├── macdaily-update-brew.rst
│ ├── macdaily-update-cask.rst
│ ├── macdaily-update-gem.rst
│ ├── macdaily-update-mas.rst
│ ├── macdaily-update-npm.rst
│ ├── macdaily-update-pip.rst
│ ├── macdaily-update-system.rst
│ ├── macdaily-update.rst
│ └── macdaily.rst
├── uninstall.rst
└── update.rst
├── macdaily
├── __init__.py
├── __main__.py
├── api
│ ├── archive.py
│ ├── bundle.py
│ ├── cleanup.py
│ ├── config.py
│ ├── dependency.py
│ ├── help.py
│ ├── install.py
│ ├── launch.py
│ ├── logging.py
│ ├── postinstall.py
│ ├── reinstall.py
│ ├── uninstall.py
│ └── update.py
├── cli
│ ├── archive.py
│ ├── bundle.py
│ ├── cleanup.py
│ ├── config.py
│ ├── dependency.py
│ ├── help.py
│ ├── install.py
│ ├── launch.py
│ ├── logging.py
│ ├── postinstall.py
│ ├── reinstall.py
│ ├── uninstall.py
│ └── update.py
├── cls
│ ├── bundle
│ │ ├── dump.py
│ │ └── load.py
│ ├── cleanup
│ │ ├── brew.py
│ │ ├── cask.py
│ │ ├── npm.py
│ │ └── pip.py
│ ├── command.py
│ ├── dependency
│ │ ├── brew.py
│ │ └── pip.py
│ ├── install
│ │ ├── apm.py
│ │ ├── brew.py
│ │ ├── cask.py
│ │ ├── gem.py
│ │ ├── mas.py
│ │ ├── npm.py
│ │ ├── pip.py
│ │ └── system.py
│ ├── logging
│ │ ├── apm.py
│ │ ├── app.py
│ │ ├── brew.py
│ │ ├── cask.py
│ │ ├── gem.py
│ │ ├── mas.py
│ │ ├── npm.py
│ │ ├── pip.py
│ │ └── tap.py
│ ├── reinstall
│ │ ├── brew.py
│ │ └── cask.py
│ ├── uninstall
│ │ ├── brew.py
│ │ ├── cask.py
│ │ └── pip.py
│ └── update
│ │ ├── apm.py
│ │ ├── brew.py
│ │ ├── cask.py
│ │ ├── gem.py
│ │ ├── mas.py
│ │ ├── npm.py
│ │ ├── pip.py
│ │ └── system.py
├── cmd
│ ├── archive.py
│ ├── bundle.py
│ ├── cleanup.py
│ ├── config.py
│ ├── dependency.py
│ ├── install.py
│ ├── launch.py
│ ├── logging.py
│ ├── postinstall.py
│ ├── reinstall.py
│ ├── uninstall.py
│ └── update.py
├── comp
│ └── macdaily.bash-completion
├── core
│ ├── apm.py
│ ├── brew.py
│ ├── cask.py
│ ├── gem.py
│ ├── mas.py
│ ├── npm.py
│ ├── pip.py
│ └── system.py
├── img
│ ├── askpass.icns
│ └── confirm.icns
├── man
│ ├── macdaily-archive.8
│ ├── macdaily-cleanup-brew.8
│ ├── macdaily-cleanup-cask.8
│ ├── macdaily-cleanup-npm.8
│ ├── macdaily-cleanup-pip.8
│ ├── macdaily-cleanup.8
│ ├── macdaily-config.8
│ ├── macdaily-dependency-brew.8
│ ├── macdaily-dependency-pip.8
│ ├── macdaily-dependency.8
│ ├── macdaily-help.8
│ ├── macdaily-install-apm.8
│ ├── macdaily-install-brew.8
│ ├── macdaily-install-cask.8
│ ├── macdaily-install-gem.8
│ ├── macdaily-install-mas.8
│ ├── macdaily-install-npm.8
│ ├── macdaily-install-pip.8
│ ├── macdaily-install-system.8
│ ├── macdaily-install.8
│ ├── macdaily-launch.8
│ ├── macdaily-logging-apm.8
│ ├── macdaily-logging-app.8
│ ├── macdaily-logging-brew.8
│ ├── macdaily-logging-cask.8
│ ├── macdaily-logging-gem.8
│ ├── macdaily-logging-mas.8
│ ├── macdaily-logging-npm.8
│ ├── macdaily-logging-pip.8
│ ├── macdaily-logging-tap.8
│ ├── macdaily-logging.8
│ ├── macdaily-postinstall.8
│ ├── macdaily-reinstall-brew.8
│ ├── macdaily-reinstall-cask.8
│ ├── macdaily-reinstall.8
│ ├── macdaily-uninstall-brew.8
│ ├── macdaily-uninstall-cask.8
│ ├── macdaily-uninstall-pip.8
│ ├── macdaily-uninstall.8
│ ├── macdaily-update-apm.8
│ ├── macdaily-update-brew.8
│ ├── macdaily-update-cask.8
│ ├── macdaily-update-gem.8
│ ├── macdaily-update-mas.8
│ ├── macdaily-update-npm.8
│ ├── macdaily-update-pip.8
│ ├── macdaily-update-system.8
│ ├── macdaily-update.8
│ └── macdaily.8
├── res
│ ├── askpass.applescript
│ ├── confirm.applescript
│ ├── find.py
│ └── magic.py
└── util
│ ├── compat.py
│ ├── const
│ ├── macro.py
│ ├── string.py
│ └── term.py
│ ├── exceptions.py
│ ├── globals.py
│ └── tools
│ ├── decorators.py
│ ├── get.py
│ ├── make.py
│ ├── misc.py
│ ├── print.py
│ └── script.py
├── setup-emoji.py
├── setup-version.py
├── setup.cfg
└── setup.py
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
--------------------------------------------------------------------------------
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 |
3 | github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
4 | patreon: jarryshaw # Replace with a single Patreon username
5 | open_collective: # Replace with a single Open Collective username
6 | ko_fi: # Replace with a single Ko-fi username
7 | tidelift: pypi/macdaily # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9 | liberapay: # Replace with a single Liberapay username
10 | issuehunt: # Replace with a single IssueHunt username
11 | otechie: # Replace with a single Otechie username
12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
13 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/bug_report.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Bug report
3 | about: Create a report to help us improve
4 |
5 | ---
6 |
7 | **Describe the bug**
8 | A clear and concise description of what the bug is.
9 |
10 | **System information**
11 | A clear and concise description of your system information.
12 | - macOS Version: [e.g. Mojave 10.14.4]
13 | - Python Version: [e.g 3.7, 3.6, 3.5, 3.4]
14 | - Python Implementation: [e.g. CPython, PyPy]
15 |
16 | **Traceback stack**
17 | Run MacDaily again with `MACDAILY_DEVMODE=true` set to provide the traceback stack.
18 |
19 | **Expected behavior**
20 | A clear and concise description of what you expected to happen.
21 |
22 | **Additional context**
23 | Add any other context about the problem here.
24 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature_request.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Feature request
3 | about: Suggest an idea for this project
4 |
5 | ---
6 |
7 | **Is your feature request related to a problem? Please describe.**
8 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
9 |
10 | **Describe the solution you'd like**
11 | A clear and concise description of what you want to happen.
12 |
13 | **Describe alternatives you've considered**
14 | A clear and concise description of any alternative solutions or features you've considered.
15 |
16 | **Additional context**
17 | Add any other context or screenshots about the feature request here.
18 |
--------------------------------------------------------------------------------
/.github/PULL_REQUEST_TEMPLATE.md:
--------------------------------------------------------------------------------
1 | ## Please follow the guide below
2 |
3 | - You will be asked some questions, please read them **carefully** and answer honestly
4 | - Put an `x` into all the boxes [ ] relevant to your *pull request* (like that [x])
5 | - Use *Preview* tab to see how your *pull request* will actually look like
6 |
7 | - [ ] [Searched](https://github.com/JarryShaw/MacDaily/search?q=is%3Apr&type=Issues) for similar pull requests
8 | - [ ] Followed PEP8 coding style
9 | - [ ] Tested with proper test samples
10 |
11 | ### What is the purpose of your *pull request*?
12 | - [ ] Bug fix
13 | - [ ] Improvement
14 | - [ ] New feature
15 |
16 | ---
17 |
18 | ### Description of your *pull request* and other information
19 |
20 | Explanation of your *pull request* in arbitrary form goes here. Please make sure the description explains the purpose and effect of your *pull request* and is worded well enough to be understood. Provide as much context and examples as possible.
21 |
--------------------------------------------------------------------------------
/.github/workflows/codeql-analysis.yml:
--------------------------------------------------------------------------------
1 | name: "CodeQL"
2 |
3 | on:
4 | push:
5 | branches: [master, ]
6 | pull_request:
7 | # The branches below must be a subset of the branches above
8 | branches: [master]
9 | schedule:
10 | - cron: '0 2 * * 6'
11 |
12 | jobs:
13 | analyze:
14 | name: Analyze
15 | runs-on: ubuntu-latest
16 |
17 | steps:
18 | - name: Checkout repository
19 | uses: actions/checkout@v2
20 | with:
21 | # We must fetch at least the immediate parents so that if this is
22 | # a pull request then we can checkout the head.
23 | fetch-depth: 2
24 |
25 | # If this run was triggered by a pull request event, then checkout
26 | # the head of the pull request instead of the merge commit.
27 | - run: git checkout HEAD^2
28 | if: ${{ github.event_name == 'pull_request' }}
29 |
30 | # Initializes the CodeQL tools for scanning.
31 | - name: Initialize CodeQL
32 | uses: github/codeql-action/init@v1
33 | # Override language selection by uncommenting this and choosing your languages
34 | # with:
35 | # languages: go, javascript, csharp, python, cpp, java
36 |
37 | # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
38 | # If this step fails, then you should remove it and run the build manually (see below)
39 | - name: Autobuild
40 | uses: github/codeql-action/autobuild@v1
41 |
42 | # ℹ️ Command-line programs to run using the OS shell.
43 | # 📚 https://git.io/JvXDl
44 |
45 | # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
46 | # and modify them (or add more) to build your code if your project
47 | # uses a compiled language
48 |
49 | #- run: |
50 | # make bootstrap
51 | # make release
52 |
53 | - name: Perform CodeQL Analysis
54 | uses: github/codeql-action/analyze@v1
55 |
--------------------------------------------------------------------------------
/.github/workflows/create-release.yml:
--------------------------------------------------------------------------------
1 | on:
2 | push:
3 | # Sequence of patterns matched against refs/tags
4 | tags:
5 | - 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10
6 |
7 | name: Create Release
8 |
9 | jobs:
10 | build:
11 | name: Create Release
12 | runs-on: ubuntu-latest
13 | steps:
14 | - name: Checkout code
15 | uses: actions/checkout@v2
16 | - name: Create Release
17 | id: create_release
18 | uses: actions/create-release@v1
19 | env:
20 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token
21 | with:
22 | tag_name: ${{ github.ref }}
23 | release_name: MacDaily ${{ github.ref }}
24 | body: ${{ join(github.event.commits.*.message, '\n') }}
25 | draft: false
26 | prerelease: false
27 |
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "release"]
2 | path = release
3 | url = https://github.com/JarryShaw/MacDaily.git
4 | branch = release
5 | [submodule "util/askpass"]
6 | path = util/askpass
7 | url = https://github.com/JarryShaw/askpass.git
8 | [submodule "util/confirm"]
9 | path = util/confirm
10 | url = https://github.com/JarryShaw/confirm.git
11 |
--------------------------------------------------------------------------------
/.pyup.yml:
--------------------------------------------------------------------------------
1 | # autogenerated pyup.io config file
2 | # see https://pyup.io/docs/configuration/ for all available options
3 |
4 | schedule: every week
5 |
--------------------------------------------------------------------------------
/.travis.yaml:
--------------------------------------------------------------------------------
1 | language: python
2 | group: travis_latest
3 |
4 | python:
5 | - 3.8-dev
6 | - 3.7
7 | - 3.6
8 | - 3.5
9 | - 3.4
10 |
11 | matrix:
12 | include:
13 | - os: osx
14 | language: minimal
15 | install: pipenv install --dev
16 |
17 | # Homebrew dependencies
18 | addons:
19 | homebrew:
20 | packages:
21 | - pipenv
22 | update: true
23 |
24 | # command to install dependencies
25 | install:
26 | - pipenv install --dev
27 |
28 | # command to run tests
29 | script:
30 | - macdaily --help
31 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "python.pythonPath": "/Users/jarryshaw/GitHub/MacDaily/.venv/bin/python3.7",
3 | "cSpell.words": [
4 | "Crgle",
5 | "DSKDIR",
6 | "Funj",
7 | "Fureybpx",
8 | "Ornyvfu",
9 | "Oyrffrq",
10 | "Punbf",
11 | "TCSAFLUSH",
12 | "Virtualenv",
13 | "Wneel",
14 | "aktau",
15 | "avpur",
16 | "bdim",
17 | "bpwd",
18 | "chld",
19 | "dailyrc",
20 | "deps",
21 | "distro",
22 | "docutils",
23 | "evtugrbhfarff",
24 | "fhssre",
25 | "gaocegege",
26 | "gubfr",
27 | "gurvef",
28 | "jvyy",
29 | "ladir",
30 | "ntqry",
31 | "pbzr",
32 | "perr",
33 | "pkgs",
34 | "pnhfr",
35 | "pyenv",
36 | "pygments",
37 | "qbar",
38 | "qflag",
39 | "scpt",
40 | "snepr",
41 | "tbody",
42 | "tcgetattr",
43 | "tcsetattr",
44 | "tenivgnf",
45 | "vfa'g",
46 | "vflag",
47 | "xvatqbz",
48 | "ynqqre",
49 | "ynzo",
50 | "zrrx"
51 | ],
52 | "python.linting.enabled": true,
53 | "restructuredtext.confPath": "${workspaceFolder}/docs/conf.py"
54 | }
--------------------------------------------------------------------------------
/AUTHORS.md:
--------------------------------------------------------------------------------
1 | # Authors
2 |
3 | This list is sorted by the number of commits per contributor in _descending_ order.
4 |
5 | Avatar|Contributor|Contributions
6 | :-:|---|:-:
7 |
|[@JarryShaw](https://github.com/JarryShaw)|65
8 |
9 | ---
10 |
11 | Auto-generated by [gaocegege/maintainer](https://github.com/gaocegege/maintainer) on 2019-08-08.
12 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # How to contribute
2 |
3 | This document outlines some of the conventions on development workflow, commit message formatting, contact points and other
4 | resources to make it easier to get your contribution accepted.
5 |
6 | ## Getting started
7 |
8 | - Fork the repository on GitHub.
9 | - Read the README.md for build instructions.
10 | - Play with the project, submit bugs, submit patches!
11 |
12 | ## Contribution flow
13 |
14 | This is a rough outline of what a contributor's workflow looks like:
15 |
16 | - Create a topic branch from where you want to base your work. This is usually master.
17 | - Make commits of logical units and add test case if the change fixes a bug or adds new functionality.
18 | - Run tests and make sure all the tests are passed.
19 | - Make sure your commit messages are in the proper format (see below).
20 | - Push your changes to a topic branch in your fork of the repository.
21 | - Submit a pull request to the repo.
22 |
23 | Thanks for your contributions!
24 |
25 | ## Coding Style
26 |
27 | See the [Python style doc](https://www.python.org/dev/peps/pep-0008/) for details.
28 |
29 | ### Format of the Commit Message
30 |
31 | We follow a rough convention for commit messages that is designed to answer two
32 | questions: what changed and why. The subject line should feature the what and
33 | the body of the commit should describe the why.
34 |
35 |
36 | store/localstore: add comment for variable declaration.
37 |
38 | Improve documentation.
39 |
40 |
41 | The format can be described more formally as follows:
42 |
43 |
44 | subsystem: what changed
45 | BLANK LINE
46 | why this change was made
47 | BLANK LINE
48 | footer(optional)
49 |
50 |
51 | The first line is the subject and should be no longer than 70 characters, the
52 | second line is always blank, and other lines should be wrapped at 80 characters.
53 | This allows the message to be easier to read on GitHub as well as in various
54 | git tools.
55 |
56 | If the change affects more than one subsystem, you can use comma to separate them like util/codec,util/types:.
57 |
58 | If the change affects many subsystems, you can use * instead, like *:.
59 |
60 | For the why part, if no specific reason for the change,
61 | you can use one of some generic reasons like "Improve documentation.",
62 | "Improve performance.", "Improve robustness.", "Improve test coverage."
63 |
64 |
65 | ---
66 |
67 | Auto-generated by [gaocegege/maintainer](https://github.com/gaocegege/maintainer) on 2019-08-08.
68 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | BSD 3-Clause License
2 |
3 | Copyright (c) 2018-2020, Jarry Shaw
4 | All rights reserved.
5 |
6 | Redistribution and use in source and binary forms, with or without
7 | modification, are permitted provided that the following conditions are met:
8 |
9 | * Redistributions of source code must retain the above copyright notice, this
10 | list of conditions and the following disclaimer.
11 |
12 | * Redistributions in binary form must reproduce the above copyright notice,
13 | this list of conditions and the following disclaimer in the documentation
14 | and/or other materials provided with the distribution.
15 |
16 | * Neither the name of the copyright holder nor the names of its
17 | contributors may be used to endorse or promote products derived from
18 | this software without specific prior written permission.
19 |
20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
24 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
27 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.s
30 |
--------------------------------------------------------------------------------
/MANIFEST.in:
--------------------------------------------------------------------------------
1 | global-exclude .DS_Store
2 |
3 | global-include *.py
4 |
5 | prune .venv
6 | prune Cellar
7 |
8 | include macdaily/comp/macdaily.bash-completion
9 | include macdaily/res/*.applescript
10 | include macdaily/img/*.icns
11 | include macdaily/res/*.py
12 | include macdaily/man/*.1
13 | include README.rst
14 | include LICENSE
15 |
--------------------------------------------------------------------------------
/Pipfile:
--------------------------------------------------------------------------------
1 | [[source]]
2 | name = "tuna"
3 | url = "https://pypi.tuna.tsinghua.edu.cn/simple"
4 | verify_ssl = true
5 |
6 | [[source]]
7 | name = "sjtu"
8 | url = "https://mirrors.sjtug.sjtu.edu.cn/pypi/web/simple"
9 | verify_ssl = true
10 |
11 | [[source]]
12 | name = "pypi"
13 | url = "https://pypi.org/simple"
14 | verify_ssl = true
15 |
16 | [packages]
17 | configupdater = "*"
18 | dictdumper = ">=0.7.0.post1"
19 | ptyng = ">=0.3.3"
20 | tbtrim = ">=0.2.1"
21 |
22 | [dev-packages]
23 | macdaily = {path = ".",editable = true}
24 | subprocess32 = ">=3.5.3"
25 | pathlib2 = ">=2.3.2"
26 | psutil = "*"
27 | f2format = "*"
28 | requests = "*"
29 | beautifulsoup4 = {extras = ["html5lib"],version = "*"}
30 | homebrew-pypi-poet = "*"
31 | docutils = "*"
32 | pygments = "*"
33 | ipython = "*"
34 | autopep8 = "*"
35 | pylint = "*"
36 |
37 | [requires]
38 | python_version = "3"
39 |
--------------------------------------------------------------------------------
/TODO:
--------------------------------------------------------------------------------
1 | # September 13th, 2019
2 |
3 | - [ ] try Sphinx for documentation
4 | - [ ] add *docstring* for MacDaily
5 | - [ ] revise `macdaily.util.tools.script`, avoid directly echoing password in command line
6 | - [ ] consider using a global namespace like `flask.g` for variables sharing across functions
7 |
--------------------------------------------------------------------------------
/config/askpass.applescript:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env osascript
2 |
3 | -- script based on https://github.com/theseal/ssh-askpass
4 |
5 | on run argv
6 | set args to argv as text
7 | if args starts with "--help" or args starts with "-h" then
8 | return "macdaily-askpass [-h|--help] [prompt]"
9 | end if
10 | display dialog args with icon caution default button "OK" default answer "" with hidden answer
11 | return result's text returned
12 | end run
13 |
--------------------------------------------------------------------------------
/config/com.macdaily.askpass.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Label
6 | com.macdaily.askpass
7 | ProgramArguments
8 |
9 | /usr/bin/ssh-agent
10 | -l
11 |
12 | EnvironmentVariables
13 |
14 | SSH_ASKPASS
15 | {ASKPASS}
16 | DISPLAY
17 | 0
18 |
19 | Sockets
20 |
21 | Listeners
22 |
23 | SecureSocketWithKey
24 | SSH_AUTH_SOCK
25 |
26 |
27 | EnableTransactions
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/config/com.macdaily.{MODE}.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Label
6 | com.macdaily.{MODE}.plist
7 | Program
8 | /usr/bin/osascript
9 | ProgramArguments
10 |
11 | /usr/bin/osascript
12 | -e
13 | {PATH}
14 |
15 | RunAtLoad
16 |
17 | RootDirectory
18 | ~/
19 | EnvironmentVariables
20 |
21 | StartCalendarInterval
22 |
23 | StandardOutPath
24 | ~/Library/Logs/MacDaily/{MODE}/stdout.log
25 | StandardErrorPath
26 | ~/Library/Logs/MacDaily/{MODE}/stderr.log
27 |
28 |
29 |
--------------------------------------------------------------------------------
/config/confirm.applescript:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env osascript
2 |
3 | on run argv
4 | set args to argv as text
5 | if args starts with "--help" or args starts with "-h" then
6 | return "macdaily-confirm [-h|--help] [prompt]"
7 | end if
8 | display dialog args with icon note default button "Cancel"
9 | return result's button returned
10 | end run
11 |
--------------------------------------------------------------------------------
/config/daemon.applescript:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env osascript
2 |
3 | -- show notification
4 | display notification "Running scheduled {mode} scripts..." with title "MacDaily"
5 |
6 | -- run script
7 | do shell script "{sys.executable} -m macdaily {mode} {argv}"
8 |
--------------------------------------------------------------------------------
/doc/archive.rst:
--------------------------------------------------------------------------------
1 | :Command Executable:
2 | ``macdaily archive`` | ``md-archive``
3 | :Supported Commands:
4 | ``archive``, ``cleanup``, ``dependency``,
5 | ``logging``, ``postinstall``, ``reinstall``,
6 | ``uninstall``, ``update``, ``logging/apm``,
7 | ``logging/app``, ``logging/brew``, ``logging/cask``,
8 | ``logging/gem``, ``logging/mas``, ``logging/npm``,
9 | ``logging/pip``, ``logging/tap``
10 |
11 | ============================
12 | MacDaily Log Archive Utility
13 | ============================
14 |
15 | - `About <#about>`__
16 | - `Usage <#usage>`__
17 | - `TODO <#todo>`__
18 |
19 | --------------
20 |
21 | About
22 | -----
23 |
24 | MacDaily provides a genuine interface for archiving ancient logs and files.
25 | The ``archive`` command will move all ancient logs to where it belongs
26 | --
27 |
28 | 1. daily logs from last week (7 days) -- ``${logdir}/arcfile`` with
29 | corresponding modes named as ``YYMMDD.tar.gz``
30 | 2. weekly archives from last month (approximately 4 weeks) --
31 | ``${logdir}/tarfile`` with corresponding modes named as
32 | ``YYMMDD-YYMMDD.tar.xz``
33 | 3. even older logs -- inside ``${arcdir}/archive.zip`` with
34 | corresponding modes and named as ``YYMMDD-YYMMDD.tar.bz``
35 |
36 | Actual paths of ``${logdir}`` and ``${arcdir}`` are defined in
37 | ``~/.dailyrc``, may vary from your own settings.
38 |
39 | Usage
40 | -----
41 |
42 | .. code:: man
43 |
44 | usage: macdaily archive [options] ...
45 |
46 | MacDaily Log Archive Utility
47 |
48 | optional arguments:
49 | -h, --help show this help message and exit
50 | -V, --version show program's version number and exit
51 |
52 | specification arguments:
53 | CMD archive logs of specified command, e.g. archive, cleanup,
54 | dependency, logging, postinstall, reinstall, uninstall,
55 | update, logging/apm, logging/app, logging/brew,
56 | logging/cask, logging/gem, logging/mas, logging/npm,
57 | logging/pip and logging/tap
58 |
59 | general arguments:
60 | -a, --all archive all ancient logs
61 | -n, --no-storage do not move ancient logs into external hard disk
62 | -q, --quiet run in quiet mode, with no output information
63 | -v, --verbose run in verbose mode, with detailed output information
64 | -l, --show-log open log in Console.app upon completion of command
65 |
66 | TODO
67 | ----
68 |
69 | - ✔️ reconstruct archive CLI
70 | - ❌ implement further spec for archive commands
71 |
--------------------------------------------------------------------------------
/doc/bundle.rst:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JarryShaw/MacDaily/9bd69fd710c4b00553507b62798532431104abab/doc/bundle.rst
--------------------------------------------------------------------------------
/doc/help.rst:
--------------------------------------------------------------------------------
1 | :Command Executable:
2 | ``macdaily help`` | ``md-help``
3 | :Supported Commands:
4 | all MacDaily commands and subsidiaries
5 |
6 | =================================
7 | MacDaily Usage Information Manual
8 | =================================
9 |
10 | - `About <#about>`__
11 | - `Usage <#usage>`__
12 | - `TODO <#todo>`__
13 |
14 | --------------
15 |
16 | About
17 | -----
18 |
19 | MacDaily provides a collection of revised manuals to help users dig into.
20 | MacDaily ``help`` command will lead you to these
21 | `man pages `__, which are generated
22 | by ``rst2man.py`` from |docutils|_ and displayed with ``man(1)``.
23 |
24 | .. |docutils| replace:: ``docutils``
25 | .. _docutils: http://docutils.sourceforge.net
26 |
27 | Usage
28 | -----
29 |
30 | .. code:: man
31 |
32 | usage: macdaily help [options] ...
33 |
34 | MacDaily Usage Information Manual
35 |
36 | optional arguments:
37 | -h, --help show this help message and exit
38 | -V, --version show program's version number and exit
39 |
40 | specification arguments:
41 | CMD display manual information about such command
42 |
43 | aliases: doc, man
44 |
45 | TODO
46 | ----
47 |
48 | - ✔️ reconstruct help CLI
49 | - ❌ implement and revise man pages
50 |
--------------------------------------------------------------------------------
/doc/img/Python.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JarryShaw/MacDaily/9bd69fd710c4b00553507b62798532431104abab/doc/img/Python.png
--------------------------------------------------------------------------------
/doc/img/askpass.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JarryShaw/MacDaily/9bd69fd710c4b00553507b62798532431104abab/doc/img/askpass.png
--------------------------------------------------------------------------------
/doc/img/confirm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JarryShaw/MacDaily/9bd69fd710c4b00553507b62798532431104abab/doc/img/confirm.png
--------------------------------------------------------------------------------
/doc/rst/macdaily-archive.rst:
--------------------------------------------------------------------------------
1 | ================
2 | macdaily-archive
3 | ================
4 |
5 | ----------------------------
6 | MacDaily Log Archive Utility
7 | ----------------------------
8 |
9 | :Version: v2019.8.4
10 | :Date: August 07, 2019
11 | :Manual section: 8
12 | :Author:
13 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
14 | of *MacDaily*. Please contact me at *jarryshaw@icloud.com*.
15 | :Copyright:
16 | *MacDaily* is licensed under the **Apple Open Source License**.
17 |
18 | SYNOPSIS
19 | ========
20 |
21 | macdaily **archive** [*options*] <*path-selection*> ...
22 |
23 | DESCRIPTION
24 | ===========
25 |
26 | *MacDaily* provides a genuine interface for archiving ancient logs and
27 | files. The ``archive`` command will move all ancient logs to where it
28 | belongs --
29 |
30 | 1. daily logs from last week (7 days) -- ``${logdir}/arcfile`` with
31 | corresponding modes named as ``YYMMDD.tar.gz``
32 | 2. weekly archives from last month (approximately 4 weeks) --
33 | ``${logdir}/tarfile`` with corresponding modes named as
34 | ``YYMMDD-YYMMDD.tar.xz``
35 | 3. even older logs -- inside ``${arcdir}/archive.zip`` with
36 | corresponding modes and named as ``YYMMDD-YYMMDD.tar.bz``
37 |
38 | Actual paths of ``${logdir}`` and ``${arcdir}`` are defined in
39 | *~/.dailyrc*, may vary from your own settings.
40 |
41 | OPTIONS
42 | =======
43 |
44 | optional arguments
45 | ------------------
46 |
47 | -h, --help show this help message and exit
48 | -V, --version show program's version number and exit
49 |
50 | specification arguments
51 | -----------------------
52 |
53 | :CMD:
54 | archive logs of specified command, e.g. *archive*, *cleanup*,
55 | *dependency*, *logging*, *postinstall*, *reinstall*, *uninstall*,
56 | *update*, *logging/apm*, *logging/app*, *logging/brew*,
57 | *logging/cask*, *logging/gem*, *logging/mas*, *logging/npm*,
58 | *logging/pip* and *logging/tap*
59 |
60 | general arguments
61 | -----------------
62 |
63 | -a, --all archive all ancient logs
64 | -n, --no-storage do not move ancient logs into external hard disk
65 | -q, --quiet run in quiet mode, with no output information
66 | -v, --verbose run in verbose mode, with detailed output information
67 | -l, --show-log open log in *Console.app* upon completion of command
68 |
--------------------------------------------------------------------------------
/doc/rst/macdaily-cleanup-brew.rst:
--------------------------------------------------------------------------------
1 | =====================
2 | macdaily-cleanup-brew
3 | =====================
4 |
5 | ------------------------------
6 | Homebrew Formula Cache Cleanup
7 | ------------------------------
8 |
9 | :Version: v2019.8.4
10 | :Date: August 07, 2019
11 | :Manual section: 8
12 | :Author:
13 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
14 | of *MacDaily*. Please contact me at *jarryshaw@icloud.com*.
15 | :Copyright:
16 | *MacDaily* is licensed under the **Apple Open Source License**.
17 |
18 | SYNOPSIS
19 | ========
20 |
21 | macdaily **cleanup** *brew* [*options*] ...
22 |
23 | aliases: **homebrew**
24 |
25 | OPTIONS
26 | =======
27 |
28 | optional arguments
29 | ------------------
30 |
31 | -h, --help show this help message and exit
32 | -V, --version show program's version number and exit
33 |
34 | general arguments
35 | -----------------
36 |
37 | -q, --quiet run in quiet mode, with no output information
38 | -v, --verbose run in verbose mode, with detailed output information
39 |
40 | SEE ALSO
41 | ========
42 |
43 | * ``brew(1)``
44 | * ``macdaily-cleanup``
45 | * ``macdaily-cleanup-cask``
46 | * ``macdaily-cleanup-npm``
47 | * ``macdaily-cleanup-pip``
48 |
--------------------------------------------------------------------------------
/doc/rst/macdaily-cleanup-cask.rst:
--------------------------------------------------------------------------------
1 | =====================
2 | macdaily-cleanup-cask
3 | =====================
4 |
5 | ---------------------------
6 | Homebrew Cask Cache Cleanup
7 | ---------------------------
8 |
9 | :Version: v2019.8.4
10 | :Date: August 07, 2019
11 | :Manual section: 8
12 | :Author:
13 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
14 | of *MacDaily*. Please contact me at *jarryshaw@icloud.com*.
15 | :Copyright:
16 | *MacDaily* is licensed under the **Apple Open Source License**.
17 |
18 | SYNOPSIS
19 | ========
20 |
21 | macdaily **cleanup** *cask* [*options*] ...
22 |
23 | aliases: **brew-cask**, **caskroom**
24 |
25 | OPTIONS
26 | =======
27 |
28 | optional arguments
29 | ------------------
30 |
31 | -h, --help show this help message and exit
32 | -V, --version show program's version number and exit
33 |
34 | general arguments
35 | -----------------
36 |
37 | -q, --quiet run in quiet mode, with no output information
38 | -v, --verbose run in verbose mode, with detailed output information
39 |
40 | SEE ALSO
41 | ========
42 |
43 | * ``brew-cask(1)``
44 | * ``macdaily-cleanup``
45 | * ``macdaily-cleanup-brew``
46 | * ``macdaily-cleanup-npm``
47 | * ``macdaily-cleanup-pip``
48 |
--------------------------------------------------------------------------------
/doc/rst/macdaily-cleanup-npm.rst:
--------------------------------------------------------------------------------
1 | ====================
2 | macdaily-cleanup-npm
3 | ====================
4 |
5 | ----------------------------
6 | Node.js Module Cache Cleanup
7 | ----------------------------
8 |
9 | :Version: v2019.8.4
10 | :Date: August 07, 2019
11 | :Manual section: 8
12 | :Author:
13 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
14 | of *MacDaily*. Please contact me at *jarryshaw@icloud.com*.
15 | :Copyright:
16 | *MacDaily* is licensed under the **Apple Open Source License**.
17 |
18 | SYNOPSIS
19 | ========
20 |
21 | macdaily **cleanup** *npm* [*options*] ...
22 |
23 | aliases: **node**, **node.js**
24 |
25 | OPTIONS
26 | =======
27 |
28 | optional arguments
29 | ------------------
30 |
31 | -h, --help show this help message and exit
32 | -V, --version show program's version number and exit
33 |
34 | general arguments
35 | -----------------
36 |
37 | -q, --quiet run in quiet mode, with no output information
38 | -v, --verbose run in verbose mode, with detailed output information
39 |
40 | SEE ALSO
41 | ========
42 |
43 | * ``npm(1)``
44 | * ``macdaily-cleanup``
45 | * ``macdaily-cleanup-brew``
46 | * ``macdaily-cleanup-cask``
47 | * ``macdaily-cleanup-pip``
48 |
--------------------------------------------------------------------------------
/doc/rst/macdaily-cleanup-pip.rst:
--------------------------------------------------------------------------------
1 | ====================
2 | macdaily-cleanup-pip
3 | ====================
4 |
5 | ----------------------------
6 | Python Package Cache Cleanup
7 | ----------------------------
8 |
9 | :Version: v2019.8.4
10 | :Date: August 07, 2019
11 | :Manual section: 8
12 | :Author:
13 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
14 | of *MacDaily*. Please contact me at *jarryshaw@icloud.com*.
15 | :Copyright:
16 | *MacDaily* is licensed under the **Apple Open Source License**.
17 |
18 | SYNOPSIS
19 | ========
20 |
21 | macdaily **cleanup** *pip* [*options*] ...
22 |
23 | aliases: **cpython**, **pypy**, **python**
24 |
25 | OPTIONS
26 | =======
27 |
28 | optional arguments
29 | ------------------
30 |
31 | -h, --help show this help message and exit
32 | -V, --version show program's version number and exit
33 |
34 | specification arguments
35 | -----------------------
36 |
37 | -b, --brew cleanup caches of Python installed from Homebrew
38 | -c, --cpython cleanup caches of CPython implementation
39 |
40 | -e *VER* [*VER* ...], --python *VER* [*VER* ...]
41 | indicate packages from which version of Python will
42 | cleanup
43 |
44 | -r, --pypy cleanup caches of PyPy implementation
45 | -s, --system cleanup caches of Python provided by macOS system
46 |
47 | general arguments
48 | -----------------
49 |
50 | -q, --quiet run in quiet mode, with no output information
51 | -v, --verbose run in verbose mode, with detailed output information
52 |
53 | SEE ALSO
54 | ========
55 |
56 | * ``macdaily-cleanup``
57 | * ``macdaily-cleanup-brew``
58 | * ``macdaily-cleanup-cask``
59 | * ``macdaily-cleanup-npm``
60 |
--------------------------------------------------------------------------------
/doc/rst/macdaily-cleanup.rst:
--------------------------------------------------------------------------------
1 | ================
2 | macdaily-cleanup
3 | ================
4 |
5 | ---------------------------
6 | macOS Package Cache Cleanup
7 | ---------------------------
8 |
9 | :Version: v2019.8.4
10 | :Date: August 07, 2019
11 | :Manual section: 8
12 | :Author:
13 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
14 | of *MacDaily*. Please contact me at *jarryshaw@icloud.com*.
15 | :Copyright:
16 | *MacDaily* is licensed under the **Apple Open Source License**.
17 |
18 | SYNOPSIS
19 | ========
20 |
21 | macdaily **cleanup** [*options*] <*mode-selection*> ...
22 |
23 | aliases: **clean**
24 |
25 | DESCRIPTION
26 | ===========
27 |
28 | *MacDaily* provides intelligent solution for automate caches cleanup.
29 | *MacDaily* ``cleanup`` command will automatically cleanup all caches of
30 | through --
31 |
32 | - *brew* -- Homebrew
33 | - *cask* -- Homebrew Casks
34 | - *npm* -- Node.js Package Manager
35 | - *pip* -- Pip Installs Packages
36 |
37 | *MacDaily* ``cleanup`` supports using with multiple commands. Say, you would
38 | like to cleanup Python and Homebrew caches, each with different flags and
39 | options, then simply use the following command.
40 |
41 | .. code:: shell
42 |
43 | macdaily cleanup [global-options] pip [pip-options] brew [brew-options]
44 |
45 | But please note that, global options ``--quiet`` and ``--verbose`` are
46 | **mandatory** for all commands once set to ``True``. That is to say, if you set
47 | these flags in global options, they will overwrite corresponding flags in
48 | command specific options.
49 |
50 | OPTIONS
51 | =======
52 |
53 | optional arguments
54 | ------------------
55 |
56 | -h, --help show this help message and exit
57 | -V, --version show program's version number and exit
58 |
59 | general arguments
60 | -----------------
61 |
62 | -a, --all cleanup caches of all packages installed through Node.js,
63 | Homebrew, Caskroom and Python
64 | -q, --quiet run in quiet mode, with no output information
65 | -v, --verbose run in verbose mode, with detailed output information
66 | -l, --show-log open log in *Console.app* upon completion of command
67 |
68 | control arguments
69 | -----------------
70 |
71 | options used to disable update of certain mode
72 |
73 | --no-npm do not update Node.js modules
74 | --no-pip do not update Python packages
75 | --no-brew do not update Homebrew formulae
76 | --no-cask do not update Caskroom binaries
77 |
78 | mode selection
79 | --------------
80 |
81 | cleanup caches of packages installed through a specified method, e.g.:
82 | *npm*, *pip*, *brew*, *cask*
83 |
84 | SEE ALSO
85 | ========
86 |
87 | * ``macdaily-cleanup-brew``
88 | * ``macdaily-cleanup-cask``
89 | * ``macdaily-cleanup-npm``
90 | * ``macdaily-cleanup-pip``
91 |
--------------------------------------------------------------------------------
/doc/rst/macdaily-dependency-brew.rst:
--------------------------------------------------------------------------------
1 | ========================
2 | macdaily-dependency-brew
3 | ========================
4 |
5 | ---------------------------------
6 | Homebrew Formula Dependency Query
7 | ---------------------------------
8 |
9 | :Version: v2019.8.4
10 | :Date: August 07, 2019
11 | :Manual section: 8
12 | :Author:
13 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
14 | of *MacDaily*. Please contact me at *jarryshaw@icloud.com*.
15 | :Copyright:
16 | *MacDaily* is licensed under the **Apple Open Source License**.
17 |
18 | SYNOPSIS
19 | ========
20 |
21 | macdaily **dependency** *brew* [*options*] <*formulae*> ...
22 |
23 | aliases: **homebrew**
24 |
25 | OPTIONS
26 | =======
27 |
28 | optional arguments
29 | ------------------
30 |
31 | -h, --help show this help message and exit
32 | -V, --version show program's version number and exit
33 |
34 | specification arguments
35 | -----------------------
36 |
37 | -b, --include-build include the *:build* type dependencies
38 |
39 | -o, --include-optional
40 | include *:optional* dependencies
41 |
42 | -t, --include-test include (non-recursive) *:test* dependencies
43 |
44 | -s, --skip-recommended
45 | skip *:recommended* type dependencies
46 |
47 | -r, --include-requirements
48 | include requirements in addition to dependencies
49 |
50 | -p *FORM* [*FORM* ...], --packages *FORM* [*FORM* ...]
51 | name of Homebrew formulae to query
52 |
53 | general arguments
54 | -----------------
55 |
56 | -a, --all query all Homebrew formulae installed through Homebrew
57 | -q, --quiet run in quiet mode, with no output information
58 | -v, --verbose run in verbose mode, with detailed output information
59 | -n, --no-cleanup do not run cleanup process
60 | -f, --tree show dependencies as a tree [requires *DictDumper*]
61 | -g, --topological show dependencies in topological order
62 |
63 | -d *LEVEL*, --depth *LEVEL*
64 | max display depth of the dependency tree
65 |
66 | SEE ALSO
67 | ========
68 |
69 | * ``brew(1)``
70 | * ``macdaily-dependency``
71 | * ``macdaily-dependency-pip``
72 |
--------------------------------------------------------------------------------
/doc/rst/macdaily-dependency-pip.rst:
--------------------------------------------------------------------------------
1 | =======================
2 | macdaily-dependency-pip
3 | =======================
4 |
5 | -------------------------------
6 | Python Package Dependency Query
7 | -------------------------------
8 |
9 | :Version: v2019.8.4
10 | :Date: August 07, 2019
11 | :Manual section: 8
12 | :Author:
13 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
14 | of *MacDaily*. Please contact me at *jarryshaw@icloud.com*.
15 | :Copyright:
16 | *MacDaily* is licensed under the **Apple Open Source License**.
17 |
18 | SYNOPSIS
19 | ========
20 |
21 | macdaily **dependency** *pip* [*options*] <*packages*> ...
22 |
23 | aliases: **cpython**, **pypy**, **python**
24 |
25 | OPTIONS
26 | =======
27 |
28 | optional arguments
29 | ------------------
30 |
31 | -h, --help show this help message and exit
32 | -V, --version show program's version number and exit
33 |
34 | specification arguments
35 | -----------------------
36 |
37 | -b, --brew query packages of Python installed from Homebrew
38 | -c, --cpython query packages of CPython implementation
39 |
40 | -e *VER* [*VER* ...], --python *VER* [*VER* ...]
41 | indicate packages from which version of Python will
42 | query
43 |
44 | -r, --pypy query packages of PyPy implementation
45 | -s, --system query packages of Python provided by macOS system
46 |
47 | -p *PKG* [*PKG* ...], --packages *PKG* [*PKG* ...]
48 | name of Python packages to query
49 |
50 | general arguments
51 | -----------------
52 |
53 | -a, --all query all Python packages installed through Python
54 | Package Index
55 | -q, --quiet run in quiet mode, with no output information
56 | -v, --verbose run in verbose mode, with detailed output information
57 | -n, --no-cleanup do not run cleanup process
58 | -f, --tree show dependencies as a tree [requires *DictDumper*]
59 | -g, --topological show dependencies in topological order
60 |
61 | -d *LEVEL*, --depth *LEVEL*
62 | max display depth of the dependency tree
63 |
64 | SEE ALSO
65 | ========
66 |
67 | * ``macdaily-dependency``
68 | * ``macdaily-dependency-brew``
69 |
--------------------------------------------------------------------------------
/doc/rst/macdaily-help.rst:
--------------------------------------------------------------------------------
1 | =============
2 | macdaily-help
3 | =============
4 |
5 | ---------------------------------
6 | MacDaily Usage Information Manual
7 | ---------------------------------
8 |
9 | :Version: v2019.8.4
10 | :Date: August 07, 2019
11 | :Manual section: 8
12 | :Author:
13 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
14 | of *MacDaily*. Please contact me at *jarryshaw@icloud.com*.
15 | :Copyright:
16 | *MacDaily* is licensed under the **Apple Open Source License**.
17 |
18 | SYNOPSIS
19 | ========
20 |
21 | macdaily **help** [*options*] <*cmd-selection*> ...
22 |
23 | aliases: **doc**, **man**
24 |
25 | DESCRIPTION
26 | ===========
27 |
28 | *MacDaily* provides a collection of revised manuals to help users dig into.
29 | *MacDaily* ``help`` command will lead you to these man pages, which are
30 | generated by *rst2man.py* from *docutils* and displayed with ``man(1)``.
31 |
32 | OPTIONS
33 | =======
34 |
35 | optional arguments
36 | ------------------
37 |
38 | -h, --help show this help message and exit
39 | -V, --version show program's version number and exit
40 |
41 | specification arguments
42 | -----------------------
43 |
44 | :CMD: display manual information about such command
45 |
46 | SEE ALSO
47 | ========
48 |
49 | - ``man(1)``
50 | - ``mdoc(7)``
51 |
--------------------------------------------------------------------------------
/doc/rst/macdaily-install-apm.rst:
--------------------------------------------------------------------------------
1 | ====================
2 | macdaily-install-apm
3 | ====================
4 |
5 | --------------------------------
6 | Atom Plug-In Automated Installer
7 | --------------------------------
8 |
9 | :Version: v2019.8.4
10 | :Date: August 07, 2019
11 | :Manual section: 8
12 | :Author:
13 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
14 | of *MacDaily*. Please contact me at *jarryshaw@icloud.com*.
15 | :Copyright:
16 | *MacDaily* is licensed under the **Apple Open Source License**.
17 |
18 | SYNOPSIS
19 | ========
20 |
21 | macdaily **install** *apm* [*options*] <*plug-ins*> ...
22 |
23 | aliases: **atom**
24 |
25 | OPTIONS
26 | =======
27 |
28 | optional arguments
29 | ------------------
30 |
31 | -h, --help show this help message and exit
32 | -V, --version show program's version number and exit
33 |
34 | specification arguments
35 | -----------------------
36 |
37 | -b, --beta install Atom Beta plug-ins
38 |
39 | -p *PI* [*PI* ...], --packages *PI* [*PI* ...]
40 | name of Atom plug-ins to install
41 |
42 | general arguments
43 | -----------------
44 |
45 | -q, --quiet run in quiet mode, with no output information
46 | -v, --verbose run in verbose mode, with detailed output information
47 | -y, --yes yes for all selections
48 |
49 | miscellaneous arguments
50 | -----------------------
51 |
52 | -I *ARG*, --install *ARG*
53 | options for ``apm install `` command
54 |
55 | SEE ALSO
56 | ========
57 |
58 | * ``macdaily-install``
59 | * ``macdaily-install-brew``
60 | * ``macdaily-install-cask``
61 | * ``macdaily-install-gem``
62 | * ``macdaily-install-mas``
63 | * ``macdaily-install-npm``
64 | * ``macdaily-install-pip``
65 | * ``macdaily-install-system``
66 |
--------------------------------------------------------------------------------
/doc/rst/macdaily-install-brew.rst:
--------------------------------------------------------------------------------
1 | =====================
2 | macdaily-install-brew
3 | =====================
4 |
5 | ------------------------------------
6 | Homebrew Formula Automated Installer
7 | ------------------------------------
8 |
9 | :Version: v2019.8.4
10 | :Date: August 07, 2019
11 | :Manual section: 8
12 | :Author:
13 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
14 | of *MacDaily*. Please contact me at *jarryshaw@icloud.com*.
15 | :Copyright:
16 | *MacDaily* is licensed under the **Apple Open Source License**.
17 |
18 | SYNOPSIS
19 | ========
20 |
21 | macdaily **install** *brew* [*options*] <*formulae*> ...
22 |
23 | aliases: **homebrew**
24 |
25 | OPTIONS
26 | =======
27 |
28 | optional arguments
29 | ------------------
30 |
31 | -h, --help show this help message and exit
32 | -V, --version show program's version number and exit
33 |
34 | specification arguments
35 | -----------------------
36 |
37 | -p *FORM* [*FORM* ...], --packages *FORM* [*FORM* ...]
38 | name of Homebrew formulae to install
39 |
40 | general arguments
41 | -----------------
42 |
43 | -q, --quiet run in quiet mode, with no output information
44 | -v, --verbose run in verbose mode, with detailed output information
45 | -y, --yes yes for all selections
46 | -n, --no-cleanup do not run cleanup process
47 |
48 | miscellaneous arguments
49 | -----------------------
50 |
51 | -I *ARG*, --install *ARG*
52 | options for ``brew install `` command
53 |
54 | SEE ALSO
55 | ========
56 |
57 | * ``brew(1)``
58 | * ``macdaily-install``
59 | * ``macdaily-install-apm``
60 | * ``macdaily-install-cask``
61 | * ``macdaily-install-gem``
62 | * ``macdaily-install-mas``
63 | * ``macdaily-install-npm``
64 | * ``macdaily-install-pip``
65 | * ``macdaily-install-system``
66 |
--------------------------------------------------------------------------------
/doc/rst/macdaily-install-cask.rst:
--------------------------------------------------------------------------------
1 | =====================
2 | macdaily-install-cask
3 | =====================
4 |
5 | ---------------------------------
6 | Homebrew Cask Automated Installer
7 | ---------------------------------
8 |
9 | :Version: v2019.8.4
10 | :Date: August 07, 2019
11 | :Manual section: 8
12 | :Author:
13 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
14 | of *MacDaily*. Please contact me at *jarryshaw@icloud.com*.
15 | :Copyright:
16 | *MacDaily* is licensed under the **Apple Open Source License**.
17 |
18 | SYNOPSIS
19 | ========
20 |
21 | macdaily **install** *cask* [*options*] <*casks*> ...
22 |
23 | aliases: **brew-cask**, **caskroom**
24 |
25 | OPTIONS
26 | =======
27 |
28 | optional arguments
29 | ------------------
30 |
31 | -h, --help show this help message and exit
32 | -V, --version show program's version number and exit
33 |
34 | specification arguments
35 | -----------------------
36 |
37 | -p *CASK* [*CASK* ...], --packages *CASK* [*CASK* ...]
38 | name of Caskroom binaries to install
39 |
40 | general arguments
41 | -----------------
42 |
43 | -q, --quiet run in quiet mode, with no output information
44 | -v, --verbose run in verbose mode, with detailed output information
45 | -y, --yes yes for all selections
46 | -n, --no-cleanup do not run cleanup process
47 |
48 | miscellaneous arguments
49 | -----------------------
50 |
51 | -I *ARG*, --install *ARG*
52 | options for ``brew cask install `` command
53 |
54 | SEE ALSO
55 | ========
56 |
57 | * ``brew-cask(1)``
58 | * ``macdaily-install``
59 | * ``macdaily-install-apm``
60 | * ``macdaily-install-brew``
61 | * ``macdaily-install-gem``
62 | * ``macdaily-install-mas``
63 | * ``macdaily-install-npm``
64 | * ``macdaily-install-pip``
65 | * ``macdaily-install-system``
66 |
--------------------------------------------------------------------------------
/doc/rst/macdaily-install-gem.rst:
--------------------------------------------------------------------------------
1 | ====================
2 | macdaily-install-gem
3 | ====================
4 |
5 | ----------------------------
6 | Ruby Gem Automated Installer
7 | ----------------------------
8 |
9 | :Version: v2019.8.4
10 | :Date: August 07, 2019
11 | :Manual section: 8
12 | :Author:
13 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
14 | of *MacDaily*. Please contact me at *jarryshaw@icloud.com*.
15 | :Copyright:
16 | *MacDaily* is licensed under the **Apple Open Source License**.
17 |
18 | SYNOPSIS
19 | ========
20 |
21 | macdaily **install** *gem* [*options*] <*gems*> ...
22 |
23 | aliases: **ruby**, **rubygems**
24 |
25 | OPTIONS
26 | =======
27 |
28 | optional arguments
29 | ------------------
30 |
31 | -h, --help show this help message and exit
32 | -V, --version show program's version number and exit
33 |
34 | specification arguments
35 | -----------------------
36 |
37 | -b, --brew install gems by Ruby installed from Homebrew
38 | -s, --system install gems by Ruby provided by macOS system
39 |
40 | -p *GEM* [*GEM* ...], --packages *GEM* [*GEM* ...]
41 | name of Ruby gems to install
42 |
43 | general arguments
44 | -----------------
45 |
46 | -q, --quiet run in quiet mode, with no output information
47 | -v, --verbose run in verbose mode, with detailed output information
48 | -y, --yes yes for all selections
49 |
50 | miscellaneous arguments
51 | -----------------------
52 |
53 | -I *ARG*, --install *ARG*
54 | options for ``gem install `` command
55 |
56 | SEE ALSO
57 | ========
58 |
59 | * ``gem(1)``
60 | * ``macdaily-install``
61 | * ``macdaily-install-apm``
62 | * ``macdaily-install-brew``
63 | * ``macdaily-install-cask``
64 | * ``macdaily-install-mas``
65 | * ``macdaily-install-npm``
66 | * ``macdaily-install-pip``
67 | * ``macdaily-install-system``
68 |
--------------------------------------------------------------------------------
/doc/rst/macdaily-install-mas.rst:
--------------------------------------------------------------------------------
1 | ====================
2 | macdaily-install-mas
3 | ====================
4 |
5 | -------------------------------------
6 | macOS Application Automated Installer
7 | -------------------------------------
8 |
9 | :Version: v2019.8.4
10 | :Date: August 07, 2019
11 | :Manual section: 8
12 | :Author:
13 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
14 | of *MacDaily*. Please contact me at *jarryshaw@icloud.com*.
15 | :Copyright:
16 | *MacDaily* is licensed under the **Apple Open Source License**.
17 |
18 | SYNOPSIS
19 | ========
20 |
21 | macdaily **install** *mas* [*options*] <*applications*> ...
22 |
23 | aliases: **app-store**, **appstore**, **mac**, **mac-app-store**
24 |
25 | OPTIONS
26 | =======
27 |
28 | optional arguments
29 | ------------------
30 |
31 | -h, --help show this help message and exit
32 | -V, --version show program's version number and exit
33 |
34 | specification arguments
35 | -----------------------
36 |
37 | -f, --force force reinstall
38 |
39 | -p *APP* [*APP* ...], --packages *APP* [*APP* ...]
40 | name of macOS applications to install
41 |
42 | general arguments
43 | -----------------
44 |
45 | -q, --quiet run in quiet mode, with no output information
46 | -v, --verbose run in verbose mode, with detailed output information
47 | -y, --yes yes for all selections
48 |
49 | miscellaneous arguments
50 | -----------------------
51 |
52 | -I *ARG*, --install *ARG*
53 | options for ``mas install|lucky `` command
54 |
55 | SEE ALSO
56 | ========
57 |
58 | * ``macdaily-install``
59 | * ``macdaily-install-apm``
60 | * ``macdaily-install-brew``
61 | * ``macdaily-install-cask``
62 | * ``macdaily-install-gem``
63 | * ``macdaily-install-npm``
64 | * ``macdaily-install-pip``
65 | * ``macdaily-install-system``
66 |
--------------------------------------------------------------------------------
/doc/rst/macdaily-install-npm.rst:
--------------------------------------------------------------------------------
1 | ====================
2 | macdaily-install-npm
3 | ====================
4 |
5 | ----------------------------------
6 | Node.js Module Automated Installer
7 | ----------------------------------
8 |
9 | :Version: v2019.8.4
10 | :Date: August 07, 2019
11 | :Manual section: 8
12 | :Author:
13 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
14 | of *MacDaily*. Please contact me at *jarryshaw@icloud.com*.
15 | :Copyright:
16 | *MacDaily* is licensed under the **Apple Open Source License**.
17 |
18 | SYNOPSIS
19 | ========
20 |
21 | macdaily **install** *npm* [*options*] <*modules*> ...
22 |
23 | aliases: **node**, **node.js**
24 |
25 | OPTIONS
26 | =======
27 |
28 | optional arguments
29 | ------------------
30 |
31 | -h, --help show this help message and exit
32 | -V, --version show program's version number and exit
33 |
34 | specification arguments
35 | -----------------------
36 |
37 | -p *MOD* [*MOD* ...], --packages *MOD* [*MOD* ...]
38 | name of Node.js modules to install
39 |
40 | general arguments
41 | -----------------
42 |
43 | -q, --quiet run in quiet mode, with no output information
44 | -v, --verbose run in verbose mode, with detailed output information
45 | -y, --yes yes for all selections
46 | -n, --no-cleanup do not run cleanup process
47 |
48 | miscellaneous arguments
49 | -----------------------
50 |
51 | -I *ARG*, --install *ARG*
52 | options for ``npm install --global `` command
53 |
54 | SEE ALSO
55 | ========
56 |
57 | * ``npm(1)``
58 | * ``macdaily-install``
59 | * ``macdaily-install-apm``
60 | * ``macdaily-install-brew``
61 | * ``macdaily-install-cask``
62 | * ``macdaily-install-gem``
63 | * ``macdaily-install-mas``
64 | * ``macdaily-install-pip``
65 | * ``macdaily-install-system``
66 |
--------------------------------------------------------------------------------
/doc/rst/macdaily-install-pip.rst:
--------------------------------------------------------------------------------
1 | ====================
2 | macdaily-install-pip
3 | ====================
4 |
5 | ----------------------------------
6 | Python Package Automated Installer
7 | ----------------------------------
8 |
9 | :Version: v2019.8.4
10 | :Date: August 07, 2019
11 | :Manual section: 8
12 | :Author:
13 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
14 | of *MacDaily*. Please contact me at *jarryshaw@icloud.com*.
15 | :Copyright:
16 | *MacDaily* is licensed under the **Apple Open Source License**.
17 |
18 | SYNOPSIS
19 | ========
20 |
21 | macdaily **install** *pip* [*options*] <*packages*> ...
22 |
23 | aliases: **cpython**, **pypy**, **python**
24 |
25 | OPTIONS
26 | =======
27 |
28 | optional arguments
29 | ------------------
30 |
31 | -h, --help show this help message and exit
32 | -V, --version show program's version number and exit
33 |
34 | specification arguments
35 | -----------------------
36 |
37 | -u, --user install to the Python user install directory for your
38 | platform
39 | -b, --brew install packages of Python installed from Homebrew
40 | -c, --cpython install packages of CPython implementation
41 | -d, --pre include pre-release and development versions
42 |
43 | -e *VER* [*VER* ...], --python *VER* [*VER* ...]
44 | install packages by which version of Python
45 |
46 | -r, --pypy install packages of PyPy implementation
47 | -s, --system install packages of Python provided by macOS system
48 |
49 | -p *PKG* [*PKG* ...], --packages *PKG* [*PKG* ...]
50 | name of Python packages to install
51 |
52 | general arguments
53 | -----------------
54 |
55 | -q, --quiet run in quiet mode, with no output information
56 | -v, --verbose run in verbose mode, with detailed output information
57 | -y, --yes yes for all selections
58 | -n, --no-cleanup do not run cleanup process
59 |
60 | miscellaneous arguments
61 | -----------------------
62 |
63 | -I *ARG*, --install *ARG*
64 | options for ``pip install `` command
65 |
66 | SEE ALSO
67 | ========
68 |
69 | * ``macdaily-install``
70 | * ``macdaily-install-apm``
71 | * ``macdaily-install-brew``
72 | * ``macdaily-install-cask``
73 | * ``macdaily-install-gem``
74 | * ``macdaily-install-mas``
75 | * ``macdaily-install-npm``
76 | * ``macdaily-install-system``
77 |
--------------------------------------------------------------------------------
/doc/rst/macdaily-install-system.rst:
--------------------------------------------------------------------------------
1 | =======================
2 | macdaily-install-system
3 | =======================
4 |
5 | -----------------------------------
6 | System Software Automated Installer
7 | -----------------------------------
8 |
9 | :Version: v2019.8.4
10 | :Date: August 07, 2019
11 | :Manual section: 8
12 | :Author:
13 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
14 | of *MacDaily*. Please contact me at *jarryshaw@icloud.com*.
15 | :Copyright:
16 | *MacDaily* is licensed under the **Apple Open Source License**.
17 |
18 | SYNOPSIS
19 | ========
20 |
21 | macdaily **install** *system* [*options*] <*software*> ...
22 |
23 | aliases: **software**, **softwareupdate**
24 |
25 | OPTIONS
26 | =======
27 |
28 | optional arguments
29 | ------------------
30 |
31 | -h, --help show this help message and exit
32 | -V, --version show program's version number and exit
33 |
34 | specification arguments
35 | -----------------------
36 |
37 | -R, --restart automatically restart (or shut down) if required to
38 | complete installation
39 |
40 | -p *SW* [*SW* ...], --packages *SW* [*SW* ...]
41 | name of system software to install
42 |
43 | general arguments
44 | -----------------
45 |
46 | -q, --quiet run in quiet mode, with no output information
47 | -v, --verbose run in verbose mode, with detailed output information
48 | -y, --yes yes for all selections
49 |
50 | miscellaneous arguments
51 | -----------------------
52 |
53 | -I *ARG*, --install *ARG*
54 | options for ``softwareupdate --install
55 | `` command
56 |
57 | SEE ALSO
58 | ========
59 |
60 | * ``softwareupdate(8)``
61 | * ``macdaily-install``
62 | * ``macdaily-install-apm``
63 | * ``macdaily-install-brew``
64 | * ``macdaily-install-gem``
65 | * ``macdaily-install-mas``
66 | * ``macdaily-install-npm``
67 | * ``macdaily-install-pip``
68 | * ``macdaily-install-system``
69 |
--------------------------------------------------------------------------------
/doc/rst/macdaily-launch.rst:
--------------------------------------------------------------------------------
1 | ===============
2 | macdaily-launch
3 | ===============
4 |
5 | ---------------------------------
6 | MacDaily Dependency Launch Helper
7 | ---------------------------------
8 |
9 | :Version: v2019.8.4
10 | :Date: August 07, 2019
11 | :Manual section: 8
12 | :Author:
13 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
14 | of *MacDaily*. Please contact me at *jarryshaw@icloud.com*.
15 | :Copyright:
16 | *MacDaily* is licensed under the **Apple Open Source License**.
17 |
18 | SYNOPSIS
19 | ========
20 |
21 | macdaily **launch** [*options*] <*prog-selection*> ...
22 |
23 | aliases: **init**
24 |
25 | DESCRIPTION
26 | ===========
27 |
28 | *MacDaily* depends on several homemade helper programs, i.e. *askpass*,
29 | *confirm* and *daemons*. *MacDaily* ``launch`` command will help initialise
30 | and launch these helper programs.
31 |
32 | OPTIONS
33 | =======
34 |
35 | optional arguments
36 | ------------------
37 |
38 | -h, --help show this help message and exit
39 | -V, --version show program's version number and exit
40 |
41 | specification arguments
42 | -----------------------
43 |
44 | :PROG: helper program to launch, choose from *askpass*,
45 | *confirm* and *daemons*
46 |
47 | general arguments
48 | -----------------
49 |
50 | -a, --all launch all help programs, i.e. *askpass*,
51 | *confirm* and *daemons*
52 | -q, --quiet run in quiet mode, with no output information
53 | -v, --verbose run in verbose mode, with detailed output information
54 | -n, --no-cleanup do not run cleanup process
55 | -l, --show-log open log in *Console.app* upon completion of command
56 |
57 | SEE ALSO
58 | ========
59 |
60 | * *askpass* helper programs
61 |
62 | * ``sudo(8)``
63 | * ``sudo.conf(5)``
64 |
65 | * *confirm* helper programs
66 |
67 | * ``osascript(1)``
68 | * ``osalang(1)``
69 |
70 | * *daemons* helper programs
71 |
72 | * ``launchctl(1)``
73 | * ``launchd.plist(5)``
74 |
--------------------------------------------------------------------------------
/doc/rst/macdaily-logging-apm.rst:
--------------------------------------------------------------------------------
1 | ====================
2 | macdaily-logging-apm
3 | ====================
4 |
5 | ------------------------------
6 | Atom Plug-In Logging Automator
7 | ------------------------------
8 |
9 | :Version: v2019.8.4
10 | :Date: August 07, 2019
11 | :Manual section: 8
12 | :Author:
13 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
14 | of *MacDaily*. Please contact me at *jarryshaw@icloud.com*.
15 | :Copyright:
16 | *MacDaily* is licensed under the **Apple Open Source License**.
17 |
18 | SYNOPSIS
19 | ========
20 |
21 | macdaily **logging** *apm* [*options*] ...
22 |
23 | aliases: **atom**
24 |
25 | OPTIONS
26 | =======
27 |
28 | optional arguments
29 | ------------------
30 |
31 | -h, --help show this help message and exit
32 | -V, --version show program's version number and exit
33 |
34 | specification arguments
35 | -----------------------
36 |
37 | -b, --beta log Atom Beta plug-ins
38 |
39 | general arguments
40 | -----------------
41 |
42 | -q, --quiet run in quiet mode, with no output information
43 | -v, --verbose run in verbose mode, with detailed output information
44 | -n, --no-cleanup do not run cleanup process
45 | -l, --show-log open log in *Console.app* upon completion of command
46 |
47 | SEE ALSO
48 | ========
49 |
50 | * ``macdaily-logging``
51 | * ``macdaily-logging-app``
52 | * ``macdaily-logging-brew``
53 | * ``macdaily-logging-cask``
54 | * ``macdaily-logging-gem``
55 | * ``macdaily-logging-mas``
56 | * ``macdaily-logging-npm``
57 | * ``macdaily-logging-pip``
58 | * ``macdaily-logging-tap``
59 |
--------------------------------------------------------------------------------
/doc/rst/macdaily-logging-app.rst:
--------------------------------------------------------------------------------
1 | ====================
2 | macdaily-logging-app
3 | ====================
4 |
5 | ---------------------------------
6 | Mac Application Logging Automator
7 | ---------------------------------
8 |
9 | :Version: v2019.8.4
10 | :Date: August 07, 2019
11 | :Manual section: 8
12 | :Author:
13 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
14 | of *MacDaily*. Please contact me at *jarryshaw@icloud.com*.
15 | :Copyright:
16 | *MacDaily* is licensed under the **Apple Open Source License**.
17 |
18 | SYNOPSIS
19 | ========
20 |
21 | macdaily **logging** *app* [*options*] ...
22 |
23 | aliases: **application**, **macos**
24 |
25 | OPTIONS
26 | =======
27 |
28 | optional arguments
29 | ------------------
30 |
31 | -h, --help show this help message and exit
32 | -V, --version show program's version number and exit
33 |
34 | general arguments
35 | -----------------
36 |
37 | -q, --quiet run in quiet mode, with no output information
38 | -v, --verbose run in verbose mode, with detailed output information
39 | -n, --no-cleanup do not run cleanup process
40 | -l, --show-log open log in *Console.app* upon completion of command
41 |
42 | SEE ALSO
43 | ========
44 |
45 | * ``macdaily-logging``
46 | * ``macdaily-logging-apm``
47 | * ``macdaily-logging-brew``
48 | * ``macdaily-logging-cask``
49 | * ``macdaily-logging-gem``
50 | * ``macdaily-logging-mas``
51 | * ``macdaily-logging-npm``
52 | * ``macdaily-logging-pip``
53 | * ``macdaily-logging-tap``
54 |
--------------------------------------------------------------------------------
/doc/rst/macdaily-logging-brew.rst:
--------------------------------------------------------------------------------
1 | =====================
2 | macdaily-logging-brew
3 | =====================
4 |
5 | ----------------------------------
6 | Homebrew Formula Logging Automator
7 | ----------------------------------
8 |
9 | :Version: v2019.8.4
10 | :Date: August 07, 2019
11 | :Manual section: 8
12 | :Author:
13 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
14 | of *MacDaily*. Please contact me at *jarryshaw@icloud.com*.
15 | :Copyright:
16 | *MacDaily* is licensed under the **Apple Open Source License**.
17 |
18 | SYNOPSIS
19 | ========
20 |
21 | macdaily **logging** *brew* [*options*] ...
22 |
23 | aliases: **homebrew**
24 |
25 | OPTIONS
26 | =======
27 |
28 | optional arguments
29 | ------------------
30 |
31 | -h, --help show this help message and exit
32 | -V, --version show program's version number and exit
33 |
34 | general arguments
35 | -----------------
36 |
37 | -q, --quiet run in quiet mode, with no output information
38 | -v, --verbose run in verbose mode, with detailed output information
39 | -n, --no-cleanup do not run cleanup process
40 | -l, --show-log open log in *Console.app* upon completion of command
41 |
42 | SEE ALSO
43 | ========
44 |
45 | * ``brew(1)``
46 | * ``macdaily-logging``
47 | * ``macdaily-logging-apm``
48 | * ``macdaily-logging-app``
49 | * ``macdaily-logging-cask``
50 | * ``macdaily-logging-gem``
51 | * ``macdaily-logging-mas``
52 | * ``macdaily-logging-npm``
53 | * ``macdaily-logging-pip``
54 | * ``macdaily-logging-tap``
55 |
--------------------------------------------------------------------------------
/doc/rst/macdaily-logging-cask.rst:
--------------------------------------------------------------------------------
1 | =====================
2 | macdaily-logging-cask
3 | =====================
4 |
5 | -------------------------------
6 | Homebrew Cask Logging Automator
7 | -------------------------------
8 |
9 | :Version: v2019.8.4
10 | :Date: August 07, 2019
11 | :Manual section: 8
12 | :Author:
13 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
14 | of *MacDaily*. Please contact me at *jarryshaw@icloud.com*.
15 | :Copyright:
16 | *MacDaily* is licensed under the **Apple Open Source License**.
17 |
18 | SYNOPSIS
19 | ========
20 |
21 | macdaily **logging** *cask* [*options*] ...
22 |
23 | aliases: **brew-cask**, **caskroom**
24 |
25 | OPTIONS
26 | =======
27 |
28 | optional arguments
29 | ------------------
30 |
31 | -h, --help show this help message and exit
32 | -V, --version show program's version number and exit
33 |
34 | general arguments
35 | -----------------
36 |
37 | -q, --quiet run in quiet mode, with no output information
38 | -v, --verbose run in verbose mode, with detailed output information
39 | -n, --no-cleanup do not run cleanup process
40 | -l, --show-log open log in *Console.app* upon completion of command
41 |
42 | SEE ALSO
43 | ========
44 |
45 | * ``brew-cask(1)``
46 | * ``macdaily-logging``
47 | * ``macdaily-logging-apm``
48 | * ``macdaily-logging-app``
49 | * ``macdaily-logging-brew``
50 | * ``macdaily-logging-gem``
51 | * ``macdaily-logging-mas``
52 | * ``macdaily-logging-npm``
53 | * ``macdaily-logging-pip``
54 | * ``macdaily-logging-tap``
55 |
--------------------------------------------------------------------------------
/doc/rst/macdaily-logging-gem.rst:
--------------------------------------------------------------------------------
1 | ====================
2 | macdaily-logging-gem
3 | ====================
4 |
5 | --------------------------
6 | Ruby Gem Logging Automator
7 | --------------------------
8 |
9 | :Version: v2019.8.4
10 | :Date: August 07, 2019
11 | :Manual section: 8
12 | :Author:
13 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
14 | of *MacDaily*. Please contact me at *jarryshaw@icloud.com*.
15 | :Copyright:
16 | *MacDaily* is licensed under the **Apple Open Source License**.
17 |
18 | SYNOPSIS
19 | ========
20 |
21 | macdaily **logging** *gem* [*options*] ...
22 |
23 | aliases: **ruby**, **rubygems**
24 |
25 | OPTIONS
26 | =======
27 |
28 | optional arguments
29 | ------------------
30 |
31 | -h, --help show this help message and exit
32 | -V, --version show program's version number and exit
33 |
34 | specification arguments
35 | -----------------------
36 |
37 | -b, --brew log gems of Ruby installed from Homebrew
38 | -s, --system log gems of Ruby provided by macOS system
39 |
40 | general arguments
41 | -----------------
42 |
43 | -q, --quiet run in quiet mode, with no output information
44 | -v, --verbose run in verbose mode, with detailed output information
45 | -n, --no-cleanup do not run cleanup process
46 | -l, --show-log open log in *Console.app* upon completion of command
47 |
48 | SEE ALSO
49 | ========
50 |
51 | * ``gem(1)``
52 | * ``macdaily-logging``
53 | * ``macdaily-logging-apm``
54 | * ``macdaily-logging-app``
55 | * ``macdaily-logging-brew``
56 | * ``macdaily-logging-cask``
57 | * ``macdaily-logging-mas``
58 | * ``macdaily-logging-npm``
59 | * ``macdaily-logging-pip``
60 | * ``macdaily-logging-tap``
61 |
--------------------------------------------------------------------------------
/doc/rst/macdaily-logging-mas.rst:
--------------------------------------------------------------------------------
1 | ====================
2 | macdaily-logging-mas
3 | ====================
4 |
5 | -----------------------------------
6 | macOS Application Logging Automator
7 | -----------------------------------
8 |
9 | :Version: v2019.8.4
10 | :Date: August 07, 2019
11 | :Manual section: 8
12 | :Author:
13 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
14 | of *MacDaily*. Please contact me at *jarryshaw@icloud.com*.
15 | :Copyright:
16 | *MacDaily* is licensed under the **Apple Open Source License**.
17 |
18 | SYNOPSIS
19 | ========
20 |
21 | macdaily **logging** *mas* [*options*] ...
22 |
23 | aliases: **app-store**, **appstore**, **mac**, **mac-app-store**
24 |
25 | OPTIONS
26 | =======
27 |
28 | optional arguments
29 | ------------------
30 |
31 | -h, --help show this help message and exit
32 | -V, --version show program's version number and exit
33 |
34 | general arguments
35 | -----------------
36 |
37 | -q, --quiet run in quiet mode, with no output information
38 | -v, --verbose run in verbose mode, with detailed output information
39 | -n, --no-cleanup do not run cleanup process
40 | -l, --show-log open log in *Console.app* upon completion of command
41 |
42 | SEE ALSO
43 | ========
44 |
45 | * ``macdaily-logging``
46 | * ``macdaily-logging-apm``
47 | * ``macdaily-logging-app``
48 | * ``macdaily-logging-brew``
49 | * ``macdaily-logging-cask``
50 | * ``macdaily-logging-gem``
51 | * ``macdaily-logging-npm``
52 | * ``macdaily-logging-pip``
53 | * ``macdaily-logging-tap``
54 |
--------------------------------------------------------------------------------
/doc/rst/macdaily-logging-npm.rst:
--------------------------------------------------------------------------------
1 | ====================
2 | macdaily-logging-npm
3 | ====================
4 |
5 | --------------------------------
6 | Node.js Module Logging Automator
7 | --------------------------------
8 |
9 | :Version: v2019.8.4
10 | :Date: August 07, 2019
11 | :Manual section: 8
12 | :Author:
13 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
14 | of *MacDaily*. Please contact me at *jarryshaw@icloud.com*.
15 | :Copyright:
16 | *MacDaily* is licensed under the **Apple Open Source License**.
17 |
18 | SYNOPSIS
19 | ========
20 |
21 | macdaily **logging** *npm* [*options*] ...
22 |
23 | aliases: **node**, **node.js**
24 |
25 | OPTIONS
26 | =======
27 |
28 | optional arguments
29 | ------------------
30 |
31 | -h, --help show this help message and exit
32 | -V, --version show program's version number and exit
33 |
34 | specification arguments
35 | -----------------------
36 |
37 | -i, --long show extended information
38 |
39 | general arguments
40 | -----------------
41 |
42 | -q, --quiet run in quiet mode, with no output information
43 | -v, --verbose run in verbose mode, with detailed output information
44 | -n, --no-cleanup do not run cleanup process
45 | -l, --show-log open log in *Console.app* upon completion of command
46 |
47 | SEE ALSO
48 | ========
49 |
50 | * ``gem(1)``
51 | * ``macdaily-logging``
52 | * ``macdaily-logging-apm``
53 | * ``macdaily-logging-app``
54 | * ``macdaily-logging-brew``
55 | * ``macdaily-logging-cask``
56 | * ``macdaily-logging-gem``
57 | * ``macdaily-logging-mas``
58 | * ``macdaily-logging-pip``
59 | * ``macdaily-logging-tap``
60 |
--------------------------------------------------------------------------------
/doc/rst/macdaily-logging-pip.rst:
--------------------------------------------------------------------------------
1 | ====================
2 | macdaily-logging-pip
3 | ====================
4 |
5 | --------------------------------
6 | Python Package Logging Automator
7 | --------------------------------
8 |
9 | :Version: v2019.8.4
10 | :Date: August 07, 2019
11 | :Manual section: 8
12 | :Author:
13 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
14 | of *MacDaily*. Please contact me at *jarryshaw@icloud.com*.
15 | :Copyright:
16 | *MacDaily* is licensed under the **Apple Open Source License**.
17 |
18 | SYNOPSIS
19 | ========
20 |
21 | macdaily **logging** *pip* [*options*] ...
22 |
23 | aliases: **cpython**, **pypy**, **python**
24 |
25 | OPTIONS
26 | =======
27 |
28 | optional arguments
29 | ------------------
30 |
31 | -h, --help show this help message and exit
32 | -V, --version show program's version number and exit
33 |
34 | specification arguments
35 | -----------------------
36 |
37 | -x, --exclude-editable
38 | exclude editable package from output
39 |
40 | -b, --brew log packages of Python installed from Homebrew
41 | -c, --cpython log packages of CPython implementation
42 |
43 | -e *VER* [*VER* ...], --python *VER* [*VER* ...]
44 | indicate packages from which version of Python will be
45 | logged
46 |
47 | -r, --pypy log packages of PyPy implementation
48 | -s, --system log packages of Python provided by macOS system
49 |
50 | general arguments
51 | -----------------
52 |
53 | -q, --quiet run in quiet mode, with no output information
54 | -v, --verbose run in verbose mode, with detailed output information
55 | -n, --no-cleanup do not run cleanup process
56 | -l, --show-log open log in *Console.app* upon completion of command
57 |
58 | SEE ALSO
59 | ========
60 |
61 | * ``macdaily-logging``
62 | * ``macdaily-logging-apm``
63 | * ``macdaily-logging-app``
64 | * ``macdaily-logging-brew``
65 | * ``macdaily-logging-cask``
66 | * ``macdaily-logging-gem``
67 | * ``macdaily-logging-mas``
68 | * ``macdaily-logging-npm``
69 | * ``macdaily-logging-tap``
70 |
--------------------------------------------------------------------------------
/doc/rst/macdaily-logging-tap.rst:
--------------------------------------------------------------------------------
1 | ====================
2 | macdaily-logging-tap
3 | ====================
4 |
5 | ------------------------------
6 | Homebrew Tap Logging Automator
7 | ------------------------------
8 |
9 | :Version: v2019.8.4
10 | :Date: August 07, 2019
11 | :Manual section: 8
12 | :Author:
13 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
14 | of *MacDaily*. Please contact me at *jarryshaw@icloud.com*.
15 | :Copyright:
16 | *MacDaily* is licensed under the **Apple Open Source License**.
17 |
18 | SYNOPSIS
19 | ========
20 |
21 | macdaily **logging** *tap* [*options*] ...
22 |
23 | aliases: **brew-tap**
24 |
25 | OPTIONS
26 | =======
27 |
28 | optional arguments
29 | ------------------
30 |
31 | -h, --help show this help message and exit
32 | -V, --version show program's version number and exit
33 |
34 | general arguments
35 | -----------------
36 |
37 | -q, --quiet run in quiet mode, with no output information
38 | -v, --verbose run in verbose mode, with detailed output information
39 | -n, --no-cleanup do not run cleanup process
40 | -l, --show-log open log in *Console.app* upon completion of command
41 |
42 | SEE ALSO
43 | ========
44 |
45 | * ``brew(1)``
46 | * ``macdaily-logging``
47 | * ``macdaily-logging-apm``
48 | * ``macdaily-logging-app``
49 | * ``macdaily-logging-brew``
50 | * ``macdaily-logging-cask``
51 | * ``macdaily-logging-gem``
52 | * ``macdaily-logging-mas``
53 | * ``macdaily-logging-npm``
54 | * ``macdaily-logging-pip``
55 |
--------------------------------------------------------------------------------
/doc/rst/macdaily-reinstall-brew.rst:
--------------------------------------------------------------------------------
1 | =======================
2 | macdaily-reinstall-brew
3 | =======================
4 |
5 | --------------------------------------
6 | Automated Homebrew Formula Reinstaller
7 | --------------------------------------
8 |
9 | :Version: v2019.8.4
10 | :Date: August 07, 2019
11 | :Manual section: 8
12 | :Author:
13 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
14 | of *MacDaily*. Please contact me at *jarryshaw@icloud.com*.
15 | :Copyright:
16 | *MacDaily* is licensed under the **Apple Open Source License**.
17 |
18 | SYNOPSIS
19 | ========
20 |
21 | macdaily **reinstall** *brew* [*options*] <*formulae*> ...
22 |
23 | aliases: **homebrew**
24 |
25 | OPTIONS
26 | =======
27 |
28 | optional arguments
29 | ------------------
30 |
31 | -h, --help show this help message and exit
32 | -V, --version show program's version number and exit
33 |
34 | specification arguments
35 | -----------------------
36 |
37 | -s *PREFIX*, --startswith *PREFIX*
38 | reinstall procedure starts from such formula, sort in
39 | initial alphabets
40 |
41 | -e *SUFFIX*, --endswith *SUFFIX*
42 | reinstall procedure ends after such formula, sort in
43 | initial alphabets
44 |
45 | -p *FORM* [*FORM* ...], --packages *FORM* [*FORM* ...]
46 | name of Homebrew formulae to reinstall
47 |
48 | general arguments
49 | -----------------
50 |
51 | -a, --all reinstall all Homebrew formulae installed through
52 | Homebrew
53 | -q, --quiet run in quiet mode, with no output information
54 | -v, --verbose run in verbose mode, with detailed output information
55 | -y, --yes yes for all selections
56 | -n, --no-cleanup do not run cleanup process
57 |
58 | miscellaneous arguments
59 | -----------------------
60 |
61 | -L *ARG*, --logging *ARG*
62 | options for ``brew list`` command
63 |
64 | -R *ARG*, --reinstall *ARG*
65 | options for ``brew reinstall `` command
66 |
67 | SEE ALSO
68 | ========
69 |
70 | * ``brew(1)``
71 | * ``macdaily-reinstall``
72 | * ``macdaily-reinstall-cask``
73 |
--------------------------------------------------------------------------------
/doc/rst/macdaily-reinstall-cask.rst:
--------------------------------------------------------------------------------
1 | =======================
2 | macdaily-reinstall-cask
3 | =======================
4 |
5 | -----------------------------------
6 | Automated Homebrew Cask Reinstaller
7 | -----------------------------------
8 |
9 | :Version: v2019.8.4
10 | :Date: August 07, 2019
11 | :Manual section: 8
12 | :Author:
13 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
14 | of *MacDaily*. Please contact me at *jarryshaw@icloud.com*.
15 | :Copyright:
16 | *MacDaily* is licensed under the **Apple Open Source License**.
17 |
18 | SYNOPSIS
19 | ========
20 |
21 | macdaily **reinstall** *cask* [*options*] <*casks*> ...
22 |
23 | aliases: **brew-cask**, **caskroom**
24 |
25 | OPTIONS
26 | =======
27 |
28 | optional arguments
29 | ------------------
30 |
31 | -h, --help show this help message and exit
32 | -V, --version show program's version number and exit
33 |
34 | specification arguments
35 | -----------------------
36 |
37 | -s *PREFIX*, --startswith *PREFIX*
38 | reinstall procedure starts from such binary, sort in
39 | initial alphabets
40 |
41 | -e *SUFFIX*, --endswith *SUFFIX*
42 | reinstall procedure ends after such binary, sort in
43 | initial alphabets
44 |
45 | -f, --force reinstall even if the Cask does not appear to be
46 | present
47 | -t, --no-quarantine prevent Gatekeeper from enforcing its security
48 |
49 | -p *CASK* [*CASK* ...], --packages *CASK* [*CASK* ...]
50 | name of Caskroom binaries to reinstall
51 |
52 | general arguments
53 | -----------------
54 |
55 | -a, --all reinstall all Homebrew formulae installed through
56 | Homebrew
57 | -q, --quiet run in quiet mode, with no output information
58 | -v, --verbose run in verbose mode, with detailed output information
59 | -y, --yes yes for all selections
60 | -n, --no-cleanup do not run cleanup process
61 |
62 | miscellaneous arguments
63 | -----------------------
64 |
65 | -L *ARG*, --logging *ARG*
66 | options for ``brew cask list`` command
67 |
68 | -R *ARG*, --reinstall *ARG*
69 | options for ``brew cask reinstall `` command
70 |
71 | SEE ALSO
72 | ========
73 |
74 | * ``brew-cask(1)``
75 | * ``macdaily-reinstall``
76 | * ``macdaily-reinstall-brew``
77 |
--------------------------------------------------------------------------------
/doc/rst/macdaily-uninstall-brew.rst:
--------------------------------------------------------------------------------
1 | =======================
2 | macdaily-uninstall-brew
3 | =======================
4 |
5 | --------------------------------------
6 | Automated Homebrew Formula Uninstaller
7 | --------------------------------------
8 |
9 | :Version: v2019.8.4
10 | :Date: August 07, 2019
11 | :Manual section: 8
12 | :Author:
13 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
14 | of *MacDaily*. Please contact me at *jarryshaw@icloud.com*.
15 | :Copyright:
16 | *MacDaily* is licensed under the **Apple Open Source License**.
17 |
18 | SYNOPSIS
19 | ========
20 |
21 | macdaily **uninstall** *brew* [*options*] <*formulae*> ...
22 |
23 | aliases: **homebrew**
24 |
25 | OPTIONS
26 | =======
27 |
28 | optional arguments
29 | ------------------
30 |
31 | -h, --help show this help message and exit
32 | -V, --version show program's version number and exit
33 |
34 | specification arguments
35 | -----------------------
36 |
37 | -f, --force delete all installed versions
38 | -b, --include-build include the *:build* type dependencies
39 |
40 | -o, --include-optional
41 | include *:optional* dependencies
42 |
43 | -t, --include-test include (non-recursive) *:test* dependencies
44 |
45 | -s, --skip-recommended
46 | skip *:recommended* type dependencies
47 |
48 | -r, --include-requirements
49 | include requirements in addition to dependencies
50 |
51 | -p *FORM* [*FORM* ...], --packages *FORM* [*FORM* ...]
52 | name of Homebrew formulae to uninstall
53 |
54 | general arguments
55 | -----------------
56 |
57 | -a, --all uninstall all Homebrew formulae installed through
58 | Homebrew
59 | -k, --dry-run list all Homebrew formulae which would be removed, but
60 | will not actually delete any Homebrew formulae
61 |
62 | -i, --ignore-dependencies
63 | run in non-recursive mode, i.e. ignore dependencies
64 | packages
65 |
66 | -q, --quiet run in quiet mode, with no output information
67 | -v, --verbose run in verbose mode, with detailed output information
68 | -y, --yes yes for all selections
69 | -n, --no-cleanup do not run cleanup process
70 |
71 | miscellaneous arguments
72 | -----------------------
73 |
74 | -L *ARG*, --logging *ARG*
75 | options for ``brew list`` command
76 |
77 | -U *ARG*, --uninstall *ARG*
78 | options for ``brew uninstall `` command
79 |
80 | SEE ALSO
81 | ========
82 |
83 | * ``brew(1)``
84 | * ``macdaily-uninstall``
85 | * ``macdaily-uninstall-cask``
86 | * ``macdaily-uninstall-pip``
87 |
--------------------------------------------------------------------------------
/doc/rst/macdaily-uninstall-cask.rst:
--------------------------------------------------------------------------------
1 | =======================
2 | macdaily-uninstall-cask
3 | =======================
4 |
5 | -----------------------------------
6 | Automated Homebrew Cask Uninstaller
7 | -----------------------------------
8 |
9 | :Version: v2019.8.4
10 | :Date: August 07, 2019
11 | :Manual section: 8
12 | :Author:
13 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
14 | of *MacDaily*. Please contact me at *jarryshaw@icloud.com*.
15 | :Copyright:
16 | *MacDaily* is licensed under the **Apple Open Source License**.
17 |
18 | SYNOPSIS
19 | ========
20 |
21 | macdaily **uninstall** *cask* [*options*] <*casks*> ...
22 |
23 | aliases: **brew-cask**, **caskroom**
24 |
25 | OPTIONS
26 | =======
27 |
28 | optional arguments
29 | ------------------
30 |
31 | -h, --help show this help message and exit
32 | -V, --version show program's version number and exit
33 |
34 | specification arguments
35 | -----------------------
36 |
37 | -f, --force uninstall even if the Cask does not appear to be
38 | present
39 |
40 | -p *CASK* [*CASK* ...], --packages *CASK* [*CASK* ...]
41 | name of Caskroom binaries to uninstall
42 |
43 | general arguments
44 | -----------------
45 |
46 | -a, --all uninstall all Caskroom binaries installed through
47 | Homebrew
48 | -k, --dry-run list all Caskroom binaries which would be removed, but
49 | will not actually delete any Caskroom binaries
50 | -q, --quiet run in quiet mode, with no output information
51 | -v, --verbose run in verbose mode, with detailed output information
52 | -y, --yes yes for all selections
53 | -n, --no-cleanup do not run cleanup process
54 |
55 | miscellaneous arguments
56 | -----------------------
57 |
58 | -L *ARG*, --logging *ARG*
59 | options for ``brew cask list`` command
60 |
61 | -U *ARG*, --uninstall *ARG*
62 | options for ``brew cask uninstall `` command
63 |
64 | SEE ALSO
65 | ========
66 |
67 | * ``brew-cask(1)``
68 | * ``macdaily-uninstall``
69 | * ``macdaily-uninstall-brew``
70 | * ``macdaily-uninstall-pip``
71 |
--------------------------------------------------------------------------------
/doc/rst/macdaily-uninstall-pip.rst:
--------------------------------------------------------------------------------
1 | ======================
2 | macdaily-uninstall-pip
3 | ======================
4 |
5 | ------------------------------------
6 | Automated Python Package Uninstaller
7 | ------------------------------------
8 |
9 | :Version: v2019.8.4
10 | :Date: August 07, 2019
11 | :Manual section: 8
12 | :Author:
13 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
14 | of *MacDaily*. Please contact me at *jarryshaw@icloud.com*.
15 | :Copyright:
16 | *MacDaily* is licensed under the **Apple Open Source License**.
17 |
18 | SYNOPSIS
19 | ========
20 |
21 | macdaily **uninstall** *pip* [*options*] <*packages*> ...
22 |
23 | aliases: **cpython**, **pypy**, **python**
24 |
25 | OPTIONS
26 | =======
27 |
28 | optional arguments
29 | ------------------
30 |
31 | -h, --help show this help message and exit
32 | -V, --version show program's version number and exit
33 |
34 | specification arguments
35 | -----------------------
36 |
37 | -b, --brew uninstall packages of Python installed from Homebrew
38 | -c, --cpython uninstall packages of CPython implementation
39 | -d, --pre include pre-release and development versions
40 |
41 | -e *VER* [*VER* ...], --python *VER* [*VER* ...]
42 | indicate packages from which version of Python will be
43 | uninstalled
44 |
45 | -r, --pypy uninstall packages of PyPy implementation
46 | -s, --system uninstall packages of Python provided by macOS system
47 |
48 | -p *PKG* [*PKG* ...], --packages *PKG* [*PKG* ...]
49 | name of Python packages to uninstall
50 |
51 | general arguments
52 | -----------------
53 |
54 | -a, --all uninstall all Python packages installed through
55 | Homebrew
56 | -k, --dry-run list all Python packages which would be removed, but
57 | will not actually delete any Python packages
58 |
59 | -i, --ignore-dependencies
60 | run in non-recursive mode, i.e. ignore dependencies
61 | packages
62 |
63 | -q, --quiet run in quiet mode, with no output information
64 | -v, --verbose run in verbose mode, with detailed output information
65 | -y, --yes yes for all selections
66 | -n, --no-cleanup do not run cleanup process
67 |
68 | miscellaneous arguments
69 | -----------------------
70 |
71 | -L *ARG*, --logging *ARG*
72 | options for ``pip freeze`` command
73 |
74 | -U *ARG*, --uninstall *ARG*
75 | options for ``pip uninstall `` command
76 |
77 | SEE ALSO
78 | ========
79 |
80 | * ``macdaily-uninstall``
81 | * ``macdaily-uninstall-brew``
82 | * ``macdaily-uninstall-cask``
83 |
--------------------------------------------------------------------------------
/doc/rst/macdaily-update-apm.rst:
--------------------------------------------------------------------------------
1 | ===================
2 | macdaily-update-apm
3 | ===================
4 |
5 | -----------------------------
6 | Atom Plug-In Update Automator
7 | -----------------------------
8 |
9 | :Version: v2019.8.4
10 | :Date: August 07, 2019
11 | :Manual section: 8
12 | :Author:
13 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
14 | of *MacDaily*. Please contact me at *jarryshaw@icloud.com*.
15 | :Copyright:
16 | *MacDaily* is licensed under the **Apple Open Source License**.
17 |
18 | SYNOPSIS
19 | ========
20 |
21 | macdaily **update** *apm* [*options*] <*plug-ins*> ...
22 |
23 | aliases: **atom**
24 |
25 | OPTIONS
26 | =======
27 |
28 | optional arguments
29 | ------------------
30 |
31 | -h, --help show this help message and exit
32 | -V, --version show program's version number and exit
33 |
34 | specification arguments
35 | -----------------------
36 |
37 | -b, --beta update Atom Beta plug-ins
38 |
39 | -p *PI* [*PI* ...], --packages *PI* [*PI* ...]
40 | name of Atom plug-ins to update
41 |
42 | general arguments
43 | -----------------
44 |
45 | -a, --all update all plug-ins installed through Atom Package
46 | Manager
47 | -q, --quiet run in quiet mode, with no output information
48 | -v, --verbose run in verbose mode, with detailed output information
49 | -y, --yes yes for all selections
50 |
51 | miscellaneous arguments
52 | -----------------------
53 |
54 | -L *ARG*, --logging *ARG*
55 | options for ``apm upgrade --list`` command
56 |
57 | -U *ARG*, --update *ARG*
58 | options for ``apm upgrade `` command
59 |
60 | SEE ALSO
61 | ========
62 |
63 | * ``macdaily-update``
64 | * ``macdaily-update-brew``
65 | * ``macdaily-update-cask``
66 | * ``macdaily-update-gem``
67 | * ``macdaily-update-mas``
68 | * ``macdaily-update-npm``
69 | * ``macdaily-update-pip``
70 | * ``macdaily-update-system``
71 |
--------------------------------------------------------------------------------
/doc/rst/macdaily-update-brew.rst:
--------------------------------------------------------------------------------
1 | ====================
2 | macdaily-update-brew
3 | ====================
4 |
5 | ---------------------------------
6 | Homebrew Formula Update Automator
7 | ---------------------------------
8 |
9 | :Version: v2019.8.4
10 | :Date: August 07, 2019
11 | :Manual section: 8
12 | :Author:
13 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
14 | of *MacDaily*. Please contact me at *jarryshaw@icloud.com*.
15 | :Copyright:
16 | *MacDaily* is licensed under the **Apple Open Source License**.
17 |
18 | SYNOPSIS
19 | ========
20 |
21 | macdaily **update** *brew* [*options*] <*formulae*> ...
22 |
23 | aliases: **homebrew**
24 |
25 | OPTIONS
26 | =======
27 |
28 | optional arguments
29 | ------------------
30 |
31 | -h, --help show this help message and exit
32 | -V, --version show program's version number and exit
33 |
34 | specification arguments
35 | -----------------------
36 |
37 | -f, --force always do a slower, full update check even if
38 | unnecessary
39 | -m, --merge ``git merge`` is used to include updates (rather
40 | than ``git rebase``)
41 |
42 | -p *FORM* [*FORM* ...], --packages *FORM* [*FORM* ...]
43 | name of Homebrew formulae to update
44 |
45 | general arguments
46 | -----------------
47 |
48 | -a, --all update all Homebrew formulae installed through
49 | Homebrew
50 | -q, --quiet run in quiet mode, with no output information
51 | -v, --verbose run in verbose mode, with detailed output information
52 | -y, --yes yes for all selections
53 | -n, --no-cleanup do not run cleanup process
54 |
55 | miscellaneous arguments
56 | -----------------------
57 |
58 | -L *ARG*, --logging *ARG*
59 | options for ``brew outdated`` command
60 |
61 | -U *ARG*, --update *ARG*
62 | options for ``brew upgrade `` command
63 |
64 | SEE ALSO
65 | ========
66 |
67 | * ``brew(1)``
68 | * ``macdaily-update``
69 | * ``macdaily-update-apm``
70 | * ``macdaily-update-cask``
71 | * ``macdaily-update-gem``
72 | * ``macdaily-update-mas``
73 | * ``macdaily-update-npm``
74 | * ``macdaily-update-pip``
75 | * ``macdaily-update-system``
76 |
--------------------------------------------------------------------------------
/doc/rst/macdaily-update-cask.rst:
--------------------------------------------------------------------------------
1 | ====================
2 | macdaily-update-cask
3 | ====================
4 |
5 | ------------------------------
6 | Homebrew Cask Update Automator
7 | ------------------------------
8 |
9 | :Version: v2019.8.4
10 | :Date: August 07, 2019
11 | :Manual section: 8
12 | :Author:
13 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
14 | of *MacDaily*. Please contact me at *jarryshaw@icloud.com*.
15 | :Copyright:
16 | *MacDaily* is licensed under the **Apple Open Source License**.
17 |
18 | SYNOPSIS
19 | ========
20 |
21 | macdaily **update** *cask* [*options*] <*casks*> ...
22 |
23 | aliases: **brew-cask**, **caskroom**
24 |
25 | OPTIONS
26 | =======
27 |
28 | optional arguments
29 | ------------------
30 |
31 | -h, --help show this help message and exit
32 | -V, --version show program's version number and exit
33 |
34 | specification arguments
35 | -----------------------
36 |
37 | -f, --force use ``--force`` when running ``brew cask
38 | upgrade `` command
39 | -g, --greedy use ``--greedy`` when running ``brew cask
40 | upgrade `` command
41 | -m, --merge ``git merge`` is used to include updates (rather
42 | than ``git rebase``)
43 | -x, --exhaust exhaustively check Caskroom for outdated Homebrew
44 | Casks
45 |
46 | -p *CASK* [*CASK* ...], --packages *CASK* [*CASK* ...]
47 | name of Caskroom binaries to update
48 |
49 | general arguments
50 | -----------------
51 |
52 | -a, --all update all Caskroom binaries installed through
53 | Homebrew
54 | -q, --quiet run in quiet mode, with no output information
55 | -v, --verbose run in verbose mode, with detailed output information
56 | -y, --yes yes for all selections
57 | -n, --no-cleanup do not run cleanup process
58 |
59 | miscellaneous arguments
60 | -----------------------
61 |
62 | -L *ARG*, --logging *ARG*
63 | options for ``brew cask outdated`` command
64 |
65 | -U *ARG*, --update *ARG*
66 | options for ``brew cask upgrade `` command
67 |
68 | SEE ALSO
69 | ========
70 |
71 | * ``brew-cask(1)``
72 | * ``macdaily-update``
73 | * ``macdaily-update-apm``
74 | * ``macdaily-update-brew``
75 | * ``macdaily-update-gem``
76 | * ``macdaily-update-mas``
77 | * ``macdaily-update-npm``
78 | * ``macdaily-update-pip``
79 | * ``macdaily-update-system``
80 |
--------------------------------------------------------------------------------
/doc/rst/macdaily-update-gem.rst:
--------------------------------------------------------------------------------
1 | ===================
2 | macdaily-update-gem
3 | ===================
4 |
5 | -------------------------
6 | Ruby Gem Update Automator
7 | -------------------------
8 |
9 | :Version: v2019.8.4
10 | :Date: August 07, 2019
11 | :Manual section: 8
12 | :Author:
13 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
14 | of *MacDaily*. Please contact me at *jarryshaw@icloud.com*.
15 | :Copyright:
16 | *MacDaily* is licensed under the **Apple Open Source License**.
17 |
18 | SYNOPSIS
19 | ========
20 |
21 | macdaily **update** *gem* [*options*] <*gems*> ...
22 |
23 | aliases: **ruby**, **rubygems**
24 |
25 | OPTIONS
26 | =======
27 |
28 | optional arguments
29 | ------------------
30 |
31 | -h, --help show this help message and exit
32 | -V, --version show program's version number and exit
33 |
34 | specification arguments
35 | -----------------------
36 |
37 | -b, --brew update gems of Ruby installed from Homebrew
38 | -s, --system update gems of Ruby provided by macOS system
39 |
40 | -p *GEM* [*GEM* ...], --packages *GEM* [*GEM* ...]
41 | name of Ruby gems to update
42 |
43 | general arguments
44 | -----------------
45 |
46 | -a, --all update all gems installed through RubyGems
47 | -q, --quiet run in quiet mode, with no output information
48 | -v, --verbose run in verbose mode, with detailed output information
49 | -y, --yes yes for all selections
50 |
51 | miscellaneous arguments
52 | -----------------------
53 |
54 | -L *ARG*, --logging *ARG*
55 | options for ``gem outdated`` command
56 |
57 | -U *ARG*, --update *ARG*
58 | options for ``gem update `` command
59 |
60 | SEE ALSO
61 | ========
62 |
63 | * ``gem(1)``
64 | * ``macdaily-update``
65 | * ``macdaily-update-apm``
66 | * ``macdaily-update-brew``
67 | * ``macdaily-update-cask``
68 | * ``macdaily-update-mas``
69 | * ``macdaily-update-npm``
70 | * ``macdaily-update-pip``
71 | * ``macdaily-update-system``
72 |
--------------------------------------------------------------------------------
/doc/rst/macdaily-update-mas.rst:
--------------------------------------------------------------------------------
1 | ===================
2 | macdaily-update-mas
3 | ===================
4 |
5 | ----------------------------------
6 | macOS Application Update Automator
7 | ----------------------------------
8 |
9 | :Version: v2019.8.4
10 | :Date: August 07, 2019
11 | :Manual section: 8
12 | :Author:
13 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
14 | of *MacDaily*. Please contact me at *jarryshaw@icloud.com*.
15 | :Copyright:
16 | *MacDaily* is licensed under the **Apple Open Source License**.
17 |
18 | SYNOPSIS
19 | ========
20 |
21 | macdaily **update** *mas* [*options*] <*applications*> ...
22 |
23 | aliases: **app-store**, **appstore**, **mac**, **mac-app-store**
24 |
25 | OPTIONS
26 | =======
27 |
28 | optional arguments
29 | ------------------
30 |
31 | -h, --help show this help message and exit
32 | -V, --version show program's version number and exit
33 |
34 | specification arguments
35 | -----------------------
36 |
37 | -p *APP* [*APP* ...], --packages *APP* [*APP* ...]
38 | name of macOS applications to update
39 |
40 | general arguments
41 | -----------------
42 |
43 | -a, --all update all macOS applications installed through Mac
44 | App Store
45 | -q, --quiet run in quiet mode, with no output information
46 | -v, --verbose run in verbose mode, with detailed output information
47 | -y, --yes yes for all selections
48 |
49 | miscellaneous arguments
50 | -----------------------
51 |
52 | -L *ARG*, --logging *ARG*
53 | options for ``mas outdated`` command
54 |
55 | -U *ARG*, --update *ARG*
56 | options for ``mas upgrade `` command
57 |
58 | SEE ALSO
59 | ========
60 |
61 | * ``macdaily-update``
62 | * ``macdaily-update-apm``
63 | * ``macdaily-update-brew``
64 | * ``macdaily-update-cask``
65 | * ``macdaily-update-gem``
66 | * ``macdaily-update-npm``
67 | * ``macdaily-update-pip``
68 | * ``macdaily-update-system``
69 |
--------------------------------------------------------------------------------
/doc/rst/macdaily-update-npm.rst:
--------------------------------------------------------------------------------
1 | ===================
2 | macdaily-update-npm
3 | ===================
4 |
5 | -------------------------------
6 | Node.js Module Update Automator
7 | -------------------------------
8 |
9 | :Version: v2019.8.4
10 | :Date: August 07, 2019
11 | :Manual section: 8
12 | :Author:
13 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
14 | of *MacDaily*. Please contact me at *jarryshaw@icloud.com*.
15 | :Copyright:
16 | *MacDaily* is licensed under the **Apple Open Source License**.
17 |
18 | SYNOPSIS
19 | ========
20 |
21 | macdaily **update** *npm* [*options*] <*modules*> ...
22 |
23 | aliases: **node**, **node.js**
24 |
25 | OPTIONS
26 | =======
27 |
28 | optional arguments
29 | ------------------
30 |
31 | -h, --help show this help message and exit
32 | -V, --version show program's version number and exit
33 |
34 | specification arguments
35 | -----------------------
36 |
37 | -p *MOD* [*MOD* ...], --packages *MOD* [*MOD* ...]
38 | name of Node.js modules to update
39 |
40 | general arguments
41 | -----------------
42 |
43 | -a, --all update all Node.js modules installed through Node.js
44 | Package Manager
45 | -q, --quiet run in quiet mode, with no output information
46 | -v, --verbose run in verbose mode, with detailed output information
47 | -y, --yes yes for all selections
48 | -n, --no-cleanup do not run cleanup process
49 |
50 | miscellaneous arguments
51 | -----------------------
52 |
53 | -L *ARG*, --logging *ARG*
54 | options for ``npm outdated --global`` command
55 |
56 | -U *ARG*, --update *ARG*
57 | options for ``npm upgrade --global `` command
58 |
59 | SEE ALSO
60 | ========
61 |
62 | * ``npm(1)``
63 | * ``macdaily-update``
64 | * ``macdaily-update-apm``
65 | * ``macdaily-update-brew``
66 | * ``macdaily-update-cask``
67 | * ``macdaily-update-gem``
68 | * ``macdaily-update-mas``
69 | * ``macdaily-update-pip``
70 | * ``macdaily-update-system``
71 |
--------------------------------------------------------------------------------
/doc/rst/macdaily-update-pip.rst:
--------------------------------------------------------------------------------
1 | ===================
2 | macdaily-update-pip
3 | ===================
4 |
5 | -------------------------------
6 | Python Package Update Automator
7 | -------------------------------
8 |
9 | :Version: v2019.8.4
10 | :Date: August 07, 2019
11 | :Manual section: 8
12 | :Author:
13 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
14 | of *MacDaily*. Please contact me at *jarryshaw@icloud.com*.
15 | :Copyright:
16 | *MacDaily* is licensed under the **Apple Open Source License**.
17 |
18 | SYNOPSIS
19 | ========
20 |
21 | macdaily **update** *pip* [*options*] <*packages*> ...
22 |
23 | aliases: **cpython**, **pypy**, **python**
24 |
25 | OPTIONS
26 | =======
27 |
28 | optional arguments
29 | ------------------
30 |
31 | -h, --help show this help message and exit
32 | -V, --version show program's version number and exit
33 |
34 | specification arguments
35 | -----------------------
36 |
37 | -u, --user install to the Python user install directory for your
38 | platform
39 | -b, --brew update packages of Python installed from Homebrew
40 | -c, --cpython update packages of CPython implementation
41 | -d, --pre include pre-release and development versions
42 |
43 | -e *VER* [*VER* ...], --python *VER* [*VER* ...]
44 | indicate packages from which version of Python will
45 | update
46 |
47 | -r, --pypy update packages of PyPy implementation
48 | -s, --system update packages of Python provided by macOS system
49 |
50 | -p *PKG* [*PKG* ...], --packages *PKG* [*PKG* ...]
51 | name of Python packages to update
52 |
53 | general arguments
54 | -----------------
55 |
56 | -a, --all update all Python packages installed through Python
57 | Package Index
58 | -q, --quiet run in quiet mode, with no output information
59 | -v, --verbose run in verbose mode, with detailed output information
60 | -y, --yes yes for all selections
61 | -n, --no-cleanup do not run cleanup process
62 |
63 | miscellaneous arguments
64 | -----------------------
65 |
66 | -L *ARG*, --logging *ARG*
67 | options for ``pip list --outdated`` command
68 |
69 | -U *ARG*, --update *ARG*
70 | options for ``pip install --upgrade `` command
71 |
72 | SEE ALSO
73 | ========
74 |
75 | * ``macdaily-update``
76 | * ``macdaily-update-apm``
77 | * ``macdaily-update-brew``
78 | * ``macdaily-update-cask``
79 | * ``macdaily-update-gem``
80 | * ``macdaily-update-mas``
81 | * ``macdaily-update-npm``
82 | * ``macdaily-update-system``
83 |
--------------------------------------------------------------------------------
/doc/rst/macdaily-update-system.rst:
--------------------------------------------------------------------------------
1 | ======================
2 | macdaily-update-system
3 | ======================
4 |
5 | --------------------------------
6 | System Software Update Automator
7 | --------------------------------
8 |
9 | :Version: v2019.8.4
10 | :Date: August 07, 2019
11 | :Manual section: 8
12 | :Author:
13 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
14 | of *MacDaily*. Please contact me at *jarryshaw@icloud.com*.
15 | :Copyright:
16 | *MacDaily* is licensed under the **Apple Open Source License**.
17 |
18 | SYNOPSIS
19 | ========
20 |
21 | macdaily **update** *system* [*options*] <*software*> ...
22 |
23 | aliases: **software**, **softwareupdate**
24 |
25 | OPTIONS
26 | =======
27 |
28 | optional arguments
29 | ------------------
30 |
31 | -h, --help show this help message and exit
32 | -V, --version show program's version number and exit
33 |
34 | specification arguments
35 | -----------------------
36 |
37 | -R, --restart automatically restart (or shut down) if required to
38 | complete installation
39 | -r, --recommended only update software that is recommended for your
40 | system
41 |
42 | -p *SW* [*SW* ...], --packages *SW* [*SW* ...]
43 | name of system software to update
44 |
45 | general arguments
46 | -----------------
47 |
48 | -a, --all update all system software installed through
49 | ``softwareupdate(8)``
50 | -q, --quiet run in quiet mode, with no output information
51 | -v, --verbose run in verbose mode, with detailed output information
52 | -y, --yes yes for all selections
53 |
54 | miscellaneous arguments
55 | -----------------------
56 |
57 | -L *ARG*, --logging *ARG*
58 | options for ``softwareupdate --list`` command
59 |
60 | -U *ARG*, --update *ARG*
61 | options for ``softwareupdate --install
62 | `` command
63 |
64 | SEE ALSO
65 | ========
66 |
67 | * ``softwareupdate(8)``
68 | * ``macdaily-update``
69 | * ``macdaily-update-apm``
70 | * ``macdaily-update-brew``
71 | * ``macdaily-update-cask``
72 | * ``macdaily-update-gem``
73 | * ``macdaily-update-mas``
74 | * ``macdaily-update-npm``
75 | * ``macdaily-update-pip``
76 |
--------------------------------------------------------------------------------
/macdaily/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | import importlib
4 | import os
5 | import platform
6 | import warnings
7 | import sys
8 |
9 | import tbtrim
10 |
11 | from macdaily.util.const.macro import DEVMODE
12 | from macdaily.util.const.term import red, reset
13 | from macdaily.util.exceptions import Error, UnsupportedOS
14 | from macdaily.util.tools.misc import predicate
15 |
16 | # set up sys.excepthook
17 | if DEVMODE:
18 | warnings.showwarning(f'development mode enabled', RuntimeWarning,
19 | filename=__file__, lineno=0,
20 | line=f"MACDAILY_DEVMODE={os.environ['MACDAILY_DEVMODE']}")
21 | else:
22 | tbtrim.set_trim_rule(predicate, strict=False,
23 | target=(Error, KeyboardInterrupt))
24 |
25 | # check platform
26 | if platform.system() != 'Darwin':
27 | raise UnsupportedOS('macdaily: error: script runs only on macOS')
28 |
29 | # check dependencies
30 | if sys.version_info[:2] <= (3, 4):
31 |
32 | def test_import(module):
33 | try:
34 | importlib.import_module(module)
35 | except ImportError:
36 | print(f'macdaily: {red}error{reset}: broken dependency', file=sys.stderr)
37 | raise
38 |
39 | test_import('pathlib2')
40 | test_import('subprocess32')
41 |
--------------------------------------------------------------------------------
/macdaily/api/bundle.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JarryShaw/MacDaily/9bd69fd710c4b00553507b62798532431104abab/macdaily/api/bundle.py
--------------------------------------------------------------------------------
/macdaily/cli/archive.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | import argparse
4 | import sys
5 |
6 | from macdaily.util.const.macro import STR_ARCHIVE
7 | from macdaily.util.const.macro import VERSION as __version__
8 |
9 |
10 | def get_archive_parser():
11 | #######################################################
12 | # Archive CLI
13 | # * options
14 | # - optional arguments
15 | # - specification arguments
16 | # - general arguments
17 | # - miscellaneous arguments
18 | # * packages
19 | #######################################################
20 |
21 | parser = argparse.ArgumentParser(prog='macdaily-archive',
22 | description='MacDaily Log Archive Utility',
23 | usage='macdaily archive [options] ...',
24 | epilog=STR_ARCHIVE)
25 | parser.add_argument('-V', '--version', action='version', version=__version__)
26 |
27 | spec_group = parser.add_argument_group(title='specification arguments')
28 | spec_group.add_argument('path', nargs='*', metavar='CMD',
29 | help=('archive logs of specified command, e.g. archive, cleanup, '
30 | 'dependency, logging, postinstall, reinstall, uninstall, update, '
31 | 'logging/apm, logging/app, logging/brew, logging/cask, logging/gem, '
32 | 'logging/mas, logging/npm, logging/pip and logging/tap'))
33 |
34 | genl_group = parser.add_argument_group(title='general arguments')
35 | genl_group.add_argument('-a', '--all', action='store_true',
36 | help='archive all ancient logs')
37 | genl_group.add_argument('-n', '--no-storage', action='store_true',
38 | help='do not move ancient logs into external hard disk')
39 | genl_group.add_argument('-q', '--quiet', action='store_true',
40 | help='run in quiet mode, with no output information')
41 | genl_group.add_argument('-v', '--verbose', action='store_true',
42 | help='run in verbose mode, with detailed output information')
43 | genl_group.add_argument('-l', '--show-log', action='store_true',
44 | help='open log in Console.app upon completion of command')
45 |
46 | return parser
47 |
48 |
49 | def parse_args(argv=None):
50 | if argv is None:
51 | argv = sys.argv[1:]
52 |
53 | # main parser process
54 | main_parser = get_archive_parser()
55 | main_args = main_parser.parse_args(argv or ['--help'])
56 |
57 | return main_args
58 |
--------------------------------------------------------------------------------
/macdaily/cli/bundle.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JarryShaw/MacDaily/9bd69fd710c4b00553507b62798532431104abab/macdaily/cli/bundle.py
--------------------------------------------------------------------------------
/macdaily/cli/help.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | import argparse
4 | import sys
5 |
6 | from macdaily.util.const.macro import STR_HELP
7 | from macdaily.util.const.macro import VERSION as __version__
8 |
9 |
10 | def get_help_parser():
11 | #######################################################
12 | # Help CLI
13 | # * options
14 | # - optional arguments
15 | # - specification arguments
16 | # - general arguments
17 | # - miscellaneous arguments
18 | # * packages
19 | #######################################################
20 |
21 | parser = argparse.ArgumentParser(prog='macdaily-help',
22 | description='MacDaily Usage Information Manual',
23 | usage='macdaily help [options] ...',
24 | epilog=STR_HELP)
25 | parser.add_argument('-V', '--version', action='version', version=__version__)
26 |
27 | spec_group = parser.add_argument_group(title='specification arguments')
28 | spec_group.add_argument('command', action='store', nargs='?', metavar='CMD',
29 | help=(f"display manual information about such command"))
30 |
31 | return parser
32 |
33 |
34 | def parse_args(argv=None):
35 | if argv is None:
36 | argv = sys.argv[1:] or ['--help']
37 |
38 | # main parser process
39 | main_parser = get_help_parser()
40 | main_args = main_parser.parse_args(argv)
41 |
42 | return main_args
43 |
--------------------------------------------------------------------------------
/macdaily/cli/launch.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | import argparse
4 | import sys
5 |
6 | from macdaily.util.const.macro import STR_LAUNCH
7 | from macdaily.util.const.macro import VERSION as __version__
8 | from macdaily.util.const.term import bold, reset
9 |
10 |
11 | def get_launch_parser():
12 | #######################################################
13 | # Launch CLI
14 | # * options
15 | # - optional arguments
16 | # - specification arguments
17 | # - general arguments
18 | # - miscellaneous arguments
19 | # * packages
20 | #######################################################
21 |
22 | parser = argparse.ArgumentParser(prog='macdaily-launch',
23 | description='MacDaily Dependency Launch Helper',
24 | usage='macdaily launch [options] ...',
25 | epilog=STR_LAUNCH)
26 | parser.add_argument('-V', '--version', action='version', version=__version__)
27 |
28 | spec_group = parser.add_argument_group(title='specification arguments')
29 | spec_group.add_argument('program', nargs='*', metavar='PROG',
30 | help=(f"helper program to launch, choose from `{bold}askpass{reset}', "
31 | f"`{bold}confirm{reset}' and `{bold}daemons{reset}'"))
32 |
33 | genl_group = parser.add_argument_group(title='general arguments')
34 | genl_group.add_argument('-a', '--all', action='store_true',
35 | help=(f"launch all help programs, i.e. `{bold}askpass{reset}', "
36 | f"`{bold}confirm{reset}' and `{bold}daemons{reset}'"))
37 | genl_group.add_argument('-q', '--quiet', action='store_true',
38 | help='run in quiet mode, with no output information')
39 | genl_group.add_argument('-v', '--verbose', action='store_true',
40 | help='run in verbose mode, with detailed output information')
41 | genl_group.add_argument('-n', '--no-cleanup', action='store_true',
42 | help='do not run cleanup process')
43 | genl_group.add_argument('-l', '--show-log', action='store_true',
44 | help='open log in Console.app upon completion of command')
45 |
46 | return parser
47 |
48 |
49 | def parse_args(argv=None):
50 | if argv is None:
51 | argv = sys.argv[1:]
52 |
53 | # main parser process
54 | main_parser = get_launch_parser()
55 | main_args = main_parser.parse_args(argv or ['--help'])
56 |
57 | return main_args
58 |
--------------------------------------------------------------------------------
/macdaily/cls/bundle/dump.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JarryShaw/MacDaily/9bd69fd710c4b00553507b62798532431104abab/macdaily/cls/bundle/dump.py
--------------------------------------------------------------------------------
/macdaily/cls/bundle/load.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JarryShaw/MacDaily/9bd69fd710c4b00553507b62798532431104abab/macdaily/cls/bundle/load.py
--------------------------------------------------------------------------------
/macdaily/cls/cleanup/brew.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | from macdaily.cmd.cleanup import CleanupCommand
4 | from macdaily.core.brew import BrewCommand
5 |
6 |
7 | class BrewCleanup(BrewCommand, CleanupCommand):
8 |
9 | def _parse_args(self, namespace):
10 | self._quiet = namespace.get('quiet', False) # pylint: disable=attribute-defined-outside-init
11 | self._verbose = namespace.get('verbose', False) # pylint: disable=attribute-defined-outside-init
12 |
--------------------------------------------------------------------------------
/macdaily/cls/cleanup/cask.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | from macdaily.cmd.cleanup import CleanupCommand
4 | from macdaily.core.cask import CaskCommand
5 |
6 |
7 | class CaskCleanup(CaskCommand, CleanupCommand):
8 |
9 | def _parse_args(self, namespace):
10 | self._quiet = namespace.get('quiet', False) # pylint: disable=attribute-defined-outside-init
11 | self._verbose = namespace.get('verbose', False) # pylint: disable=attribute-defined-outside-init
12 |
--------------------------------------------------------------------------------
/macdaily/cls/cleanup/npm.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | from macdaily.cmd.cleanup import CleanupCommand
4 | from macdaily.core.npm import NpmCommand
5 |
6 |
7 | class NpmCleanup(NpmCommand, CleanupCommand):
8 |
9 | def _parse_args(self, namespace):
10 | self._quiet = namespace.get('quiet', False) # pylint: disable=attribute-defined-outside-init
11 | self._verbose = namespace.get('verbose', False) # pylint: disable=attribute-defined-outside-init
12 |
--------------------------------------------------------------------------------
/macdaily/cls/cleanup/pip.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | from macdaily.cmd.cleanup import CleanupCommand
4 | from macdaily.core.pip import PipCommand
5 |
6 |
7 | class PipCleanup(PipCommand, CleanupCommand):
8 |
9 | def _parse_args(self, namespace):
10 | self._brew = namespace.get('brew', False) # pylint: disable=attribute-defined-outside-init
11 | self._cpython = namespace.get('cpython', False) # pylint: disable=attribute-defined-outside-init
12 | self._pypy = namespace.get('pypy', False) # pylint: disable=attribute-defined-outside-init
13 | self._system = namespace.get('system', False) # pylint: disable=attribute-defined-outside-init
14 |
15 | self._quiet = namespace.get('quiet', False) # pylint: disable=attribute-defined-outside-init
16 | self._verbose = namespace.get('verbose', False) # pylint: disable=attribute-defined-outside-init
17 |
--------------------------------------------------------------------------------
/macdaily/cls/install/apm.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | from macdaily.cmd.install import InstallCommand
4 | from macdaily.core.apm import ApmCommand
5 | from macdaily.util.tools.print import print_info, print_scpt
6 | from macdaily.util.tools.script import run
7 |
8 |
9 | class ApmInstall(ApmCommand, InstallCommand):
10 |
11 | def _parse_args(self, namespace):
12 | self._beta = namespace.get('beta', False) # pylint: disable=attribute-defined-outside-init
13 |
14 | self._quiet = namespace.get('quiet', False) # pylint: disable=attribute-defined-outside-init
15 | self._verbose = namespace.get('verbose', False) # pylint: disable=attribute-defined-outside-init
16 | self._yes = namespace.get('yes', False) # pylint: disable=attribute-defined-outside-init
17 |
18 | self._install_opts = namespace.get('install', str()).split() # pylint: disable=attribute-defined-outside-init
19 |
20 | def _proc_install(self, path):
21 | text = f'Installing specified {self.desc[1]}'
22 | print_info(text, self._file, redirect=self._qflag)
23 |
24 | argv = [path, 'install']
25 | if self._quiet:
26 | argv.append('--quiet')
27 | if self._verbose:
28 | argv.append('--verbose')
29 | argv.extend(self._install_opts)
30 | argv.append('')
31 |
32 | for package in self._var__temp_pkgs:
33 | argv[-1] = package
34 | print_scpt(argv, self._file, redirect=self._qflag)
35 | if run(argv, self._file, timeout=self._timeout,
36 | redirect=self._qflag, verbose=self._vflag):
37 | self._fail.append(package)
38 | else:
39 | self._pkgs.append(package)
40 | del self._var__temp_pkgs
41 |
--------------------------------------------------------------------------------
/macdaily/cls/install/brew.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | from macdaily.cmd.install import InstallCommand
4 | from macdaily.core.brew import BrewCommand
5 | from macdaily.util.tools.print import print_info, print_scpt
6 | from macdaily.util.tools.script import run
7 |
8 |
9 | class BrewInstall(BrewCommand, InstallCommand):
10 |
11 | def _parse_args(self, namespace):
12 | self._no_cleanup = namespace.get('no_cleanup', False) # pylint: disable=attribute-defined-outside-init
13 |
14 | self._quiet = namespace.get('quiet', False) # pylint: disable=attribute-defined-outside-init
15 | self._verbose = namespace.get('verbose', False) # pylint: disable=attribute-defined-outside-init
16 | self._yes = namespace.get('yes', False) # pylint: disable=attribute-defined-outside-init
17 |
18 | self._install_opts = namespace.get('install', str()).split() # pylint: disable=attribute-defined-outside-init
19 |
20 | def _proc_install(self, path):
21 | text = f'Installing specified {self.desc[1]}'
22 | print_info(text, self._file, redirect=self._qflag)
23 |
24 | argv = [path, 'install']
25 | if self._quiet:
26 | argv.append('--quiet')
27 | if self._verbose:
28 | argv.append('--verbose')
29 | argv.extend(self._install_opts)
30 | argv.append('')
31 |
32 | for package in self._var__temp_pkgs:
33 | argv[-1] = package
34 | print_scpt(argv, self._file, redirect=self._qflag)
35 | if run(argv, self._file, timeout=self._timeout,
36 | redirect=self._qflag, verbose=self._vflag):
37 | self._fail.append(package)
38 | else:
39 | self._pkgs.append(package)
40 | del self._var__temp_pkgs
41 |
--------------------------------------------------------------------------------
/macdaily/cls/install/cask.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | from macdaily.cmd.install import InstallCommand
4 | from macdaily.core.cask import CaskCommand
5 | from macdaily.util.tools.print import print_info, print_scpt
6 | from macdaily.util.tools.script import run
7 |
8 |
9 | class CaskInstall(CaskCommand, InstallCommand):
10 |
11 | def _parse_args(self, namespace):
12 | self._force = namespace.get('force', False) # pylint: disable=attribute-defined-outside-init
13 | self._no_cleanup = namespace.get('no_cleanup', False) # pylint: disable=attribute-defined-outside-init
14 |
15 | self._quiet = namespace.get('quiet', False) # pylint: disable=attribute-defined-outside-init
16 | self._verbose = namespace.get('verbose', False) # pylint: disable=attribute-defined-outside-init
17 | self._yes = namespace.get('yes', False) # pylint: disable=attribute-defined-outside-init
18 |
19 | self._install_opts = namespace.get('install', str()).split() # pylint: disable=attribute-defined-outside-init
20 |
21 | def _proc_install(self, path):
22 | text = f'Installing specified {self.desc[1]}'
23 | print_info(text, self._file, redirect=self._qflag)
24 |
25 | argv = [path, 'cask', 'install']
26 | if self._force:
27 | argv.append('--force')
28 | if self._quiet:
29 | argv.append('--quiet')
30 | if self._verbose:
31 | argv.append('--verbose')
32 | argv.extend(self._install_opts)
33 | argv.append('')
34 |
35 | askpass = f'SUDO_ASKPASS={self._askpass!r}'
36 | for package in self._var__temp_pkgs:
37 | argv[-1] = package
38 | print_scpt(' '.join(argv), self._file, redirect=self._qflag)
39 | if run(argv, self._file, shell=True, timeout=self._timeout,
40 | redirect=self._qflag, verbose=self._vflag, prefix=askpass):
41 | self._fail.append(package)
42 | else:
43 | self._pkgs.append(package)
44 | del self._var__temp_pkgs
45 |
--------------------------------------------------------------------------------
/macdaily/cls/install/gem.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | from macdaily.cmd.install import InstallCommand
4 | from macdaily.core.gem import GemCommand
5 | from macdaily.util.tools.print import print_info, print_scpt
6 | from macdaily.util.tools.script import sudo
7 |
8 |
9 | class GemInstall(GemCommand, InstallCommand):
10 |
11 | def _parse_args(self, namespace):
12 | self._brew = namespace.get('brew', False) # pylint: disable=attribute-defined-outside-init
13 | self._system = namespace.get('system', False) # pylint: disable=attribute-defined-outside-init
14 |
15 | self._quiet = namespace.get('quiet', False) # pylint: disable=attribute-defined-outside-init
16 | self._verbose = namespace.get('verbose', False) # pylint: disable=attribute-defined-outside-init
17 | self._yes = namespace.get('yes', False) # pylint: disable=attribute-defined-outside-init
18 |
19 | self._install_opts = namespace.get('install', str()).split() # pylint: disable=attribute-defined-outside-init
20 |
21 | def _proc_install(self, path):
22 | text = f'Installing specified {self.desc[1]}'
23 | print_info(text, self._file, redirect=self._qflag)
24 |
25 | argv = [path, 'install']
26 | if self._quiet:
27 | argv.append('--quiet')
28 | if self._verbose:
29 | argv.append('--verbose')
30 | argv.extend(self._install_opts)
31 |
32 | argc = ' '.join(argv)
33 | for package in self._var__temp_pkgs:
34 | args = f'{argc} {package}'
35 | print_scpt(args, self._file, redirect=self._qflag)
36 | yes = 'y' if self._yes else None
37 | if sudo(argv, self._file, self._password, timeout=self._timeout,
38 | redirect=self._qflag, verbose=self._vflag, yes=yes):
39 | self._fail.append(package)
40 | else:
41 | self._pkgs.append(package)
42 | del self._var__temp_pkgs
43 |
--------------------------------------------------------------------------------
/macdaily/cls/install/mas.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | import re
4 |
5 | from macdaily.cmd.install import InstallCommand
6 | from macdaily.core.mas import MasCommand
7 | from macdaily.util.tools.print import print_info, print_scpt
8 | from macdaily.util.tools.script import sudo
9 |
10 |
11 | class MasInstall(MasCommand, InstallCommand):
12 |
13 | def _parse_args(self, namespace):
14 | self._force = namespace.get('force', False) # pylint: disable=attribute-defined-outside-init
15 |
16 | self._quiet = namespace.get('quiet', False) # pylint: disable=attribute-defined-outside-init
17 | self._verbose = namespace.get('verbose', False) # pylint: disable=attribute-defined-outside-init
18 | self._yes = namespace.get('yes', False) # pylint: disable=attribute-defined-outside-init
19 |
20 | self._install_opts = namespace.get('install', str()).split() # pylint: disable=attribute-defined-outside-init
21 |
22 | def _proc_install(self, path):
23 | text = f'Installing specified {self.desc[1]}'
24 | print_info(text, self._file, redirect=self._qflag)
25 |
26 | argv = [path, 'install']
27 | if self._force:
28 | argv.append('--force')
29 | argv.extend(self._install_opts)
30 | argv.append('')
31 |
32 | for package in self._var__temp_pkgs:
33 | if re.match(r'\d{10}', package) is None:
34 | argv[1] = 'lucky'
35 | argv[-1] = package
36 | print_scpt(' '.join(argv), self._file, redirect=self._qflag)
37 | if sudo(argv, self._file, self._password, timeout=self._timeout,
38 | redirect=self._qflag, verbose=self._vflag):
39 | self._fail.append(package)
40 | else:
41 | self._pkgs.append(package)
42 | del self._var__temp_pkgs
43 |
--------------------------------------------------------------------------------
/macdaily/cls/install/npm.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | from macdaily.cmd.install import InstallCommand
4 | from macdaily.core.npm import NpmCommand
5 | from macdaily.util.tools.print import print_info, print_scpt
6 | from macdaily.util.tools.script import sudo
7 |
8 |
9 | class NpmInstall(NpmCommand, InstallCommand):
10 |
11 | def _parse_args(self, namespace):
12 | self._no_cleanup = namespace.get('no_cleanup', False) # pylint: disable=attribute-defined-outside-init
13 |
14 | self._quiet = namespace.get('quiet', False) # pylint: disable=attribute-defined-outside-init
15 | self._verbose = namespace.get('verbose', False) # pylint: disable=attribute-defined-outside-init
16 | self._yes = namespace.get('yes', False) # pylint: disable=attribute-defined-outside-init
17 |
18 | self._install_opts = namespace.get('install', str()).split() # pylint: disable=attribute-defined-outside-init
19 |
20 | def _proc_install(self, path):
21 | text = f'Installing specified {self.desc[1]}'
22 | print_info(text, self._file, redirect=self._qflag)
23 |
24 | argv = [path, 'install', '--global']
25 | if self._quiet:
26 | argv.append('--quiet')
27 | if self._verbose:
28 | argv.append('--verbose')
29 | argv.extend(self._install_opts)
30 | argv.append('')
31 |
32 | for package in self._var__temp_pkgs:
33 | argv[-1] = package
34 | print_scpt(argv, self._file, redirect=self._qflag)
35 | if sudo(argv, self._file, self._password, timeout=self._timeout,
36 | redirect=self._qflag, verbose=self._vflag):
37 | self._fail.append(package)
38 | else:
39 | self._pkgs.append(package)
40 | del self._var__temp_pkgs
41 |
--------------------------------------------------------------------------------
/macdaily/cls/install/pip.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | from macdaily.cmd.install import InstallCommand
4 | from macdaily.core.pip import PipCommand
5 | from macdaily.util.tools.print import print_info, print_scpt
6 | from macdaily.util.tools.script import sudo
7 |
8 |
9 | class PipInstall(PipCommand, InstallCommand):
10 |
11 | def _parse_args(self, namespace):
12 | self._brew = namespace.get('brew', False) # pylint: disable=attribute-defined-outside-init
13 | self._cpython = namespace.get('cpython', False) # pylint: disable=attribute-defined-outside-init
14 | self._no_cleanup = namespace.get('no_cleanup', False) # pylint: disable=attribute-defined-outside-init
15 | self._pre = namespace.get('pre', False) # pylint: disable=attribute-defined-outside-init
16 | self._pypy = namespace.get('pypy', False) # pylint: disable=attribute-defined-outside-init
17 | self._system = namespace.get('system', False) # pylint: disable=attribute-defined-outside-init
18 | self._user = namespace.get('user', False) # pylint: disable=attribute-defined-outside-init
19 |
20 | self._quiet = namespace.get('quiet', False) # pylint: disable=attribute-defined-outside-init
21 | self._verbose = namespace.get('verbose', False) # pylint: disable=attribute-defined-outside-init
22 | self._yes = namespace.get('yes', False) # pylint: disable=attribute-defined-outside-init
23 |
24 | self._install_opts = namespace.get('install', str()).split() # pylint: disable=attribute-defined-outside-init
25 |
26 | def _proc_install(self, path):
27 | text = f'Installing specified {self.desc[1]}'
28 | print_info(text, self._file, redirect=self._qflag)
29 |
30 | argv = [path, '-m', 'pip', 'install']
31 | if self._pre:
32 | argv.append('--pre')
33 | if self._user:
34 | argv.append('--user')
35 | if self._quiet:
36 | argv.append('--quiet')
37 | if self._verbose:
38 | argv.append('--verbose')
39 | argv.extend(self._install_opts)
40 | argv.append('')
41 |
42 | for package in self._var__temp_pkgs:
43 | argv[-1] = package
44 | print_scpt(argv, self._file, redirect=self._qflag)
45 | if sudo(argv, self._file, self._password, timeout=self._timeout,
46 | redirect=self._qflag, verbose=self._vflag, sethome=True):
47 | self._fail.append(package)
48 | else:
49 | self._pkgs.append(package)
50 | del self._var__temp_pkgs
51 |
--------------------------------------------------------------------------------
/macdaily/cls/install/system.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | from macdaily.cmd.install import InstallCommand
4 | from macdaily.core.system import SystemCommand
5 | from macdaily.util.tools.print import print_info, print_scpt
6 | from macdaily.util.tools.script import sudo
7 |
8 |
9 | class SystemInstall(SystemCommand, InstallCommand):
10 |
11 | def _parse_args(self, namespace):
12 | self._restart = namespace.get('restart', False) # pylint: disable=attribute-defined-outside-init
13 |
14 | self._quiet = namespace.get('quiet', False) # pylint: disable=attribute-defined-outside-init
15 | self._verbose = namespace.get('verbose', False) # pylint: disable=attribute-defined-outside-init
16 | self._yes = namespace.get('yes', False) # pylint: disable=attribute-defined-outside-init
17 |
18 | self._install_opts = namespace.get('install', str()).split() # pylint: disable=attribute-defined-outside-init
19 |
20 | def _proc_install(self, path):
21 | text = f'Installing specified {self.desc[1]}'
22 | print_info(text, self._file, redirect=self._qflag)
23 |
24 | argv = [path, '--install']
25 | if self._restart:
26 | argv.append('--restart')
27 | if self._quiet:
28 | argv.append('--quiet')
29 | if self._verbose:
30 | argv.append('--verbose')
31 | argv.extend(self._install_opts)
32 |
33 | argc = ' '.join(argv)
34 | for package in self._var__temp_pkgs:
35 | args = f'{argc} {package!r}'
36 | print_scpt(args, self._file, redirect=self._qflag)
37 | if sudo(args, self._file, self._password, timeout=self._timeout,
38 | redirect=self._qflag, verbose=self._vflag):
39 | self._fail.append(package)
40 | else:
41 | self._pkgs.append(package)
42 | del self._var__temp_pkgs
43 |
--------------------------------------------------------------------------------
/macdaily/cls/logging/apm.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | import os
4 | import traceback
5 |
6 | from macdaily.cmd.logging import LoggingCommand
7 | from macdaily.core.apm import ApmCommand
8 | from macdaily.util.compat import subprocess
9 | from macdaily.util.tools.make import make_stderr
10 | from macdaily.util.tools.misc import date
11 | from macdaily.util.tools.print import print_info, print_scpt, print_text
12 |
13 |
14 | class ApmLogging(ApmCommand, LoggingCommand):
15 |
16 | @property
17 | def log(self):
18 | return 'packages'
19 |
20 | @property
21 | def ext(self):
22 | return '.txt'
23 |
24 | def _parse_args(self, namespace):
25 | self._beta = namespace.get('beta', False) # pylint: disable=attribute-defined-outside-init
26 |
27 | self._quiet = namespace.get('quiet', False) # pylint: disable=attribute-defined-outside-init
28 | self._verbose = namespace.get('verbose', False) # pylint: disable=attribute-defined-outside-init
29 |
30 | def _proc_logging(self, path):
31 | text = f'Listing installed {self.desc[1]}'
32 | print_info(text, self._file, redirect=self._qflag)
33 |
34 | suffix = path.replace('/', ':')
35 | logfile = os.path.join(self._logroot, f'{self.log}-{suffix}{self.ext}')
36 |
37 | argv = [path, 'list', '--installed', '--bare']
38 | args = ' '.join(argv)
39 | print_scpt(args, self._file, redirect=self._qflag)
40 | with open(self._file, 'a') as file:
41 | file.write(f'Script started on {date()}\n')
42 | file.write(f'command: {args!r}\n')
43 |
44 | try:
45 | proc = subprocess.check_output(argv, stderr=make_stderr(self._vflag))
46 | except subprocess.CalledProcessError:
47 | print_text(traceback.format_exc(), self._file, redirect=self._vflag)
48 | _real_pkgs = dict()
49 | else:
50 | context = proc.decode()
51 | print_text(context, self._file, redirect=self._vflag)
52 |
53 | with open(logfile, 'w') as file:
54 | file.writelines(filter(None, context.strip().splitlines(True))) # pylint: disable=filter-builtin-not-iterating
55 | finally:
56 | with open(self._file, 'a') as file:
57 | file.write(f'Script done on {date()}\n')
58 |
--------------------------------------------------------------------------------
/macdaily/cls/logging/app.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | import os
4 | import sys
5 | import traceback
6 |
7 | from macdaily.cmd.logging import LoggingCommand
8 | from macdaily.util.const.macro import ROOT
9 | from macdaily.util.compat import subprocess
10 | from macdaily.util.tools.make import make_pipe, make_stderr
11 | from macdaily.util.tools.misc import date
12 | from macdaily.util.tools.print import print_info, print_scpt, print_text
13 |
14 |
15 | class AppLogging(LoggingCommand):
16 |
17 | @property
18 | def log(self):
19 | return 'macOS'
20 |
21 | @property
22 | def ext(self):
23 | return '.log'
24 |
25 | @property
26 | def mode(self):
27 | return 'app'
28 |
29 | @property
30 | def name(self):
31 | return 'macOS Application Logging'
32 |
33 | @property
34 | def desc(self):
35 | return ('Mac Application', 'Mac Applications')
36 |
37 | def _check_exec(self):
38 | return True
39 |
40 | def _parse_args(self, namespace):
41 | self._quiet = namespace.get('quiet', False) # pylint: disable=attribute-defined-outside-init
42 | self._verbose = namespace.get('verbose', False) # pylint: disable=attribute-defined-outside-init
43 |
44 | def _loc_exec(self):
45 | self._exec = {sys.executable}
46 |
47 | def _proc_logging(self, path):
48 | text = f'Listing installed {self.desc[1]}'
49 | print_info(text, self._file, redirect=self._qflag)
50 |
51 | suffix = path.replace('/', ':')
52 | logfile = os.path.join(self._logroot, f'{self.log}-{suffix}{self.ext}')
53 |
54 | find = os.path.join(ROOT, 'res', 'find.py')
55 | argv = ['sudo', '--stdin', "--prompt=''", path, find, '/']
56 | args = ' '.join(argv)
57 | print_scpt(args, self._file, redirect=self._qflag)
58 | with open(self._file, 'a') as file:
59 | file.write(f'Script started on {date()}\n')
60 | file.write(f'command: {args!r}\n')
61 |
62 | try:
63 | with make_pipe(self._password, self._vflag) as pipe:
64 | proc = subprocess.check_output(argv, stdin=pipe.stdout, stderr=make_stderr(self._vflag))
65 | except subprocess.CalledProcessError:
66 | print_text(traceback.format_exc(), self._file, redirect=self._vflag)
67 | _real_pkgs = dict()
68 | else:
69 | context = proc.decode()
70 | print_text(context, self._file, redirect=self._vflag)
71 |
72 | with open(logfile, 'w') as file:
73 | file.writelines(filter(None, context.strip().splitlines(True))) # pylint: disable=filter-builtin-not-iterating
74 | finally:
75 | with open(self._file, 'a') as file:
76 | file.write(f'Script done on {date()}\n')
77 |
--------------------------------------------------------------------------------
/macdaily/cls/logging/npm.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | import json
4 | import os
5 | import traceback
6 |
7 | from macdaily.cmd.logging import LoggingCommand
8 | from macdaily.core.npm import NpmCommand
9 | from macdaily.util.compat import subprocess
10 | from macdaily.util.tools.make import make_stderr
11 | from macdaily.util.tools.misc import date
12 | from macdaily.util.tools.print import print_info, print_scpt, print_text
13 |
14 |
15 | class NpmLogging(NpmCommand, LoggingCommand):
16 |
17 | @property
18 | def log(self):
19 | return 'package'
20 |
21 | @property
22 | def ext(self):
23 | return '.json'
24 |
25 | def _parse_args(self, namespace):
26 | self._long = namespace.get('long', False) # pylint: disable=attribute-defined-outside-init
27 |
28 | self._quiet = namespace.get('quiet', False) # pylint: disable=attribute-defined-outside-init
29 | self._verbose = namespace.get('verbose', False) # pylint: disable=attribute-defined-outside-init
30 |
31 | def _proc_logging(self, path):
32 | text = f'Listing installed {self.desc[1]}'
33 | print_info(text, self._file, redirect=self._qflag)
34 |
35 | suffix = path.replace('/', ':')
36 | logfile = os.path.join(self._logroot, f'{self.log}-{suffix}{self.ext}')
37 |
38 | argv = [path, 'list', '--global', '--json']
39 | if self._long:
40 | argv.append('--long')
41 |
42 | args = ' '.join(argv)
43 | print_scpt(args, self._file, redirect=self._qflag)
44 | with open(self._file, 'a') as file:
45 | file.write(f'Script started on {date()}\n')
46 | file.write(f'command: {args!r}\n')
47 |
48 | try:
49 | proc = subprocess.check_output(argv, stderr=make_stderr(self._vflag))
50 | except subprocess.CalledProcessError:
51 | print_text(traceback.format_exc(), self._file, redirect=self._vflag)
52 | _real_pkgs = dict()
53 | else:
54 | context = proc.decode()
55 | print_text(context, self._file, redirect=self._vflag)
56 |
57 | content = json.loads(context.strip())
58 | with open(logfile, 'w') as file:
59 | json.dump(content, file, indent=2)
60 | finally:
61 | with open(self._file, 'a') as file:
62 | file.write(f'Script done on {date()}\n')
63 |
--------------------------------------------------------------------------------
/macdaily/cls/logging/pip.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | import os
4 | import traceback
5 |
6 | from macdaily.cmd.logging import LoggingCommand
7 | from macdaily.core.pip import PipCommand
8 | from macdaily.util.compat import subprocess
9 | from macdaily.util.tools.make import make_stderr
10 | from macdaily.util.tools.misc import date
11 | from macdaily.util.tools.print import print_info, print_scpt, print_text
12 |
13 |
14 | class PipLogging(PipCommand, LoggingCommand):
15 |
16 | @property
17 | def log(self):
18 | return 'requirements'
19 |
20 | @property
21 | def ext(self):
22 | return '.txt'
23 |
24 | def _parse_args(self, namespace):
25 | self._brew = namespace.get('brew', False) # pylint: disable=attribute-defined-outside-init
26 | self._cpython = namespace.get('cpython', False) # pylint: disable=attribute-defined-outside-init
27 | self._exclude_editable = namespace.get('exclude_editable', False) # pylint: disable=attribute-defined-outside-init
28 | self._pypy = namespace.get('pypy', False) # pylint: disable=attribute-defined-outside-init
29 | self._system = namespace.get('system', False) # pylint: disable=attribute-defined-outside-init
30 |
31 | self._quiet = namespace.get('quiet', False) # pylint: disable=attribute-defined-outside-init
32 | self._verbose = namespace.get('verbose', False) # pylint: disable=attribute-defined-outside-init
33 |
34 | def _proc_logging(self, path):
35 | text = f'Listing installed {self.desc[1]}'
36 | print_info(text, self._file, redirect=self._qflag)
37 |
38 | suffix = path.replace('/', ':')
39 | logfile = os.path.join(self._logroot, f'{self.log}-{suffix}{self.ext}')
40 |
41 | argv = [path, '-m', 'pip', 'freeze']
42 | if self._exclude_editable:
43 | argv.append('--exclude-editable')
44 |
45 | args = ' '.join(argv)
46 | print_scpt(args, self._file, redirect=self._qflag)
47 | with open(self._file, 'a') as file:
48 | file.write(f'Script started on {date()}\n')
49 | file.write(f'command: {args!r}\n')
50 |
51 | try:
52 | proc = subprocess.check_output(argv, stderr=make_stderr(self._vflag))
53 | except subprocess.CalledProcessError:
54 | print_text(traceback.format_exc(), self._file, redirect=self._vflag)
55 | _real_pkgs = dict()
56 | else:
57 | context = proc.decode()
58 | print_text(context, self._file, redirect=self._vflag)
59 |
60 | with open(logfile, 'w') as file:
61 | file.writelines(filter(None, context.strip().splitlines(True))) # pylint: disable=filter-builtin-not-iterating
62 | finally:
63 | with open(self._file, 'a') as file:
64 | file.write(f'Script done on {date()}\n')
65 |
--------------------------------------------------------------------------------
/macdaily/cmd/bundle.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JarryShaw/MacDaily/9bd69fd710c4b00553507b62798532431104abab/macdaily/cmd/bundle.py
--------------------------------------------------------------------------------
/macdaily/cmd/cleanup.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | import abc
4 |
5 | from macdaily.cls.command import Command
6 | from macdaily.util.tools.print import print_info
7 |
8 |
9 | class CleanupCommand(Command):
10 |
11 | @property
12 | def cmd(self):
13 | return 'cleanup'
14 |
15 | @property
16 | def act(self):
17 | return ('prune', 'pruned', 'cleanup')
18 |
19 | @property
20 | def job(self):
21 | return ('cleanup', 'cleanup')
22 |
23 | @property
24 | def packages(self):
25 | return NotImplemented
26 |
27 | @property
28 | def ignored(self):
29 | return NotImplemented
30 |
31 | @property
32 | def failed(self):
33 | return NotImplemented
34 |
35 | @property
36 | def notfound(self):
37 | return NotImplemented
38 |
39 | def __init__(self, namespace, filename, timeout, confirm, # pylint: disable=super-init-not-called
40 | askpass, password, disk_dir, brew_renew=None):
41 | self._qflag = namespace.get('quiet', False)
42 | self._vflag = self._qflag or (not namespace.get('verbose', False))
43 |
44 | text = f'Running {self.cmd} command for {self.mode}'
45 | print_info(text, filename, redirect=self._qflag)
46 |
47 | # assign members
48 | self._file = filename
49 | self._timeout = timeout
50 | self._confirm = confirm
51 | self._askpass = askpass
52 | self._password = password
53 | self._disk_dir = disk_dir
54 | self._brew_renew = brew_renew
55 | self._no_cleanup = False
56 |
57 | # exit if no executable found
58 | if self._check_exec():
59 | # mainloop process
60 | self._pkg_args(namespace)
61 | self._loc_exec()
62 | self._run_proc()
63 |
64 | # remove temp vars
65 | [delattr(self, attr) for attr in filter(lambda s: s.startswith('_var_'), dir(self))] # pylint: disable=expression-not-assigned
66 |
67 | def _pkg_args(self, namespace):
68 | return self._parse_args(namespace)
69 |
70 | def _run_proc(self):
71 | self._proc_cleanup()
72 |
73 | @abc.abstractmethod
74 | def _proc_cleanup(self):
75 | pass
76 |
--------------------------------------------------------------------------------
/macdaily/cmd/dependency.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | import abc
4 |
5 | from macdaily.cls.command import Command
6 | from macdaily.util.tools.print import print_info
7 |
8 |
9 | class DependencyCommand(Command):
10 |
11 | @property
12 | def cmd(self):
13 | return 'dependency'
14 |
15 | @property
16 | def act(self):
17 | return ('query', 'queried', 'displayed')
18 |
19 | @property
20 | def job(self):
21 | return ('dependency', 'dependencies')
22 |
23 | def _run_proc(self):
24 | self._pkgs = list()
25 | self._fail = list()
26 | self._lost = list()
27 | for path in self._exec:
28 | text = f'Using {self.name} executable {path!r}'
29 | print_info(text, self._file, redirect=self._qflag)
30 | if self._proc_logging(path):
31 | self._proc_dependency(path)
32 | else:
33 | text = f'No {self.desc[1]} to query for executable {path!r}'
34 | print_info(text, self._file, redirect=self._qflag)
35 |
36 | def _proc_logging(self, path):
37 | if self._packages:
38 | self._check_pkgs(path)
39 | self._did_you_mean()
40 | else:
41 | self._check_list(path)
42 | return bool(self._var__temp_pkgs)
43 |
44 | @abc.abstractmethod
45 | def _check_pkgs(self, path):
46 | self._var__temp_pkgs = self._packages # pylint: disable=attribute-defined-outside-init
47 |
48 | @abc.abstractmethod
49 | def _check_list(self, path):
50 | self._var__temp_pkgs = set() # pylint: disable=attribute-defined-outside-init
51 |
52 | @abc.abstractmethod
53 | def _proc_dependency(self, path):
54 | pass
55 |
--------------------------------------------------------------------------------
/macdaily/cmd/install.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | import abc
4 |
5 | from macdaily.cls.command import Command
6 | from macdaily.util.tools.print import print_info
7 |
8 |
9 | class InstallCommand(Command):
10 |
11 | @property
12 | def cmd(self):
13 | return 'install'
14 |
15 | @property
16 | def act(self):
17 | return ('install', 'installed', 'installed')
18 |
19 | @property
20 | def job(self):
21 | return ('installation', 'installation')
22 |
23 | @property
24 | def ignored(self):
25 | return NotImplemented
26 |
27 | @property
28 | def notfound(self):
29 | return NotImplemented
30 |
31 | def _pkg_args(self, namespace):
32 | """Return if there's packages for main process."""
33 | self._merge_packages(namespace)
34 | self._parse_args(namespace)
35 |
36 | self._pkgs = list()
37 | self._fail = list()
38 |
39 | return bool(self._packages)
40 |
41 | def _run_proc(self):
42 | self._pkgs = list()
43 | self._fail = list()
44 | for path in self._exec:
45 | text = f'Using {self.name} executable {path!r}'
46 | print_info(text, self._file, redirect=self._qflag)
47 |
48 | self._var__temp_pkgs = self._packages # pylint: disable=attribute-defined-outside-init
49 | if self._check_confirm(path):
50 | self._proc_install(path)
51 | else:
52 | text = f'No {self.desc[1]} to install for executable {path!r}'
53 | print_info(text, self._file, redirect=self._qflag)
54 | self._proc_fixmissing(path)
55 | self._proc_cleanup()
56 |
57 | @abc.abstractmethod
58 | def _proc_install(self, path):
59 | pass
60 |
--------------------------------------------------------------------------------
/macdaily/cmd/logging.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | import abc
4 | import os
5 |
6 | from macdaily.cls.command import Command
7 | from macdaily.util.compat import pathlib
8 | from macdaily.util.tools.print import print_info
9 |
10 |
11 | class LoggingCommand(Command):
12 |
13 | @property
14 | @abc.abstractmethod
15 | def log(self):
16 | return NotImplemented
17 |
18 | @property
19 | @abc.abstractmethod
20 | def ext(self):
21 | return NotImplemented
22 |
23 | @property
24 | def cmd(self):
25 | return 'logging'
26 |
27 | @property
28 | def act(self):
29 | return ('log', 'logged', 'recorded')
30 |
31 | @property
32 | def job(self):
33 | return ('logging', 'logging')
34 |
35 | @property
36 | def sample(self):
37 | return os.path.join(self._logroot, f'{self.log}{self.ext}')
38 |
39 | @property
40 | def packages(self):
41 | return NotImplemented
42 |
43 | @property
44 | def ignored(self):
45 | return NotImplemented
46 |
47 | @property
48 | def failed(self):
49 | return NotImplemented
50 |
51 | @property
52 | def notfound(self):
53 | return NotImplemented
54 |
55 | def __init__(self, namespace, filename, timeout, confirm, # pylint: disable=super-init-not-called
56 | askpass, password, disk_dir, brew_renew=None):
57 | self._qflag = namespace.get('quiet', False)
58 | self._vflag = self._qflag or (not namespace.get('verbose', False))
59 |
60 | text = f'Running {self.cmd} command for {self.mode}'
61 | print_info(text, filename, redirect=self._qflag)
62 |
63 | # assign members
64 | self._file = filename
65 | self._timeout = timeout
66 | self._confirm = confirm
67 | self._askpass = askpass
68 | self._password = password
69 | self._disk_dir = disk_dir
70 | self._brew_renew = brew_renew
71 | self._logroot = str(pathlib.Path(filename).resolve().parents[1])
72 |
73 | # exit if no executable found
74 | if self._check_exec():
75 | # mainloop process
76 | self._pkg_args(namespace)
77 | self._loc_exec()
78 | self._run_proc()
79 |
80 | # remove temp vars
81 | [delattr(self, attr) for attr in filter(lambda s: s.startswith('_var_'), dir(self))] # pylint: disable=expression-not-assigned
82 |
83 | def _pkg_args(self, namespace):
84 | return self._parse_args(namespace)
85 |
86 | def _run_proc(self):
87 | for path in self._exec:
88 | text = f'Using {self.name} executable {path!r}'
89 | print_info(text, self._file, redirect=self._qflag)
90 | self._proc_logging(path)
91 |
92 | @abc.abstractmethod
93 | def _proc_logging(self, path):
94 | pass
95 |
--------------------------------------------------------------------------------
/macdaily/cmd/reinstall.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | import abc
4 |
5 | from macdaily.cls.command import Command
6 | from macdaily.util.tools.print import print_info
7 |
8 |
9 | class ReinstallCommand(Command):
10 |
11 | @property
12 | def cmd(self):
13 | return 'reinstall'
14 |
15 | @property
16 | def act(self):
17 | return ('reinstall', 'reinstalled', 'reinstalled')
18 |
19 | @property
20 | def job(self):
21 | return ('reinstallation', 'reinstallation')
22 |
23 | def _run_proc(self):
24 | self._pkgs = list()
25 | self._fail = list()
26 | self._lost = list()
27 | for path in self._exec:
28 | text = f'Using {self.name} executable {path!r}'
29 | print_info(text, self._file, redirect=self._qflag)
30 | if self._proc_logging(path):
31 | self._proc_reinstall(path)
32 | else:
33 | text = f'No {self.desc[1]} to reinstall for executable {path!r}'
34 | print_info(text, self._file, redirect=self._qflag)
35 | self._proc_fixmissing(path)
36 | self._proc_cleanup()
37 |
38 | def _proc_logging(self, path):
39 | if self._packages:
40 | self._check_pkgs(path)
41 | self._did_you_mean()
42 | else:
43 | self._check_list(path)
44 | return self._check_confirm(path)
45 |
46 | @abc.abstractmethod
47 | def _check_pkgs(self, path):
48 | self._var__temp_pkgs = self._packages # pylint: disable=attribute-defined-outside-init
49 |
50 | @abc.abstractmethod
51 | def _check_list(self, path):
52 | self._var__temp_pkgs = set() # pylint: disable=attribute-defined-outside-init
53 |
54 | @abc.abstractmethod
55 | def _proc_reinstall(self, path):
56 | pass
57 |
--------------------------------------------------------------------------------
/macdaily/cmd/uninstall.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | import abc
4 |
5 | from macdaily.cls.command import Command
6 | from macdaily.util.tools.print import print_info
7 |
8 |
9 | class UninstallCommand(Command):
10 |
11 | @property
12 | def cmd(self):
13 | return 'uninstall'
14 |
15 | @property
16 | def act(self):
17 | return ('uninstall', 'uninstalled', 'removed')
18 |
19 | @property
20 | def job(self):
21 | return ('uninstallation', 'uninstallation')
22 |
23 | def _run_proc(self):
24 | self._pkgs = list()
25 | self._fail = list()
26 | self._lost = list()
27 | for path in self._exec:
28 | text = f'Using {self.name} executable {path!r}'
29 | print_info(text, self._file, redirect=self._qflag)
30 | if self._proc_logging(path):
31 | self._proc_uninstall(path)
32 | else:
33 | text = f'No {self.desc[1]} to uninstall for executable {path!r}'
34 | print_info(text, self._file, redirect=self._qflag)
35 | self._proc_fixmissing(path)
36 | self._proc_cleanup()
37 |
38 | def _proc_logging(self, path):
39 | if self._packages:
40 | self._check_pkgs(path)
41 | self._did_you_mean()
42 | else:
43 | self._check_list(path)
44 | return self._check_confirm(path)
45 |
46 | @abc.abstractmethod
47 | def _check_pkgs(self, path):
48 | self._var__temp_pkgs = self._packages # pylint: disable=attribute-defined-outside-init
49 |
50 | @abc.abstractmethod
51 | def _check_list(self, path):
52 | self._var__temp_pkgs = set() # pylint: disable=attribute-defined-outside-init
53 |
54 | @abc.abstractmethod
55 | def _proc_uninstall(self, path):
56 | pass
57 |
--------------------------------------------------------------------------------
/macdaily/cmd/update.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | import abc
4 |
5 | from macdaily.cls.command import Command
6 | from macdaily.util.tools.print import print_info
7 |
8 |
9 | class UpdateCommand(Command):
10 |
11 | @property
12 | def cmd(self):
13 | return 'update'
14 |
15 | @property
16 | def act(self):
17 | return ('upgrade', 'upgraded', 'up-to-date')
18 |
19 | @property
20 | def job(self):
21 | return ('update', 'updates')
22 |
23 | def _run_proc(self):
24 | self._pkgs = list()
25 | self._fail = list()
26 | self._lost = list()
27 | for path in self._exec:
28 | text = f'Using {self.name} executable {path!r}'
29 | print_info(text, self._file, redirect=self._qflag)
30 | if self._proc_logging(path):
31 | self._proc_update(path)
32 | else:
33 | text = f'No {self.desc[1]} to upgrade for executable {path!r}'
34 | print_info(text, self._file, redirect=self._qflag)
35 | self._proc_fixmissing(path)
36 | self._proc_cleanup()
37 |
38 | def _proc_logging(self, path):
39 | if self._packages:
40 | self._check_pkgs(path)
41 | self._did_you_mean()
42 | else:
43 | self._check_list(path)
44 | return self._check_confirm(path)
45 |
46 | @abc.abstractmethod
47 | def _check_pkgs(self, path):
48 | self._var__temp_pkgs = self._packages # pylint: disable=attribute-defined-outside-init
49 |
50 | @abc.abstractmethod
51 | def _check_list(self, path):
52 | self._var__temp_pkgs = set() # pylint: disable=attribute-defined-outside-init
53 |
54 | @abc.abstractmethod
55 | def _proc_update(self, path):
56 | pass
57 |
--------------------------------------------------------------------------------
/macdaily/core/system.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | import abc
4 | import shutil
5 | import sys
6 |
7 | from macdaily.cls.command import Command
8 | from macdaily.util.const.term import bold, flash, red, red_bg, reset
9 | from macdaily.util.tools.print import print_info, print_term
10 |
11 |
12 | class SystemCommand(Command):
13 |
14 | @property
15 | def mode(self):
16 | return 'system'
17 |
18 | @property
19 | def name(self):
20 | return 'macOS Software Update'
21 |
22 | @property
23 | def desc(self):
24 | return ('system software', 'system software')
25 |
26 | def _check_exec(self):
27 | self._var__exec_path = shutil.which('softwareupdate')
28 | flag = (self._var__exec_path is not None)
29 | if not flag:
30 | print(f'macdaily-{self.cmd}: {red_bg}{flash}system{reset}: command not found', file=sys.stderr)
31 | text = (f'macdaily-{self.cmd}: {red}system{reset}: '
32 | "you may add `softwareupdate' to PATH through the following command -- "
33 | f"""`{bold}echo 'export PATH="/usr/sbin:$PATH"' >> ~/.bash_profile{reset}'""")
34 | print_term(text, self._file, redirect=self._qflag)
35 | return flag
36 |
37 | def _loc_exec(self):
38 | self._exec = {self._var__exec_path}
39 | del self._var__exec_path
40 |
41 | @abc.abstractmethod
42 | def _check_list(self, path):
43 | self._var__rcmd_pkgs = set() # pylint: disable=attribute-defined-outside-init
44 | self._var__norm_pkgs = set() # pylint: disable=attribute-defined-outside-init
45 |
46 | def _check_pkgs(self, path):
47 | self._check_list(path)
48 | text = 'Checking existence of specified packages'
49 | print_info(text, self._file, redirect=self._vflag)
50 |
51 | _rcmd_pkgs = list()
52 | _norm_pkgs = list()
53 | _lost_pkgs = list()
54 | for package in self._packages:
55 | if package in self._var__rcmd_pkgs:
56 | _rcmd_pkgs.append(package)
57 | elif package in self._var__norm_pkgs:
58 | _norm_pkgs.append(package)
59 | else:
60 | _lost_pkgs.append(package)
61 | self._lost.extend(_lost_pkgs)
62 |
63 | self._var__real_pkgs = self._var__rcmd_pkgs | self._var__norm_pkgs # pylint: disable=attribute-defined-outside-init
64 | self._var__lost_pkgs = set(_lost_pkgs) # pylint: disable=attribute-defined-outside-init
65 | self._var__rcmd_pkgs = set(_rcmd_pkgs) # pylint: disable=attribute-defined-outside-init
66 | self._var__norm_pkgs = set(_norm_pkgs) # pylint: disable=attribute-defined-outside-init
67 | self._var__temp_pkgs = self._var__rcmd_pkgs | self._var__norm_pkgs # pylint: disable=attribute-defined-outside-init
68 |
--------------------------------------------------------------------------------
/macdaily/img/askpass.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JarryShaw/MacDaily/9bd69fd710c4b00553507b62798532431104abab/macdaily/img/askpass.icns
--------------------------------------------------------------------------------
/macdaily/img/confirm.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JarryShaw/MacDaily/9bd69fd710c4b00553507b62798532431104abab/macdaily/img/confirm.icns
--------------------------------------------------------------------------------
/macdaily/man/macdaily-cleanup-brew.8:
--------------------------------------------------------------------------------
1 | .\" Man page generated from reStructuredText.
2 | .
3 | .TH MACDAILY-CLEANUP-BREW 8 "August 07, 2019" "v2019.8.4" ""
4 | .SH NAME
5 | macdaily-cleanup-brew \- Homebrew Formula Cache Cleanup
6 | .
7 | .nr rst2man-indent-level 0
8 | .
9 | .de1 rstReportMargin
10 | \\$1 \\n[an-margin]
11 | level \\n[rst2man-indent-level]
12 | level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
13 | -
14 | \\n[rst2man-indent0]
15 | \\n[rst2man-indent1]
16 | \\n[rst2man-indent2]
17 | ..
18 | .de1 INDENT
19 | .\" .rstReportMargin pre:
20 | . RS \\$1
21 | . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
22 | . nr rst2man-indent-level +1
23 | .\" .rstReportMargin post:
24 | ..
25 | .de UNINDENT
26 | . RE
27 | .\" indent \\n[an-margin]
28 | .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
29 | .nr rst2man-indent-level -1
30 | .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
31 | .in \\n[rst2man-indent\\n[rst2man-indent-level]]u
32 | ..
33 | .SH SYNOPSIS
34 | .sp
35 | macdaily \fBcleanup\fP \fIbrew\fP [\fIoptions\fP] ...
36 | .sp
37 | aliases: \fBhomebrew\fP
38 | .SH OPTIONS
39 | .SS optional arguments
40 | .INDENT 0.0
41 | .TP
42 | .B \-h\fP,\fB \-\-help
43 | show this help message and exit
44 | .TP
45 | .B \-V\fP,\fB \-\-version
46 | show program\(aqs version number and exit
47 | .UNINDENT
48 | .SS general arguments
49 | .INDENT 0.0
50 | .TP
51 | .B \-q\fP,\fB \-\-quiet
52 | run in quiet mode, with no output information
53 | .TP
54 | .B \-v\fP,\fB \-\-verbose
55 | run in verbose mode, with detailed output information
56 | .UNINDENT
57 | .SH SEE ALSO
58 | .INDENT 0.0
59 | .IP \(bu 2
60 | \fBbrew(1)\fP
61 | .IP \(bu 2
62 | \fBmacdaily\-cleanup\fP
63 | .IP \(bu 2
64 | \fBmacdaily\-cleanup\-cask\fP
65 | .IP \(bu 2
66 | \fBmacdaily\-cleanup\-npm\fP
67 | .IP \(bu 2
68 | \fBmacdaily\-cleanup\-pip\fP
69 | .UNINDENT
70 | .SH AUTHOR
71 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
72 | of MacDaily. Please contact me at jarryshaw@icloud.com.
73 | .SH COPYRIGHT
74 | MacDaily is licensed under the Apple Open Source License.
75 | .\" Generated by docutils manpage writer.
76 | .
77 |
--------------------------------------------------------------------------------
/macdaily/man/macdaily-cleanup-cask.8:
--------------------------------------------------------------------------------
1 | .\" Man page generated from reStructuredText.
2 | .
3 | .TH MACDAILY-CLEANUP-CASK 8 "August 07, 2019" "v2019.8.4" ""
4 | .SH NAME
5 | macdaily-cleanup-cask \- Homebrew Cask Cache Cleanup
6 | .
7 | .nr rst2man-indent-level 0
8 | .
9 | .de1 rstReportMargin
10 | \\$1 \\n[an-margin]
11 | level \\n[rst2man-indent-level]
12 | level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
13 | -
14 | \\n[rst2man-indent0]
15 | \\n[rst2man-indent1]
16 | \\n[rst2man-indent2]
17 | ..
18 | .de1 INDENT
19 | .\" .rstReportMargin pre:
20 | . RS \\$1
21 | . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
22 | . nr rst2man-indent-level +1
23 | .\" .rstReportMargin post:
24 | ..
25 | .de UNINDENT
26 | . RE
27 | .\" indent \\n[an-margin]
28 | .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
29 | .nr rst2man-indent-level -1
30 | .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
31 | .in \\n[rst2man-indent\\n[rst2man-indent-level]]u
32 | ..
33 | .SH SYNOPSIS
34 | .sp
35 | macdaily \fBcleanup\fP \fIcask\fP [\fIoptions\fP] ...
36 | .sp
37 | aliases: \fBbrew\-cask\fP, \fBcaskroom\fP
38 | .SH OPTIONS
39 | .SS optional arguments
40 | .INDENT 0.0
41 | .TP
42 | .B \-h\fP,\fB \-\-help
43 | show this help message and exit
44 | .TP
45 | .B \-V\fP,\fB \-\-version
46 | show program\(aqs version number and exit
47 | .UNINDENT
48 | .SS general arguments
49 | .INDENT 0.0
50 | .TP
51 | .B \-q\fP,\fB \-\-quiet
52 | run in quiet mode, with no output information
53 | .TP
54 | .B \-v\fP,\fB \-\-verbose
55 | run in verbose mode, with detailed output information
56 | .UNINDENT
57 | .SH SEE ALSO
58 | .INDENT 0.0
59 | .IP \(bu 2
60 | \fBbrew\-cask(1)\fP
61 | .IP \(bu 2
62 | \fBmacdaily\-cleanup\fP
63 | .IP \(bu 2
64 | \fBmacdaily\-cleanup\-brew\fP
65 | .IP \(bu 2
66 | \fBmacdaily\-cleanup\-npm\fP
67 | .IP \(bu 2
68 | \fBmacdaily\-cleanup\-pip\fP
69 | .UNINDENT
70 | .SH AUTHOR
71 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
72 | of MacDaily. Please contact me at jarryshaw@icloud.com.
73 | .SH COPYRIGHT
74 | MacDaily is licensed under the Apple Open Source License.
75 | .\" Generated by docutils manpage writer.
76 | .
77 |
--------------------------------------------------------------------------------
/macdaily/man/macdaily-cleanup-npm.8:
--------------------------------------------------------------------------------
1 | .\" Man page generated from reStructuredText.
2 | .
3 | .TH MACDAILY-CLEANUP-NPM 8 "August 07, 2019" "v2019.8.4" ""
4 | .SH NAME
5 | macdaily-cleanup-npm \- Node.js Module Cache Cleanup
6 | .
7 | .nr rst2man-indent-level 0
8 | .
9 | .de1 rstReportMargin
10 | \\$1 \\n[an-margin]
11 | level \\n[rst2man-indent-level]
12 | level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
13 | -
14 | \\n[rst2man-indent0]
15 | \\n[rst2man-indent1]
16 | \\n[rst2man-indent2]
17 | ..
18 | .de1 INDENT
19 | .\" .rstReportMargin pre:
20 | . RS \\$1
21 | . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
22 | . nr rst2man-indent-level +1
23 | .\" .rstReportMargin post:
24 | ..
25 | .de UNINDENT
26 | . RE
27 | .\" indent \\n[an-margin]
28 | .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
29 | .nr rst2man-indent-level -1
30 | .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
31 | .in \\n[rst2man-indent\\n[rst2man-indent-level]]u
32 | ..
33 | .SH SYNOPSIS
34 | .sp
35 | macdaily \fBcleanup\fP \fInpm\fP [\fIoptions\fP] ...
36 | .sp
37 | aliases: \fBnode\fP, \fBnode.js\fP
38 | .SH OPTIONS
39 | .SS optional arguments
40 | .INDENT 0.0
41 | .TP
42 | .B \-h\fP,\fB \-\-help
43 | show this help message and exit
44 | .TP
45 | .B \-V\fP,\fB \-\-version
46 | show program\(aqs version number and exit
47 | .UNINDENT
48 | .SS general arguments
49 | .INDENT 0.0
50 | .TP
51 | .B \-q\fP,\fB \-\-quiet
52 | run in quiet mode, with no output information
53 | .TP
54 | .B \-v\fP,\fB \-\-verbose
55 | run in verbose mode, with detailed output information
56 | .UNINDENT
57 | .SH SEE ALSO
58 | .INDENT 0.0
59 | .IP \(bu 2
60 | \fBnpm(1)\fP
61 | .IP \(bu 2
62 | \fBmacdaily\-cleanup\fP
63 | .IP \(bu 2
64 | \fBmacdaily\-cleanup\-brew\fP
65 | .IP \(bu 2
66 | \fBmacdaily\-cleanup\-cask\fP
67 | .IP \(bu 2
68 | \fBmacdaily\-cleanup\-pip\fP
69 | .UNINDENT
70 | .SH AUTHOR
71 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
72 | of MacDaily. Please contact me at jarryshaw@icloud.com.
73 | .SH COPYRIGHT
74 | MacDaily is licensed under the Apple Open Source License.
75 | .\" Generated by docutils manpage writer.
76 | .
77 |
--------------------------------------------------------------------------------
/macdaily/man/macdaily-cleanup-pip.8:
--------------------------------------------------------------------------------
1 | .\" Man page generated from reStructuredText.
2 | .
3 | .TH MACDAILY-CLEANUP-PIP 8 "August 07, 2019" "v2019.8.4" ""
4 | .SH NAME
5 | macdaily-cleanup-pip \- Python Package Cache Cleanup
6 | .
7 | .nr rst2man-indent-level 0
8 | .
9 | .de1 rstReportMargin
10 | \\$1 \\n[an-margin]
11 | level \\n[rst2man-indent-level]
12 | level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
13 | -
14 | \\n[rst2man-indent0]
15 | \\n[rst2man-indent1]
16 | \\n[rst2man-indent2]
17 | ..
18 | .de1 INDENT
19 | .\" .rstReportMargin pre:
20 | . RS \\$1
21 | . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
22 | . nr rst2man-indent-level +1
23 | .\" .rstReportMargin post:
24 | ..
25 | .de UNINDENT
26 | . RE
27 | .\" indent \\n[an-margin]
28 | .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
29 | .nr rst2man-indent-level -1
30 | .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
31 | .in \\n[rst2man-indent\\n[rst2man-indent-level]]u
32 | ..
33 | .SH SYNOPSIS
34 | .sp
35 | macdaily \fBcleanup\fP \fIpip\fP [\fIoptions\fP] ...
36 | .sp
37 | aliases: \fBcpython\fP, \fBpypy\fP, \fBpython\fP
38 | .SH OPTIONS
39 | .SS optional arguments
40 | .INDENT 0.0
41 | .TP
42 | .B \-h\fP,\fB \-\-help
43 | show this help message and exit
44 | .TP
45 | .B \-V\fP,\fB \-\-version
46 | show program\(aqs version number and exit
47 | .UNINDENT
48 | .SS specification arguments
49 | .INDENT 0.0
50 | .TP
51 | .B \-b\fP,\fB \-\-brew
52 | cleanup caches of Python installed from Homebrew
53 | .TP
54 | .B \-c\fP,\fB \-\-cpython
55 | cleanup caches of CPython implementation
56 | .UNINDENT
57 | .INDENT 0.0
58 | .TP
59 | .B \-e \fIVER\fP [\fIVER\fP ...], \-\-python \fIVER\fP [\fIVER\fP ...]
60 | indicate packages from which version of Python will
61 | cleanup
62 | .UNINDENT
63 | .INDENT 0.0
64 | .TP
65 | .B \-r\fP,\fB \-\-pypy
66 | cleanup caches of PyPy implementation
67 | .TP
68 | .B \-s\fP,\fB \-\-system
69 | cleanup caches of Python provided by macOS system
70 | .UNINDENT
71 | .SS general arguments
72 | .INDENT 0.0
73 | .TP
74 | .B \-q\fP,\fB \-\-quiet
75 | run in quiet mode, with no output information
76 | .TP
77 | .B \-v\fP,\fB \-\-verbose
78 | run in verbose mode, with detailed output information
79 | .UNINDENT
80 | .SH SEE ALSO
81 | .INDENT 0.0
82 | .IP \(bu 2
83 | \fBmacdaily\-cleanup\fP
84 | .IP \(bu 2
85 | \fBmacdaily\-cleanup\-brew\fP
86 | .IP \(bu 2
87 | \fBmacdaily\-cleanup\-cask\fP
88 | .IP \(bu 2
89 | \fBmacdaily\-cleanup\-npm\fP
90 | .UNINDENT
91 | .SH AUTHOR
92 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
93 | of MacDaily. Please contact me at jarryshaw@icloud.com.
94 | .SH COPYRIGHT
95 | MacDaily is licensed under the Apple Open Source License.
96 | .\" Generated by docutils manpage writer.
97 | .
98 |
--------------------------------------------------------------------------------
/macdaily/man/macdaily-help.8:
--------------------------------------------------------------------------------
1 | .\" Man page generated from reStructuredText.
2 | .
3 | .TH MACDAILY-HELP 8 "August 07, 2019" "v2019.8.4" ""
4 | .SH NAME
5 | macdaily-help \- MacDaily Usage Information Manual
6 | .
7 | .nr rst2man-indent-level 0
8 | .
9 | .de1 rstReportMargin
10 | \\$1 \\n[an-margin]
11 | level \\n[rst2man-indent-level]
12 | level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
13 | -
14 | \\n[rst2man-indent0]
15 | \\n[rst2man-indent1]
16 | \\n[rst2man-indent2]
17 | ..
18 | .de1 INDENT
19 | .\" .rstReportMargin pre:
20 | . RS \\$1
21 | . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
22 | . nr rst2man-indent-level +1
23 | .\" .rstReportMargin post:
24 | ..
25 | .de UNINDENT
26 | . RE
27 | .\" indent \\n[an-margin]
28 | .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
29 | .nr rst2man-indent-level -1
30 | .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
31 | .in \\n[rst2man-indent\\n[rst2man-indent-level]]u
32 | ..
33 | .SH SYNOPSIS
34 | .sp
35 | macdaily \fBhelp\fP [\fIoptions\fP] <\fIcmd\-selection\fP> ...
36 | .sp
37 | aliases: \fBdoc\fP, \fBman\fP
38 | .SH DESCRIPTION
39 | .sp
40 | \fIMacDaily\fP provides a collection of revised manuals to help users dig into.
41 | \fIMacDaily\fP \fBhelp\fP command will lead you to these man pages, which are
42 | generated by \fIrst2man.py\fP from \fIdocutils\fP and displayed with \fBman(1)\fP\&.
43 | .SH OPTIONS
44 | .SS optional arguments
45 | .INDENT 0.0
46 | .TP
47 | .B \-h\fP,\fB \-\-help
48 | show this help message and exit
49 | .TP
50 | .B \-V\fP,\fB \-\-version
51 | show program\(aqs version number and exit
52 | .UNINDENT
53 | .SS specification arguments
54 | .INDENT 0.0
55 | .TP
56 | .B CMD
57 | display manual information about such command
58 | .UNINDENT
59 | .SH SEE ALSO
60 | .INDENT 0.0
61 | .IP \(bu 2
62 | \fBman(1)\fP
63 | .IP \(bu 2
64 | \fBmdoc(7)\fP
65 | .UNINDENT
66 | .SH AUTHOR
67 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
68 | of MacDaily. Please contact me at jarryshaw@icloud.com.
69 | .SH COPYRIGHT
70 | MacDaily is licensed under the Apple Open Source License.
71 | .\" Generated by docutils manpage writer.
72 | .
73 |
--------------------------------------------------------------------------------
/macdaily/man/macdaily-install-apm.8:
--------------------------------------------------------------------------------
1 | .\" Man page generated from reStructuredText.
2 | .
3 | .TH MACDAILY-INSTALL-APM 8 "August 07, 2019" "v2019.8.4" ""
4 | .SH NAME
5 | macdaily-install-apm \- Atom Plug-In Automated Installer
6 | .
7 | .nr rst2man-indent-level 0
8 | .
9 | .de1 rstReportMargin
10 | \\$1 \\n[an-margin]
11 | level \\n[rst2man-indent-level]
12 | level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
13 | -
14 | \\n[rst2man-indent0]
15 | \\n[rst2man-indent1]
16 | \\n[rst2man-indent2]
17 | ..
18 | .de1 INDENT
19 | .\" .rstReportMargin pre:
20 | . RS \\$1
21 | . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
22 | . nr rst2man-indent-level +1
23 | .\" .rstReportMargin post:
24 | ..
25 | .de UNINDENT
26 | . RE
27 | .\" indent \\n[an-margin]
28 | .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
29 | .nr rst2man-indent-level -1
30 | .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
31 | .in \\n[rst2man-indent\\n[rst2man-indent-level]]u
32 | ..
33 | .SH SYNOPSIS
34 | .sp
35 | macdaily \fBinstall\fP \fIapm\fP [\fIoptions\fP] <\fIplug\-ins\fP> ...
36 | .sp
37 | aliases: \fBatom\fP
38 | .SH OPTIONS
39 | .SS optional arguments
40 | .INDENT 0.0
41 | .TP
42 | .B \-h\fP,\fB \-\-help
43 | show this help message and exit
44 | .TP
45 | .B \-V\fP,\fB \-\-version
46 | show program\(aqs version number and exit
47 | .UNINDENT
48 | .SS specification arguments
49 | .INDENT 0.0
50 | .TP
51 | .B \-b\fP,\fB \-\-beta
52 | install Atom Beta plug\-ins
53 | .UNINDENT
54 | .INDENT 0.0
55 | .TP
56 | .B \-p \fIPI\fP [\fIPI\fP ...], \-\-packages \fIPI\fP [\fIPI\fP ...]
57 | name of Atom plug\-ins to install
58 | .UNINDENT
59 | .SS general arguments
60 | .INDENT 0.0
61 | .TP
62 | .B \-q\fP,\fB \-\-quiet
63 | run in quiet mode, with no output information
64 | .TP
65 | .B \-v\fP,\fB \-\-verbose
66 | run in verbose mode, with detailed output information
67 | .TP
68 | .B \-y\fP,\fB \-\-yes
69 | yes for all selections
70 | .UNINDENT
71 | .SS miscellaneous arguments
72 | .INDENT 0.0
73 | .TP
74 | .B \-I \fIARG\fP, \-\-install \fIARG\fP
75 | options for \fBapm install \fP command
76 | .UNINDENT
77 | .SH SEE ALSO
78 | .INDENT 0.0
79 | .IP \(bu 2
80 | \fBmacdaily\-install\fP
81 | .IP \(bu 2
82 | \fBmacdaily\-install\-brew\fP
83 | .IP \(bu 2
84 | \fBmacdaily\-install\-cask\fP
85 | .IP \(bu 2
86 | \fBmacdaily\-install\-gem\fP
87 | .IP \(bu 2
88 | \fBmacdaily\-install\-mas\fP
89 | .IP \(bu 2
90 | \fBmacdaily\-install\-npm\fP
91 | .IP \(bu 2
92 | \fBmacdaily\-install\-pip\fP
93 | .IP \(bu 2
94 | \fBmacdaily\-install\-system\fP
95 | .UNINDENT
96 | .SH AUTHOR
97 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
98 | of MacDaily. Please contact me at jarryshaw@icloud.com.
99 | .SH COPYRIGHT
100 | MacDaily is licensed under the Apple Open Source License.
101 | .\" Generated by docutils manpage writer.
102 | .
103 |
--------------------------------------------------------------------------------
/macdaily/man/macdaily-install-brew.8:
--------------------------------------------------------------------------------
1 | .\" Man page generated from reStructuredText.
2 | .
3 | .TH MACDAILY-INSTALL-BREW 8 "August 07, 2019" "v2019.8.4" ""
4 | .SH NAME
5 | macdaily-install-brew \- Homebrew Formula Automated Installer
6 | .
7 | .nr rst2man-indent-level 0
8 | .
9 | .de1 rstReportMargin
10 | \\$1 \\n[an-margin]
11 | level \\n[rst2man-indent-level]
12 | level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
13 | -
14 | \\n[rst2man-indent0]
15 | \\n[rst2man-indent1]
16 | \\n[rst2man-indent2]
17 | ..
18 | .de1 INDENT
19 | .\" .rstReportMargin pre:
20 | . RS \\$1
21 | . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
22 | . nr rst2man-indent-level +1
23 | .\" .rstReportMargin post:
24 | ..
25 | .de UNINDENT
26 | . RE
27 | .\" indent \\n[an-margin]
28 | .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
29 | .nr rst2man-indent-level -1
30 | .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
31 | .in \\n[rst2man-indent\\n[rst2man-indent-level]]u
32 | ..
33 | .SH SYNOPSIS
34 | .sp
35 | macdaily \fBinstall\fP \fIbrew\fP [\fIoptions\fP] <\fIformulae\fP> ...
36 | .sp
37 | aliases: \fBhomebrew\fP
38 | .SH OPTIONS
39 | .SS optional arguments
40 | .INDENT 0.0
41 | .TP
42 | .B \-h\fP,\fB \-\-help
43 | show this help message and exit
44 | .TP
45 | .B \-V\fP,\fB \-\-version
46 | show program\(aqs version number and exit
47 | .UNINDENT
48 | .SS specification arguments
49 | .INDENT 0.0
50 | .TP
51 | .B \-p \fIFORM\fP [\fIFORM\fP ...], \-\-packages \fIFORM\fP [\fIFORM\fP ...]
52 | name of Homebrew formulae to install
53 | .UNINDENT
54 | .SS general arguments
55 | .INDENT 0.0
56 | .TP
57 | .B \-q\fP,\fB \-\-quiet
58 | run in quiet mode, with no output information
59 | .TP
60 | .B \-v\fP,\fB \-\-verbose
61 | run in verbose mode, with detailed output information
62 | .TP
63 | .B \-y\fP,\fB \-\-yes
64 | yes for all selections
65 | .TP
66 | .B \-n\fP,\fB \-\-no\-cleanup
67 | do not run cleanup process
68 | .UNINDENT
69 | .SS miscellaneous arguments
70 | .INDENT 0.0
71 | .TP
72 | .B \-I \fIARG\fP, \-\-install \fIARG\fP
73 | options for \fBbrew install \fP command
74 | .UNINDENT
75 | .SH SEE ALSO
76 | .INDENT 0.0
77 | .IP \(bu 2
78 | \fBbrew(1)\fP
79 | .IP \(bu 2
80 | \fBmacdaily\-install\fP
81 | .IP \(bu 2
82 | \fBmacdaily\-install\-apm\fP
83 | .IP \(bu 2
84 | \fBmacdaily\-install\-cask\fP
85 | .IP \(bu 2
86 | \fBmacdaily\-install\-gem\fP
87 | .IP \(bu 2
88 | \fBmacdaily\-install\-mas\fP
89 | .IP \(bu 2
90 | \fBmacdaily\-install\-npm\fP
91 | .IP \(bu 2
92 | \fBmacdaily\-install\-pip\fP
93 | .IP \(bu 2
94 | \fBmacdaily\-install\-system\fP
95 | .UNINDENT
96 | .SH AUTHOR
97 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
98 | of MacDaily. Please contact me at jarryshaw@icloud.com.
99 | .SH COPYRIGHT
100 | MacDaily is licensed under the Apple Open Source License.
101 | .\" Generated by docutils manpage writer.
102 | .
103 |
--------------------------------------------------------------------------------
/macdaily/man/macdaily-install-cask.8:
--------------------------------------------------------------------------------
1 | .\" Man page generated from reStructuredText.
2 | .
3 | .TH MACDAILY-INSTALL-CASK 8 "August 07, 2019" "v2019.8.4" ""
4 | .SH NAME
5 | macdaily-install-cask \- Homebrew Cask Automated Installer
6 | .
7 | .nr rst2man-indent-level 0
8 | .
9 | .de1 rstReportMargin
10 | \\$1 \\n[an-margin]
11 | level \\n[rst2man-indent-level]
12 | level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
13 | -
14 | \\n[rst2man-indent0]
15 | \\n[rst2man-indent1]
16 | \\n[rst2man-indent2]
17 | ..
18 | .de1 INDENT
19 | .\" .rstReportMargin pre:
20 | . RS \\$1
21 | . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
22 | . nr rst2man-indent-level +1
23 | .\" .rstReportMargin post:
24 | ..
25 | .de UNINDENT
26 | . RE
27 | .\" indent \\n[an-margin]
28 | .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
29 | .nr rst2man-indent-level -1
30 | .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
31 | .in \\n[rst2man-indent\\n[rst2man-indent-level]]u
32 | ..
33 | .SH SYNOPSIS
34 | .sp
35 | macdaily \fBinstall\fP \fIcask\fP [\fIoptions\fP] <\fIcasks\fP> ...
36 | .sp
37 | aliases: \fBbrew\-cask\fP, \fBcaskroom\fP
38 | .SH OPTIONS
39 | .SS optional arguments
40 | .INDENT 0.0
41 | .TP
42 | .B \-h\fP,\fB \-\-help
43 | show this help message and exit
44 | .TP
45 | .B \-V\fP,\fB \-\-version
46 | show program\(aqs version number and exit
47 | .UNINDENT
48 | .SS specification arguments
49 | .INDENT 0.0
50 | .TP
51 | .B \-p \fICASK\fP [\fICASK\fP ...], \-\-packages \fICASK\fP [\fICASK\fP ...]
52 | name of Caskroom binaries to install
53 | .UNINDENT
54 | .SS general arguments
55 | .INDENT 0.0
56 | .TP
57 | .B \-q\fP,\fB \-\-quiet
58 | run in quiet mode, with no output information
59 | .TP
60 | .B \-v\fP,\fB \-\-verbose
61 | run in verbose mode, with detailed output information
62 | .TP
63 | .B \-y\fP,\fB \-\-yes
64 | yes for all selections
65 | .TP
66 | .B \-n\fP,\fB \-\-no\-cleanup
67 | do not run cleanup process
68 | .UNINDENT
69 | .SS miscellaneous arguments
70 | .INDENT 0.0
71 | .TP
72 | .B \-I \fIARG\fP, \-\-install \fIARG\fP
73 | options for \fBbrew cask install \fP command
74 | .UNINDENT
75 | .SH SEE ALSO
76 | .INDENT 0.0
77 | .IP \(bu 2
78 | \fBbrew\-cask(1)\fP
79 | .IP \(bu 2
80 | \fBmacdaily\-install\fP
81 | .IP \(bu 2
82 | \fBmacdaily\-install\-apm\fP
83 | .IP \(bu 2
84 | \fBmacdaily\-install\-brew\fP
85 | .IP \(bu 2
86 | \fBmacdaily\-install\-gem\fP
87 | .IP \(bu 2
88 | \fBmacdaily\-install\-mas\fP
89 | .IP \(bu 2
90 | \fBmacdaily\-install\-npm\fP
91 | .IP \(bu 2
92 | \fBmacdaily\-install\-pip\fP
93 | .IP \(bu 2
94 | \fBmacdaily\-install\-system\fP
95 | .UNINDENT
96 | .SH AUTHOR
97 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
98 | of MacDaily. Please contact me at jarryshaw@icloud.com.
99 | .SH COPYRIGHT
100 | MacDaily is licensed under the Apple Open Source License.
101 | .\" Generated by docutils manpage writer.
102 | .
103 |
--------------------------------------------------------------------------------
/macdaily/man/macdaily-install-gem.8:
--------------------------------------------------------------------------------
1 | .\" Man page generated from reStructuredText.
2 | .
3 | .TH MACDAILY-INSTALL-GEM 8 "August 07, 2019" "v2019.8.4" ""
4 | .SH NAME
5 | macdaily-install-gem \- Ruby Gem Automated Installer
6 | .
7 | .nr rst2man-indent-level 0
8 | .
9 | .de1 rstReportMargin
10 | \\$1 \\n[an-margin]
11 | level \\n[rst2man-indent-level]
12 | level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
13 | -
14 | \\n[rst2man-indent0]
15 | \\n[rst2man-indent1]
16 | \\n[rst2man-indent2]
17 | ..
18 | .de1 INDENT
19 | .\" .rstReportMargin pre:
20 | . RS \\$1
21 | . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
22 | . nr rst2man-indent-level +1
23 | .\" .rstReportMargin post:
24 | ..
25 | .de UNINDENT
26 | . RE
27 | .\" indent \\n[an-margin]
28 | .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
29 | .nr rst2man-indent-level -1
30 | .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
31 | .in \\n[rst2man-indent\\n[rst2man-indent-level]]u
32 | ..
33 | .SH SYNOPSIS
34 | .sp
35 | macdaily \fBinstall\fP \fIgem\fP [\fIoptions\fP] <\fIgems\fP> ...
36 | .sp
37 | aliases: \fBruby\fP, \fBrubygems\fP
38 | .SH OPTIONS
39 | .SS optional arguments
40 | .INDENT 0.0
41 | .TP
42 | .B \-h\fP,\fB \-\-help
43 | show this help message and exit
44 | .TP
45 | .B \-V\fP,\fB \-\-version
46 | show program\(aqs version number and exit
47 | .UNINDENT
48 | .SS specification arguments
49 | .INDENT 0.0
50 | .TP
51 | .B \-b\fP,\fB \-\-brew
52 | install gems by Ruby installed from Homebrew
53 | .TP
54 | .B \-s\fP,\fB \-\-system
55 | install gems by Ruby provided by macOS system
56 | .UNINDENT
57 | .INDENT 0.0
58 | .TP
59 | .B \-p \fIGEM\fP [\fIGEM\fP ...], \-\-packages \fIGEM\fP [\fIGEM\fP ...]
60 | name of Ruby gems to install
61 | .UNINDENT
62 | .SS general arguments
63 | .INDENT 0.0
64 | .TP
65 | .B \-q\fP,\fB \-\-quiet
66 | run in quiet mode, with no output information
67 | .TP
68 | .B \-v\fP,\fB \-\-verbose
69 | run in verbose mode, with detailed output information
70 | .TP
71 | .B \-y\fP,\fB \-\-yes
72 | yes for all selections
73 | .UNINDENT
74 | .SS miscellaneous arguments
75 | .INDENT 0.0
76 | .TP
77 | .B \-I \fIARG\fP, \-\-install \fIARG\fP
78 | options for \fBgem install \fP command
79 | .UNINDENT
80 | .SH SEE ALSO
81 | .INDENT 0.0
82 | .IP \(bu 2
83 | \fBgem(1)\fP
84 | .IP \(bu 2
85 | \fBmacdaily\-install\fP
86 | .IP \(bu 2
87 | \fBmacdaily\-install\-apm\fP
88 | .IP \(bu 2
89 | \fBmacdaily\-install\-brew\fP
90 | .IP \(bu 2
91 | \fBmacdaily\-install\-cask\fP
92 | .IP \(bu 2
93 | \fBmacdaily\-install\-mas\fP
94 | .IP \(bu 2
95 | \fBmacdaily\-install\-npm\fP
96 | .IP \(bu 2
97 | \fBmacdaily\-install\-pip\fP
98 | .IP \(bu 2
99 | \fBmacdaily\-install\-system\fP
100 | .UNINDENT
101 | .SH AUTHOR
102 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
103 | of MacDaily. Please contact me at jarryshaw@icloud.com.
104 | .SH COPYRIGHT
105 | MacDaily is licensed under the Apple Open Source License.
106 | .\" Generated by docutils manpage writer.
107 | .
108 |
--------------------------------------------------------------------------------
/macdaily/man/macdaily-install-mas.8:
--------------------------------------------------------------------------------
1 | .\" Man page generated from reStructuredText.
2 | .
3 | .TH MACDAILY-INSTALL-MAS 8 "August 07, 2019" "v2019.8.4" ""
4 | .SH NAME
5 | macdaily-install-mas \- macOS Application Automated Installer
6 | .
7 | .nr rst2man-indent-level 0
8 | .
9 | .de1 rstReportMargin
10 | \\$1 \\n[an-margin]
11 | level \\n[rst2man-indent-level]
12 | level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
13 | -
14 | \\n[rst2man-indent0]
15 | \\n[rst2man-indent1]
16 | \\n[rst2man-indent2]
17 | ..
18 | .de1 INDENT
19 | .\" .rstReportMargin pre:
20 | . RS \\$1
21 | . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
22 | . nr rst2man-indent-level +1
23 | .\" .rstReportMargin post:
24 | ..
25 | .de UNINDENT
26 | . RE
27 | .\" indent \\n[an-margin]
28 | .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
29 | .nr rst2man-indent-level -1
30 | .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
31 | .in \\n[rst2man-indent\\n[rst2man-indent-level]]u
32 | ..
33 | .SH SYNOPSIS
34 | .sp
35 | macdaily \fBinstall\fP \fImas\fP [\fIoptions\fP] <\fIapplications\fP> ...
36 | .sp
37 | aliases: \fBapp\-store\fP, \fBappstore\fP, \fBmac\fP, \fBmac\-app\-store\fP
38 | .SH OPTIONS
39 | .SS optional arguments
40 | .INDENT 0.0
41 | .TP
42 | .B \-h\fP,\fB \-\-help
43 | show this help message and exit
44 | .TP
45 | .B \-V\fP,\fB \-\-version
46 | show program\(aqs version number and exit
47 | .UNINDENT
48 | .SS specification arguments
49 | .INDENT 0.0
50 | .TP
51 | .B \-f\fP,\fB \-\-force
52 | force reinstall
53 | .UNINDENT
54 | .INDENT 0.0
55 | .TP
56 | .B \-p \fIAPP\fP [\fIAPP\fP ...], \-\-packages \fIAPP\fP [\fIAPP\fP ...]
57 | name of macOS applications to install
58 | .UNINDENT
59 | .SS general arguments
60 | .INDENT 0.0
61 | .TP
62 | .B \-q\fP,\fB \-\-quiet
63 | run in quiet mode, with no output information
64 | .TP
65 | .B \-v\fP,\fB \-\-verbose
66 | run in verbose mode, with detailed output information
67 | .TP
68 | .B \-y\fP,\fB \-\-yes
69 | yes for all selections
70 | .UNINDENT
71 | .SS miscellaneous arguments
72 | .INDENT 0.0
73 | .TP
74 | .B \-I \fIARG\fP, \-\-install \fIARG\fP
75 | options for \fBmas install|lucky \fP command
76 | .UNINDENT
77 | .SH SEE ALSO
78 | .INDENT 0.0
79 | .IP \(bu 2
80 | \fBmacdaily\-install\fP
81 | .IP \(bu 2
82 | \fBmacdaily\-install\-apm\fP
83 | .IP \(bu 2
84 | \fBmacdaily\-install\-brew\fP
85 | .IP \(bu 2
86 | \fBmacdaily\-install\-cask\fP
87 | .IP \(bu 2
88 | \fBmacdaily\-install\-gem\fP
89 | .IP \(bu 2
90 | \fBmacdaily\-install\-npm\fP
91 | .IP \(bu 2
92 | \fBmacdaily\-install\-pip\fP
93 | .IP \(bu 2
94 | \fBmacdaily\-install\-system\fP
95 | .UNINDENT
96 | .SH AUTHOR
97 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
98 | of MacDaily. Please contact me at jarryshaw@icloud.com.
99 | .SH COPYRIGHT
100 | MacDaily is licensed under the Apple Open Source License.
101 | .\" Generated by docutils manpage writer.
102 | .
103 |
--------------------------------------------------------------------------------
/macdaily/man/macdaily-install-npm.8:
--------------------------------------------------------------------------------
1 | .\" Man page generated from reStructuredText.
2 | .
3 | .TH MACDAILY-INSTALL-NPM 8 "August 07, 2019" "v2019.8.4" ""
4 | .SH NAME
5 | macdaily-install-npm \- Node.js Module Automated Installer
6 | .
7 | .nr rst2man-indent-level 0
8 | .
9 | .de1 rstReportMargin
10 | \\$1 \\n[an-margin]
11 | level \\n[rst2man-indent-level]
12 | level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
13 | -
14 | \\n[rst2man-indent0]
15 | \\n[rst2man-indent1]
16 | \\n[rst2man-indent2]
17 | ..
18 | .de1 INDENT
19 | .\" .rstReportMargin pre:
20 | . RS \\$1
21 | . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
22 | . nr rst2man-indent-level +1
23 | .\" .rstReportMargin post:
24 | ..
25 | .de UNINDENT
26 | . RE
27 | .\" indent \\n[an-margin]
28 | .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
29 | .nr rst2man-indent-level -1
30 | .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
31 | .in \\n[rst2man-indent\\n[rst2man-indent-level]]u
32 | ..
33 | .SH SYNOPSIS
34 | .sp
35 | macdaily \fBinstall\fP \fInpm\fP [\fIoptions\fP] <\fImodules\fP> ...
36 | .sp
37 | aliases: \fBnode\fP, \fBnode.js\fP
38 | .SH OPTIONS
39 | .SS optional arguments
40 | .INDENT 0.0
41 | .TP
42 | .B \-h\fP,\fB \-\-help
43 | show this help message and exit
44 | .TP
45 | .B \-V\fP,\fB \-\-version
46 | show program\(aqs version number and exit
47 | .UNINDENT
48 | .SS specification arguments
49 | .INDENT 0.0
50 | .TP
51 | .B \-p \fIMOD\fP [\fIMOD\fP ...], \-\-packages \fIMOD\fP [\fIMOD\fP ...]
52 | name of Node.js modules to install
53 | .UNINDENT
54 | .SS general arguments
55 | .INDENT 0.0
56 | .TP
57 | .B \-q\fP,\fB \-\-quiet
58 | run in quiet mode, with no output information
59 | .TP
60 | .B \-v\fP,\fB \-\-verbose
61 | run in verbose mode, with detailed output information
62 | .TP
63 | .B \-y\fP,\fB \-\-yes
64 | yes for all selections
65 | .TP
66 | .B \-n\fP,\fB \-\-no\-cleanup
67 | do not run cleanup process
68 | .UNINDENT
69 | .SS miscellaneous arguments
70 | .INDENT 0.0
71 | .TP
72 | .B \-I \fIARG\fP, \-\-install \fIARG\fP
73 | options for \fBnpm install \-\-global \fP command
74 | .UNINDENT
75 | .SH SEE ALSO
76 | .INDENT 0.0
77 | .IP \(bu 2
78 | \fBnpm(1)\fP
79 | .IP \(bu 2
80 | \fBmacdaily\-install\fP
81 | .IP \(bu 2
82 | \fBmacdaily\-install\-apm\fP
83 | .IP \(bu 2
84 | \fBmacdaily\-install\-brew\fP
85 | .IP \(bu 2
86 | \fBmacdaily\-install\-cask\fP
87 | .IP \(bu 2
88 | \fBmacdaily\-install\-gem\fP
89 | .IP \(bu 2
90 | \fBmacdaily\-install\-mas\fP
91 | .IP \(bu 2
92 | \fBmacdaily\-install\-pip\fP
93 | .IP \(bu 2
94 | \fBmacdaily\-install\-system\fP
95 | .UNINDENT
96 | .SH AUTHOR
97 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
98 | of MacDaily. Please contact me at jarryshaw@icloud.com.
99 | .SH COPYRIGHT
100 | MacDaily is licensed under the Apple Open Source License.
101 | .\" Generated by docutils manpage writer.
102 | .
103 |
--------------------------------------------------------------------------------
/macdaily/man/macdaily-install-system.8:
--------------------------------------------------------------------------------
1 | .\" Man page generated from reStructuredText.
2 | .
3 | .TH MACDAILY-INSTALL-SYSTEM 8 "August 07, 2019" "v2019.8.4" ""
4 | .SH NAME
5 | macdaily-install-system \- System Software Automated Installer
6 | .
7 | .nr rst2man-indent-level 0
8 | .
9 | .de1 rstReportMargin
10 | \\$1 \\n[an-margin]
11 | level \\n[rst2man-indent-level]
12 | level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
13 | -
14 | \\n[rst2man-indent0]
15 | \\n[rst2man-indent1]
16 | \\n[rst2man-indent2]
17 | ..
18 | .de1 INDENT
19 | .\" .rstReportMargin pre:
20 | . RS \\$1
21 | . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
22 | . nr rst2man-indent-level +1
23 | .\" .rstReportMargin post:
24 | ..
25 | .de UNINDENT
26 | . RE
27 | .\" indent \\n[an-margin]
28 | .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
29 | .nr rst2man-indent-level -1
30 | .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
31 | .in \\n[rst2man-indent\\n[rst2man-indent-level]]u
32 | ..
33 | .SH SYNOPSIS
34 | .sp
35 | macdaily \fBinstall\fP \fIsystem\fP [\fIoptions\fP] <\fIsoftware\fP> ...
36 | .sp
37 | aliases: \fBsoftware\fP, \fBsoftwareupdate\fP
38 | .SH OPTIONS
39 | .SS optional arguments
40 | .INDENT 0.0
41 | .TP
42 | .B \-h\fP,\fB \-\-help
43 | show this help message and exit
44 | .TP
45 | .B \-V\fP,\fB \-\-version
46 | show program\(aqs version number and exit
47 | .UNINDENT
48 | .SS specification arguments
49 | .INDENT 0.0
50 | .TP
51 | .B \-R\fP,\fB \-\-restart
52 | automatically restart (or shut down) if required to
53 | complete installation
54 | .UNINDENT
55 | .INDENT 0.0
56 | .TP
57 | .B \-p \fISW\fP [\fISW\fP ...], \-\-packages \fISW\fP [\fISW\fP ...]
58 | name of system software to install
59 | .UNINDENT
60 | .SS general arguments
61 | .INDENT 0.0
62 | .TP
63 | .B \-q\fP,\fB \-\-quiet
64 | run in quiet mode, with no output information
65 | .TP
66 | .B \-v\fP,\fB \-\-verbose
67 | run in verbose mode, with detailed output information
68 | .TP
69 | .B \-y\fP,\fB \-\-yes
70 | yes for all selections
71 | .UNINDENT
72 | .SS miscellaneous arguments
73 | .INDENT 0.0
74 | .TP
75 | .B \-I \fIARG\fP, \-\-install \fIARG\fP
76 | options for \fBsoftwareupdate \-\-install
77 | \fP command
78 | .UNINDENT
79 | .SH SEE ALSO
80 | .INDENT 0.0
81 | .IP \(bu 2
82 | \fBsoftwareupdate(8)\fP
83 | .IP \(bu 2
84 | \fBmacdaily\-install\fP
85 | .IP \(bu 2
86 | \fBmacdaily\-install\-apm\fP
87 | .IP \(bu 2
88 | \fBmacdaily\-install\-brew\fP
89 | .IP \(bu 2
90 | \fBmacdaily\-install\-gem\fP
91 | .IP \(bu 2
92 | \fBmacdaily\-install\-mas\fP
93 | .IP \(bu 2
94 | \fBmacdaily\-install\-npm\fP
95 | .IP \(bu 2
96 | \fBmacdaily\-install\-pip\fP
97 | .IP \(bu 2
98 | \fBmacdaily\-install\-system\fP
99 | .UNINDENT
100 | .SH AUTHOR
101 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
102 | of MacDaily. Please contact me at jarryshaw@icloud.com.
103 | .SH COPYRIGHT
104 | MacDaily is licensed under the Apple Open Source License.
105 | .\" Generated by docutils manpage writer.
106 | .
107 |
--------------------------------------------------------------------------------
/macdaily/man/macdaily-logging-apm.8:
--------------------------------------------------------------------------------
1 | .\" Man page generated from reStructuredText.
2 | .
3 | .TH MACDAILY-LOGGING-APM 8 "August 07, 2019" "v2019.8.4" ""
4 | .SH NAME
5 | macdaily-logging-apm \- Atom Plug-In Logging Automator
6 | .
7 | .nr rst2man-indent-level 0
8 | .
9 | .de1 rstReportMargin
10 | \\$1 \\n[an-margin]
11 | level \\n[rst2man-indent-level]
12 | level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
13 | -
14 | \\n[rst2man-indent0]
15 | \\n[rst2man-indent1]
16 | \\n[rst2man-indent2]
17 | ..
18 | .de1 INDENT
19 | .\" .rstReportMargin pre:
20 | . RS \\$1
21 | . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
22 | . nr rst2man-indent-level +1
23 | .\" .rstReportMargin post:
24 | ..
25 | .de UNINDENT
26 | . RE
27 | .\" indent \\n[an-margin]
28 | .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
29 | .nr rst2man-indent-level -1
30 | .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
31 | .in \\n[rst2man-indent\\n[rst2man-indent-level]]u
32 | ..
33 | .SH SYNOPSIS
34 | .sp
35 | macdaily \fBlogging\fP \fIapm\fP [\fIoptions\fP] ...
36 | .sp
37 | aliases: \fBatom\fP
38 | .SH OPTIONS
39 | .SS optional arguments
40 | .INDENT 0.0
41 | .TP
42 | .B \-h\fP,\fB \-\-help
43 | show this help message and exit
44 | .TP
45 | .B \-V\fP,\fB \-\-version
46 | show program\(aqs version number and exit
47 | .UNINDENT
48 | .SS specification arguments
49 | .INDENT 0.0
50 | .TP
51 | .B \-b\fP,\fB \-\-beta
52 | log Atom Beta plug\-ins
53 | .UNINDENT
54 | .SS general arguments
55 | .INDENT 0.0
56 | .TP
57 | .B \-q\fP,\fB \-\-quiet
58 | run in quiet mode, with no output information
59 | .TP
60 | .B \-v\fP,\fB \-\-verbose
61 | run in verbose mode, with detailed output information
62 | .TP
63 | .B \-n\fP,\fB \-\-no\-cleanup
64 | do not run cleanup process
65 | .TP
66 | .B \-l\fP,\fB \-\-show\-log
67 | open log in \fIConsole.app\fP upon completion of command
68 | .UNINDENT
69 | .SH SEE ALSO
70 | .INDENT 0.0
71 | .IP \(bu 2
72 | \fBmacdaily\-logging\fP
73 | .IP \(bu 2
74 | \fBmacdaily\-logging\-app\fP
75 | .IP \(bu 2
76 | \fBmacdaily\-logging\-brew\fP
77 | .IP \(bu 2
78 | \fBmacdaily\-logging\-cask\fP
79 | .IP \(bu 2
80 | \fBmacdaily\-logging\-gem\fP
81 | .IP \(bu 2
82 | \fBmacdaily\-logging\-mas\fP
83 | .IP \(bu 2
84 | \fBmacdaily\-logging\-npm\fP
85 | .IP \(bu 2
86 | \fBmacdaily\-logging\-pip\fP
87 | .IP \(bu 2
88 | \fBmacdaily\-logging\-tap\fP
89 | .UNINDENT
90 | .SH AUTHOR
91 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
92 | of MacDaily. Please contact me at jarryshaw@icloud.com.
93 | .SH COPYRIGHT
94 | MacDaily is licensed under the Apple Open Source License.
95 | .\" Generated by docutils manpage writer.
96 | .
97 |
--------------------------------------------------------------------------------
/macdaily/man/macdaily-logging-app.8:
--------------------------------------------------------------------------------
1 | .\" Man page generated from reStructuredText.
2 | .
3 | .TH MACDAILY-LOGGING-APP 8 "August 07, 2019" "v2019.8.4" ""
4 | .SH NAME
5 | macdaily-logging-app \- Mac Application Logging Automator
6 | .
7 | .nr rst2man-indent-level 0
8 | .
9 | .de1 rstReportMargin
10 | \\$1 \\n[an-margin]
11 | level \\n[rst2man-indent-level]
12 | level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
13 | -
14 | \\n[rst2man-indent0]
15 | \\n[rst2man-indent1]
16 | \\n[rst2man-indent2]
17 | ..
18 | .de1 INDENT
19 | .\" .rstReportMargin pre:
20 | . RS \\$1
21 | . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
22 | . nr rst2man-indent-level +1
23 | .\" .rstReportMargin post:
24 | ..
25 | .de UNINDENT
26 | . RE
27 | .\" indent \\n[an-margin]
28 | .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
29 | .nr rst2man-indent-level -1
30 | .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
31 | .in \\n[rst2man-indent\\n[rst2man-indent-level]]u
32 | ..
33 | .SH SYNOPSIS
34 | .sp
35 | macdaily \fBlogging\fP \fIapp\fP [\fIoptions\fP] ...
36 | .sp
37 | aliases: \fBapplication\fP, \fBmacos\fP
38 | .SH OPTIONS
39 | .SS optional arguments
40 | .INDENT 0.0
41 | .TP
42 | .B \-h\fP,\fB \-\-help
43 | show this help message and exit
44 | .TP
45 | .B \-V\fP,\fB \-\-version
46 | show program\(aqs version number and exit
47 | .UNINDENT
48 | .SS general arguments
49 | .INDENT 0.0
50 | .TP
51 | .B \-q\fP,\fB \-\-quiet
52 | run in quiet mode, with no output information
53 | .TP
54 | .B \-v\fP,\fB \-\-verbose
55 | run in verbose mode, with detailed output information
56 | .TP
57 | .B \-n\fP,\fB \-\-no\-cleanup
58 | do not run cleanup process
59 | .TP
60 | .B \-l\fP,\fB \-\-show\-log
61 | open log in \fIConsole.app\fP upon completion of command
62 | .UNINDENT
63 | .SH SEE ALSO
64 | .INDENT 0.0
65 | .IP \(bu 2
66 | \fBmacdaily\-logging\fP
67 | .IP \(bu 2
68 | \fBmacdaily\-logging\-apm\fP
69 | .IP \(bu 2
70 | \fBmacdaily\-logging\-brew\fP
71 | .IP \(bu 2
72 | \fBmacdaily\-logging\-cask\fP
73 | .IP \(bu 2
74 | \fBmacdaily\-logging\-gem\fP
75 | .IP \(bu 2
76 | \fBmacdaily\-logging\-mas\fP
77 | .IP \(bu 2
78 | \fBmacdaily\-logging\-npm\fP
79 | .IP \(bu 2
80 | \fBmacdaily\-logging\-pip\fP
81 | .IP \(bu 2
82 | \fBmacdaily\-logging\-tap\fP
83 | .UNINDENT
84 | .SH AUTHOR
85 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
86 | of MacDaily. Please contact me at jarryshaw@icloud.com.
87 | .SH COPYRIGHT
88 | MacDaily is licensed under the Apple Open Source License.
89 | .\" Generated by docutils manpage writer.
90 | .
91 |
--------------------------------------------------------------------------------
/macdaily/man/macdaily-logging-brew.8:
--------------------------------------------------------------------------------
1 | .\" Man page generated from reStructuredText.
2 | .
3 | .TH MACDAILY-LOGGING-BREW 8 "August 07, 2019" "v2019.8.4" ""
4 | .SH NAME
5 | macdaily-logging-brew \- Homebrew Formula Logging Automator
6 | .
7 | .nr rst2man-indent-level 0
8 | .
9 | .de1 rstReportMargin
10 | \\$1 \\n[an-margin]
11 | level \\n[rst2man-indent-level]
12 | level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
13 | -
14 | \\n[rst2man-indent0]
15 | \\n[rst2man-indent1]
16 | \\n[rst2man-indent2]
17 | ..
18 | .de1 INDENT
19 | .\" .rstReportMargin pre:
20 | . RS \\$1
21 | . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
22 | . nr rst2man-indent-level +1
23 | .\" .rstReportMargin post:
24 | ..
25 | .de UNINDENT
26 | . RE
27 | .\" indent \\n[an-margin]
28 | .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
29 | .nr rst2man-indent-level -1
30 | .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
31 | .in \\n[rst2man-indent\\n[rst2man-indent-level]]u
32 | ..
33 | .SH SYNOPSIS
34 | .sp
35 | macdaily \fBlogging\fP \fIbrew\fP [\fIoptions\fP] ...
36 | .sp
37 | aliases: \fBhomebrew\fP
38 | .SH OPTIONS
39 | .SS optional arguments
40 | .INDENT 0.0
41 | .TP
42 | .B \-h\fP,\fB \-\-help
43 | show this help message and exit
44 | .TP
45 | .B \-V\fP,\fB \-\-version
46 | show program\(aqs version number and exit
47 | .UNINDENT
48 | .SS general arguments
49 | .INDENT 0.0
50 | .TP
51 | .B \-q\fP,\fB \-\-quiet
52 | run in quiet mode, with no output information
53 | .TP
54 | .B \-v\fP,\fB \-\-verbose
55 | run in verbose mode, with detailed output information
56 | .TP
57 | .B \-n\fP,\fB \-\-no\-cleanup
58 | do not run cleanup process
59 | .TP
60 | .B \-l\fP,\fB \-\-show\-log
61 | open log in \fIConsole.app\fP upon completion of command
62 | .UNINDENT
63 | .SH SEE ALSO
64 | .INDENT 0.0
65 | .IP \(bu 2
66 | \fBbrew(1)\fP
67 | .IP \(bu 2
68 | \fBmacdaily\-logging\fP
69 | .IP \(bu 2
70 | \fBmacdaily\-logging\-apm\fP
71 | .IP \(bu 2
72 | \fBmacdaily\-logging\-app\fP
73 | .IP \(bu 2
74 | \fBmacdaily\-logging\-cask\fP
75 | .IP \(bu 2
76 | \fBmacdaily\-logging\-gem\fP
77 | .IP \(bu 2
78 | \fBmacdaily\-logging\-mas\fP
79 | .IP \(bu 2
80 | \fBmacdaily\-logging\-npm\fP
81 | .IP \(bu 2
82 | \fBmacdaily\-logging\-pip\fP
83 | .IP \(bu 2
84 | \fBmacdaily\-logging\-tap\fP
85 | .UNINDENT
86 | .SH AUTHOR
87 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
88 | of MacDaily. Please contact me at jarryshaw@icloud.com.
89 | .SH COPYRIGHT
90 | MacDaily is licensed under the Apple Open Source License.
91 | .\" Generated by docutils manpage writer.
92 | .
93 |
--------------------------------------------------------------------------------
/macdaily/man/macdaily-logging-cask.8:
--------------------------------------------------------------------------------
1 | .\" Man page generated from reStructuredText.
2 | .
3 | .TH MACDAILY-LOGGING-CASK 8 "August 07, 2019" "v2019.8.4" ""
4 | .SH NAME
5 | macdaily-logging-cask \- Homebrew Cask Logging Automator
6 | .
7 | .nr rst2man-indent-level 0
8 | .
9 | .de1 rstReportMargin
10 | \\$1 \\n[an-margin]
11 | level \\n[rst2man-indent-level]
12 | level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
13 | -
14 | \\n[rst2man-indent0]
15 | \\n[rst2man-indent1]
16 | \\n[rst2man-indent2]
17 | ..
18 | .de1 INDENT
19 | .\" .rstReportMargin pre:
20 | . RS \\$1
21 | . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
22 | . nr rst2man-indent-level +1
23 | .\" .rstReportMargin post:
24 | ..
25 | .de UNINDENT
26 | . RE
27 | .\" indent \\n[an-margin]
28 | .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
29 | .nr rst2man-indent-level -1
30 | .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
31 | .in \\n[rst2man-indent\\n[rst2man-indent-level]]u
32 | ..
33 | .SH SYNOPSIS
34 | .sp
35 | macdaily \fBlogging\fP \fIcask\fP [\fIoptions\fP] ...
36 | .sp
37 | aliases: \fBbrew\-cask\fP, \fBcaskroom\fP
38 | .SH OPTIONS
39 | .SS optional arguments
40 | .INDENT 0.0
41 | .TP
42 | .B \-h\fP,\fB \-\-help
43 | show this help message and exit
44 | .TP
45 | .B \-V\fP,\fB \-\-version
46 | show program\(aqs version number and exit
47 | .UNINDENT
48 | .SS general arguments
49 | .INDENT 0.0
50 | .TP
51 | .B \-q\fP,\fB \-\-quiet
52 | run in quiet mode, with no output information
53 | .TP
54 | .B \-v\fP,\fB \-\-verbose
55 | run in verbose mode, with detailed output information
56 | .TP
57 | .B \-n\fP,\fB \-\-no\-cleanup
58 | do not run cleanup process
59 | .TP
60 | .B \-l\fP,\fB \-\-show\-log
61 | open log in \fIConsole.app\fP upon completion of command
62 | .UNINDENT
63 | .SH SEE ALSO
64 | .INDENT 0.0
65 | .IP \(bu 2
66 | \fBbrew\-cask(1)\fP
67 | .IP \(bu 2
68 | \fBmacdaily\-logging\fP
69 | .IP \(bu 2
70 | \fBmacdaily\-logging\-apm\fP
71 | .IP \(bu 2
72 | \fBmacdaily\-logging\-app\fP
73 | .IP \(bu 2
74 | \fBmacdaily\-logging\-brew\fP
75 | .IP \(bu 2
76 | \fBmacdaily\-logging\-gem\fP
77 | .IP \(bu 2
78 | \fBmacdaily\-logging\-mas\fP
79 | .IP \(bu 2
80 | \fBmacdaily\-logging\-npm\fP
81 | .IP \(bu 2
82 | \fBmacdaily\-logging\-pip\fP
83 | .IP \(bu 2
84 | \fBmacdaily\-logging\-tap\fP
85 | .UNINDENT
86 | .SH AUTHOR
87 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
88 | of MacDaily. Please contact me at jarryshaw@icloud.com.
89 | .SH COPYRIGHT
90 | MacDaily is licensed under the Apple Open Source License.
91 | .\" Generated by docutils manpage writer.
92 | .
93 |
--------------------------------------------------------------------------------
/macdaily/man/macdaily-logging-gem.8:
--------------------------------------------------------------------------------
1 | .\" Man page generated from reStructuredText.
2 | .
3 | .TH MACDAILY-LOGGING-GEM 8 "August 07, 2019" "v2019.8.4" ""
4 | .SH NAME
5 | macdaily-logging-gem \- Ruby Gem Logging Automator
6 | .
7 | .nr rst2man-indent-level 0
8 | .
9 | .de1 rstReportMargin
10 | \\$1 \\n[an-margin]
11 | level \\n[rst2man-indent-level]
12 | level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
13 | -
14 | \\n[rst2man-indent0]
15 | \\n[rst2man-indent1]
16 | \\n[rst2man-indent2]
17 | ..
18 | .de1 INDENT
19 | .\" .rstReportMargin pre:
20 | . RS \\$1
21 | . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
22 | . nr rst2man-indent-level +1
23 | .\" .rstReportMargin post:
24 | ..
25 | .de UNINDENT
26 | . RE
27 | .\" indent \\n[an-margin]
28 | .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
29 | .nr rst2man-indent-level -1
30 | .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
31 | .in \\n[rst2man-indent\\n[rst2man-indent-level]]u
32 | ..
33 | .SH SYNOPSIS
34 | .sp
35 | macdaily \fBlogging\fP \fIgem\fP [\fIoptions\fP] ...
36 | .sp
37 | aliases: \fBruby\fP, \fBrubygems\fP
38 | .SH OPTIONS
39 | .SS optional arguments
40 | .INDENT 0.0
41 | .TP
42 | .B \-h\fP,\fB \-\-help
43 | show this help message and exit
44 | .TP
45 | .B \-V\fP,\fB \-\-version
46 | show program\(aqs version number and exit
47 | .UNINDENT
48 | .SS specification arguments
49 | .INDENT 0.0
50 | .TP
51 | .B \-b\fP,\fB \-\-brew
52 | log gems of Ruby installed from Homebrew
53 | .TP
54 | .B \-s\fP,\fB \-\-system
55 | log gems of Ruby provided by macOS system
56 | .UNINDENT
57 | .SS general arguments
58 | .INDENT 0.0
59 | .TP
60 | .B \-q\fP,\fB \-\-quiet
61 | run in quiet mode, with no output information
62 | .TP
63 | .B \-v\fP,\fB \-\-verbose
64 | run in verbose mode, with detailed output information
65 | .TP
66 | .B \-n\fP,\fB \-\-no\-cleanup
67 | do not run cleanup process
68 | .TP
69 | .B \-l\fP,\fB \-\-show\-log
70 | open log in \fIConsole.app\fP upon completion of command
71 | .UNINDENT
72 | .SH SEE ALSO
73 | .INDENT 0.0
74 | .IP \(bu 2
75 | \fBgem(1)\fP
76 | .IP \(bu 2
77 | \fBmacdaily\-logging\fP
78 | .IP \(bu 2
79 | \fBmacdaily\-logging\-apm\fP
80 | .IP \(bu 2
81 | \fBmacdaily\-logging\-app\fP
82 | .IP \(bu 2
83 | \fBmacdaily\-logging\-brew\fP
84 | .IP \(bu 2
85 | \fBmacdaily\-logging\-cask\fP
86 | .IP \(bu 2
87 | \fBmacdaily\-logging\-mas\fP
88 | .IP \(bu 2
89 | \fBmacdaily\-logging\-npm\fP
90 | .IP \(bu 2
91 | \fBmacdaily\-logging\-pip\fP
92 | .IP \(bu 2
93 | \fBmacdaily\-logging\-tap\fP
94 | .UNINDENT
95 | .SH AUTHOR
96 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
97 | of MacDaily. Please contact me at jarryshaw@icloud.com.
98 | .SH COPYRIGHT
99 | MacDaily is licensed under the Apple Open Source License.
100 | .\" Generated by docutils manpage writer.
101 | .
102 |
--------------------------------------------------------------------------------
/macdaily/man/macdaily-logging-mas.8:
--------------------------------------------------------------------------------
1 | .\" Man page generated from reStructuredText.
2 | .
3 | .TH MACDAILY-LOGGING-MAS 8 "August 07, 2019" "v2019.8.4" ""
4 | .SH NAME
5 | macdaily-logging-mas \- macOS Application Logging Automator
6 | .
7 | .nr rst2man-indent-level 0
8 | .
9 | .de1 rstReportMargin
10 | \\$1 \\n[an-margin]
11 | level \\n[rst2man-indent-level]
12 | level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
13 | -
14 | \\n[rst2man-indent0]
15 | \\n[rst2man-indent1]
16 | \\n[rst2man-indent2]
17 | ..
18 | .de1 INDENT
19 | .\" .rstReportMargin pre:
20 | . RS \\$1
21 | . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
22 | . nr rst2man-indent-level +1
23 | .\" .rstReportMargin post:
24 | ..
25 | .de UNINDENT
26 | . RE
27 | .\" indent \\n[an-margin]
28 | .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
29 | .nr rst2man-indent-level -1
30 | .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
31 | .in \\n[rst2man-indent\\n[rst2man-indent-level]]u
32 | ..
33 | .SH SYNOPSIS
34 | .sp
35 | macdaily \fBlogging\fP \fImas\fP [\fIoptions\fP] ...
36 | .sp
37 | aliases: \fBapp\-store\fP, \fBappstore\fP, \fBmac\fP, \fBmac\-app\-store\fP
38 | .SH OPTIONS
39 | .SS optional arguments
40 | .INDENT 0.0
41 | .TP
42 | .B \-h\fP,\fB \-\-help
43 | show this help message and exit
44 | .TP
45 | .B \-V\fP,\fB \-\-version
46 | show program\(aqs version number and exit
47 | .UNINDENT
48 | .SS general arguments
49 | .INDENT 0.0
50 | .TP
51 | .B \-q\fP,\fB \-\-quiet
52 | run in quiet mode, with no output information
53 | .TP
54 | .B \-v\fP,\fB \-\-verbose
55 | run in verbose mode, with detailed output information
56 | .TP
57 | .B \-n\fP,\fB \-\-no\-cleanup
58 | do not run cleanup process
59 | .TP
60 | .B \-l\fP,\fB \-\-show\-log
61 | open log in \fIConsole.app\fP upon completion of command
62 | .UNINDENT
63 | .SH SEE ALSO
64 | .INDENT 0.0
65 | .IP \(bu 2
66 | \fBmacdaily\-logging\fP
67 | .IP \(bu 2
68 | \fBmacdaily\-logging\-apm\fP
69 | .IP \(bu 2
70 | \fBmacdaily\-logging\-app\fP
71 | .IP \(bu 2
72 | \fBmacdaily\-logging\-brew\fP
73 | .IP \(bu 2
74 | \fBmacdaily\-logging\-cask\fP
75 | .IP \(bu 2
76 | \fBmacdaily\-logging\-gem\fP
77 | .IP \(bu 2
78 | \fBmacdaily\-logging\-npm\fP
79 | .IP \(bu 2
80 | \fBmacdaily\-logging\-pip\fP
81 | .IP \(bu 2
82 | \fBmacdaily\-logging\-tap\fP
83 | .UNINDENT
84 | .SH AUTHOR
85 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
86 | of MacDaily. Please contact me at jarryshaw@icloud.com.
87 | .SH COPYRIGHT
88 | MacDaily is licensed under the Apple Open Source License.
89 | .\" Generated by docutils manpage writer.
90 | .
91 |
--------------------------------------------------------------------------------
/macdaily/man/macdaily-logging-npm.8:
--------------------------------------------------------------------------------
1 | .\" Man page generated from reStructuredText.
2 | .
3 | .TH MACDAILY-LOGGING-NPM 8 "August 07, 2019" "v2019.8.4" ""
4 | .SH NAME
5 | macdaily-logging-npm \- Node.js Module Logging Automator
6 | .
7 | .nr rst2man-indent-level 0
8 | .
9 | .de1 rstReportMargin
10 | \\$1 \\n[an-margin]
11 | level \\n[rst2man-indent-level]
12 | level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
13 | -
14 | \\n[rst2man-indent0]
15 | \\n[rst2man-indent1]
16 | \\n[rst2man-indent2]
17 | ..
18 | .de1 INDENT
19 | .\" .rstReportMargin pre:
20 | . RS \\$1
21 | . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
22 | . nr rst2man-indent-level +1
23 | .\" .rstReportMargin post:
24 | ..
25 | .de UNINDENT
26 | . RE
27 | .\" indent \\n[an-margin]
28 | .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
29 | .nr rst2man-indent-level -1
30 | .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
31 | .in \\n[rst2man-indent\\n[rst2man-indent-level]]u
32 | ..
33 | .SH SYNOPSIS
34 | .sp
35 | macdaily \fBlogging\fP \fInpm\fP [\fIoptions\fP] ...
36 | .sp
37 | aliases: \fBnode\fP, \fBnode.js\fP
38 | .SH OPTIONS
39 | .SS optional arguments
40 | .INDENT 0.0
41 | .TP
42 | .B \-h\fP,\fB \-\-help
43 | show this help message and exit
44 | .TP
45 | .B \-V\fP,\fB \-\-version
46 | show program\(aqs version number and exit
47 | .UNINDENT
48 | .SS specification arguments
49 | .INDENT 0.0
50 | .TP
51 | .B \-i\fP,\fB \-\-long
52 | show extended information
53 | .UNINDENT
54 | .SS general arguments
55 | .INDENT 0.0
56 | .TP
57 | .B \-q\fP,\fB \-\-quiet
58 | run in quiet mode, with no output information
59 | .TP
60 | .B \-v\fP,\fB \-\-verbose
61 | run in verbose mode, with detailed output information
62 | .TP
63 | .B \-n\fP,\fB \-\-no\-cleanup
64 | do not run cleanup process
65 | .TP
66 | .B \-l\fP,\fB \-\-show\-log
67 | open log in \fIConsole.app\fP upon completion of command
68 | .UNINDENT
69 | .SH SEE ALSO
70 | .INDENT 0.0
71 | .IP \(bu 2
72 | \fBgem(1)\fP
73 | .IP \(bu 2
74 | \fBmacdaily\-logging\fP
75 | .IP \(bu 2
76 | \fBmacdaily\-logging\-apm\fP
77 | .IP \(bu 2
78 | \fBmacdaily\-logging\-app\fP
79 | .IP \(bu 2
80 | \fBmacdaily\-logging\-brew\fP
81 | .IP \(bu 2
82 | \fBmacdaily\-logging\-cask\fP
83 | .IP \(bu 2
84 | \fBmacdaily\-logging\-gem\fP
85 | .IP \(bu 2
86 | \fBmacdaily\-logging\-mas\fP
87 | .IP \(bu 2
88 | \fBmacdaily\-logging\-pip\fP
89 | .IP \(bu 2
90 | \fBmacdaily\-logging\-tap\fP
91 | .UNINDENT
92 | .SH AUTHOR
93 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
94 | of MacDaily. Please contact me at jarryshaw@icloud.com.
95 | .SH COPYRIGHT
96 | MacDaily is licensed under the Apple Open Source License.
97 | .\" Generated by docutils manpage writer.
98 | .
99 |
--------------------------------------------------------------------------------
/macdaily/man/macdaily-logging-tap.8:
--------------------------------------------------------------------------------
1 | .\" Man page generated from reStructuredText.
2 | .
3 | .TH MACDAILY-LOGGING-TAP 8 "August 07, 2019" "v2019.8.4" ""
4 | .SH NAME
5 | macdaily-logging-tap \- Homebrew Tap Logging Automator
6 | .
7 | .nr rst2man-indent-level 0
8 | .
9 | .de1 rstReportMargin
10 | \\$1 \\n[an-margin]
11 | level \\n[rst2man-indent-level]
12 | level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
13 | -
14 | \\n[rst2man-indent0]
15 | \\n[rst2man-indent1]
16 | \\n[rst2man-indent2]
17 | ..
18 | .de1 INDENT
19 | .\" .rstReportMargin pre:
20 | . RS \\$1
21 | . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
22 | . nr rst2man-indent-level +1
23 | .\" .rstReportMargin post:
24 | ..
25 | .de UNINDENT
26 | . RE
27 | .\" indent \\n[an-margin]
28 | .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
29 | .nr rst2man-indent-level -1
30 | .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
31 | .in \\n[rst2man-indent\\n[rst2man-indent-level]]u
32 | ..
33 | .SH SYNOPSIS
34 | .sp
35 | macdaily \fBlogging\fP \fItap\fP [\fIoptions\fP] ...
36 | .sp
37 | aliases: \fBbrew\-tap\fP
38 | .SH OPTIONS
39 | .SS optional arguments
40 | .INDENT 0.0
41 | .TP
42 | .B \-h\fP,\fB \-\-help
43 | show this help message and exit
44 | .TP
45 | .B \-V\fP,\fB \-\-version
46 | show program\(aqs version number and exit
47 | .UNINDENT
48 | .SS general arguments
49 | .INDENT 0.0
50 | .TP
51 | .B \-q\fP,\fB \-\-quiet
52 | run in quiet mode, with no output information
53 | .TP
54 | .B \-v\fP,\fB \-\-verbose
55 | run in verbose mode, with detailed output information
56 | .TP
57 | .B \-n\fP,\fB \-\-no\-cleanup
58 | do not run cleanup process
59 | .TP
60 | .B \-l\fP,\fB \-\-show\-log
61 | open log in \fIConsole.app\fP upon completion of command
62 | .UNINDENT
63 | .SH SEE ALSO
64 | .INDENT 0.0
65 | .IP \(bu 2
66 | \fBbrew(1)\fP
67 | .IP \(bu 2
68 | \fBmacdaily\-logging\fP
69 | .IP \(bu 2
70 | \fBmacdaily\-logging\-apm\fP
71 | .IP \(bu 2
72 | \fBmacdaily\-logging\-app\fP
73 | .IP \(bu 2
74 | \fBmacdaily\-logging\-brew\fP
75 | .IP \(bu 2
76 | \fBmacdaily\-logging\-cask\fP
77 | .IP \(bu 2
78 | \fBmacdaily\-logging\-gem\fP
79 | .IP \(bu 2
80 | \fBmacdaily\-logging\-mas\fP
81 | .IP \(bu 2
82 | \fBmacdaily\-logging\-npm\fP
83 | .IP \(bu 2
84 | \fBmacdaily\-logging\-pip\fP
85 | .UNINDENT
86 | .SH AUTHOR
87 | Jarry Shaw, a newbie programmer, is the author, owner and maintainer
88 | of MacDaily. Please contact me at jarryshaw@icloud.com.
89 | .SH COPYRIGHT
90 | MacDaily is licensed under the Apple Open Source License.
91 | .\" Generated by docutils manpage writer.
92 | .
93 |
--------------------------------------------------------------------------------
/macdaily/res/askpass.applescript:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env osascript
2 |
3 | -- script based on https://github.com/theseal/ssh-askpass
4 |
5 | on run argv
6 | set args to argv as text
7 | if args starts with "--help" or args starts with "-h" then
8 | return "macdaily-askpass [-h|--help] [prompt]"
9 | end if
10 | display dialog args with icon caution default button "OK" default answer "" with hidden answer
11 | return result's text returned
12 | end run
13 |
--------------------------------------------------------------------------------
/macdaily/res/confirm.applescript:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env osascript
2 |
3 | on run argv
4 | set args to argv as text
5 | if args starts with "--help" or args starts with "-h" then
6 | return "macdaily-confirm [-h|--help] [prompt]"
7 | end if
8 | display dialog args with icon note default button "Cancel"
9 | return result's button returned
10 | end run
11 |
--------------------------------------------------------------------------------
/macdaily/res/find.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | import contextlib
4 | import functools
5 | import pathlib
6 | import sys
7 |
8 |
9 | @functools.lru_cache(maxsize=128)
10 | def find(root):
11 | with contextlib.suppress(PermissionError):
12 | for path in root.iterdir():
13 | with contextlib.suppress(OSError):
14 | if path.is_symlink():
15 | continue
16 | if path.is_dir():
17 | if path.parts[:2] == ('/', 'Volumes'):
18 | continue
19 | if path.suffix == '.app':
20 | print(path)
21 | find(path)
22 |
23 |
24 | if __name__ == '__main__':
25 | sys.tracebacklimit = 0
26 | sys.exit(find(pathlib.Path(sys.argv[1]).resolve(strict=True)))
27 |
--------------------------------------------------------------------------------
/macdaily/util/compat.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | import sys
4 |
5 | # pathlib & subprocess
6 | if sys.version_info[:2] <= (3, 4):
7 | import pathlib2 as pathlib # pylint: disable=unused-import
8 | import subprocess32 as subprocess # pylint: disable=unused-import
9 | else:
10 | import pathlib # pylint: disable=unused-import
11 | import subprocess # pylint: disable=unused-import
12 |
13 | # threading
14 | try:
15 | import threading
16 | except ImportError:
17 | import dummy_threading as threading
18 |
19 | # multiprocessing
20 | try:
21 | import multiprocessing
22 | except ImportError:
23 | multiprocessing = threading
24 |
25 | # make alias for multiprocessing.Process
26 | setattr(multiprocessing, 'Process', threading.Thread)
27 |
28 | # make alias for multiprocessing.Queue
29 | import queue
30 | setattr(multiprocessing, 'Queue', queue.Queue)
31 |
--------------------------------------------------------------------------------
/macdaily/util/const/string.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """magic strings"""
3 |
4 | import functools
5 |
6 |
7 | @functools.total_ordering
8 | class minstr:
9 |
10 | def __lt__(self, value):
11 | if isinstance(value, str):
12 | return True
13 | return NotImplemented
14 |
15 |
16 | @functools.total_ordering
17 | class maxstr:
18 |
19 | def __gt__(self, value):
20 | if isinstance(value, str):
21 | return True
22 | return NotImplemented
23 |
24 |
25 | # string boundaries
26 | MIN = minstr()
27 | MAX = maxstr()
28 |
--------------------------------------------------------------------------------
/macdaily/util/const/term.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """terminal display"""
3 |
4 | import shutil
5 |
6 | # terminal length
7 | length = shutil.get_terminal_size().columns
8 |
9 | # ANSI colours
10 | reset = '\033[0m' # reset
11 | bold = '\033[1m' # bold
12 | dim = '\033[2m' # dim
13 | under = '\033[4m' # underline
14 | flash = '\033[5m' # flash
15 |
16 | red_dim = '\033[31m' # dim red foreground
17 | green_dim = '\033[32m' # dim green foreground
18 | yellow_dim = '\033[33m' # dim yellow foreground
19 | purple_dim = '\033[34m' # dim purple foreground
20 | pink_dim = '\033[35m' # dim pink foreground
21 | blue_dim = '\033[36m' # dim blue foreground
22 |
23 | red_bg_dim = '\033[41m' # dim red background
24 | green_bg_dim = '\033[42m' # dim green background
25 | yellow_bg_dim = '\033[43m' # dim yellow background
26 | purple_bg_dim = '\033[44m' # dim purple background
27 | pink_bg_dim = '\033[45m' # dim pink background
28 | blue_bg_dim = '\033[46m' # dim blue background
29 |
30 | grey = '\033[90m' # bright grey foreground
31 | red = '\033[91m' # bright red foreground
32 | green = '\033[92m' # bright green foreground
33 | yellow = '\033[93m' # bright yellow foreground
34 | purple = '\033[94m' # bright purple foreground
35 | pink = '\033[95m' # bright pink foreground
36 | blue = '\033[96m' # bright blue foreground
37 |
38 | grey_bg = '\033[100m' # bright grey background
39 | red_bg = '\033[101m' # bright red background
40 | green_bg = '\033[102m' # bright green background
41 | yellow_bg = '\033[103m' # bright yellow background
42 | purple_bg = '\033[104m' # bright purple background
43 | pink_bg = '\033[105m' # bright pink background
44 | blue_bg = '\033[106m' # bright blue background
45 |
--------------------------------------------------------------------------------
/macdaily/util/exceptions.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """refined errors"""
3 |
4 | import sys
5 |
6 | from macdaily.util.const.macro import DEVMODE
7 |
8 |
9 | class Error(Exception):
10 | def __init__(self, *args, **kwargs):
11 | if not DEVMODE:
12 | sys.tracebacklimit = 0
13 | super().__init__(*args, **kwargs)
14 |
15 |
16 | class ChildExit(Error, ChildProcessError):
17 | pass
18 |
19 |
20 | class CommandNotImplemented(Error, NotImplementedError):
21 | pass
22 |
23 |
24 | class ConfigNotFoundError(Error, FileNotFoundError):
25 | pass
26 |
27 |
28 | class IncorrectPassword(Error, PermissionError):
29 | pass
30 |
31 |
32 | class TimeExpired(Error, TimeoutError):
33 | pass
34 |
35 |
36 | class UnsupportedOS(Error, RuntimeError):
37 | pass
38 |
--------------------------------------------------------------------------------
/macdaily/util/globals.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
--------------------------------------------------------------------------------
/macdaily/util/tools/make.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | import contextlib
4 | import os
5 |
6 | from macdaily.util.compat import subprocess
7 |
8 |
9 | def make_context(redirect=False, devnull=open(os.devnull, 'w')):
10 | if redirect:
11 | return contextlib.redirect_stdout(devnull)
12 | return contextlib.nullcontext()
13 |
14 |
15 | def make_description(command):
16 | def desc(singular):
17 | if singular: # pylint: disable=no-else-return
18 | return command.desc[0]
19 | else:
20 | return command.desc[1]
21 | return desc
22 |
23 |
24 | def make_namespace(args):
25 | if not isinstance(args, dict):
26 | args = vars(args)
27 | namespace = dict()
28 | for key, value in args.items():
29 | if value is None:
30 | continue
31 | namespace[key] = value
32 | return namespace
33 |
34 |
35 | def make_pipe(password, redirect=False, devnull=subprocess.DEVNULL):
36 | return subprocess.Popen(['yes', password],
37 | stdout=subprocess.PIPE,
38 | stderr=make_stderr(redirect, devnull))
39 |
40 |
41 | def make_stderr(redirect=False, devnull=subprocess.DEVNULL):
42 | if redirect:
43 | return devnull
44 | return None
45 |
--------------------------------------------------------------------------------
/setup-emoji.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | import os
4 | import re
5 | import subprocess
6 |
7 | RESP_BEER = subprocess.check_output(['unbuffer', '-p', 'echo', '🍺']).strip().decode()
8 |
9 | context = list()
10 | with open(os.path.join(os.path.dirname(__file__), 'macdaily/util/const/macro.py')) as file:
11 | for line in file:
12 | match = re.match(r"RESP_BEER = '(.*)'", line)
13 | if match is None:
14 | context.append(line)
15 | else:
16 | context.append(f'RESP_BEER = {RESP_BEER!r}\n')
17 |
18 | with open(os.path.join(os.path.dirname(__file__), 'macdaily/util/const/macro.py'), 'w') as file:
19 | file.writelines(context)
20 |
--------------------------------------------------------------------------------
/setup-version.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | import os
4 | import re
5 | import sys
6 | import time
7 | import pkg_resources
8 |
9 | try:
10 | __version__ = str(pkg_resources.parse_version(sys.argv[1]))
11 | except IndexError:
12 | __version__ = str(pkg_resources.parse_version(time.strftime('%Y.%m.%d')))
13 |
14 | context = list()
15 | with open(os.path.join(os.path.dirname(__file__), 'macdaily/util/const/macro.py')) as file:
16 | for line in file:
17 | match = re.match(r"VERSION = '(.*)'", line)
18 | if match is None:
19 | context.append(line)
20 | else:
21 | context.append(f"VERSION = {__version__!r}\n")
22 |
23 | with open(os.path.join(os.path.dirname(__file__), 'macdaily/util/const/macro.py'), 'w') as file:
24 | file.writelines(context)
25 |
26 | context = list()
27 | with open(os.path.join(os.path.dirname(__file__), 'setup.py')) as file:
28 | for line in file:
29 | match = re.match(r"__version__ = '(.*)'", line)
30 | if match is None:
31 | context.append(line)
32 | else:
33 | context.append(f'__version__ = {__version__!r}\n')
34 |
35 | with open(os.path.join(os.path.dirname(__file__), 'setup.py'), 'w') as file:
36 | file.writelines(context)
37 |
38 | for rst in os.listdir(os.path.join(os.path.dirname(__file__), 'doc', 'rst')):
39 | if os.path.splitext(rst)[1] != '.rst':
40 | continue
41 |
42 | context = list()
43 | with open(os.path.join(os.path.dirname(__file__), 'doc', 'rst', rst)) as file:
44 | for line in file:
45 | match = re.match(r":Version: (.*)", line)
46 | if match is None:
47 | match =re.match(r":Date: (.*)", line)
48 | if match is None:
49 | context.append(line)
50 | else:
51 | context.append(f":Date: {time.strftime('%B %d, %Y')}\n")
52 | else:
53 | context.append(f':Version: v{__version__}\n')
54 |
55 | with open(os.path.join(os.path.dirname(__file__), 'doc', 'rst', rst), 'w') as file:
56 | file.writelines(context)
57 |
--------------------------------------------------------------------------------
/setup.cfg:
--------------------------------------------------------------------------------
1 | [bdist_wheel]
2 | universal=0
3 |
4 | [metadata]
5 | description-file=README.rst
6 | license_file=LICENSE
7 |
--------------------------------------------------------------------------------