skilleter-thingy 0.0.91__py3-none-any.whl → 0.0.92__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of skilleter-thingy might be problematic. Click here for more details.
- skilleter_thingy/docker_purge.py +5 -5
- skilleter_thingy/ggit.py +1 -1
- skilleter_thingy/ggrep.py +11 -11
- skilleter_thingy/git_br.py +2 -2
- skilleter_thingy/git_ca.py +7 -7
- skilleter_thingy/git_cleanup.py +5 -5
- skilleter_thingy/git_co.py +5 -5
- skilleter_thingy/git_mr.py +1 -1
- skilleter_thingy/git_parent.py +2 -2
- skilleter_thingy/git_review.py +4 -4
- skilleter_thingy/git_update.py +8 -8
- skilleter_thingy/linecount.py +1 -1
- skilleter_thingy/moviemover.py +3 -3
- skilleter_thingy/phototidier.py +1 -1
- skilleter_thingy/readable.py +1 -0
- skilleter_thingy/remdir.py +3 -3
- skilleter_thingy/strreplace.py +1 -1
- skilleter_thingy/trimpath.py +1 -1
- skilleter_thingy/xchmod.py +1 -1
- {skilleter_thingy-0.0.91.dist-info → skilleter_thingy-0.0.92.dist-info}/METADATA +34 -27
- {skilleter_thingy-0.0.91.dist-info → skilleter_thingy-0.0.92.dist-info}/RECORD +25 -25
- {skilleter_thingy-0.0.91.dist-info → skilleter_thingy-0.0.92.dist-info}/LICENSE +0 -0
- {skilleter_thingy-0.0.91.dist-info → skilleter_thingy-0.0.92.dist-info}/WHEEL +0 -0
- {skilleter_thingy-0.0.91.dist-info → skilleter_thingy-0.0.92.dist-info}/entry_points.txt +0 -0
- {skilleter_thingy-0.0.91.dist-info → skilleter_thingy-0.0.92.dist-info}/top_level.txt +0 -0
skilleter_thingy/docker_purge.py
CHANGED
|
@@ -23,11 +23,11 @@ def initialise():
|
|
|
23
23
|
|
|
24
24
|
parser = argparse.ArgumentParser(description='Purge docker instances and images')
|
|
25
25
|
|
|
26
|
-
parser.add_argument('
|
|
27
|
-
parser.add_argument('
|
|
28
|
-
parser.add_argument('
|
|
29
|
-
parser.add_argument('
|
|
30
|
-
parser.add_argument('
|
|
26
|
+
parser.add_argument('--stop', '-s', action='store_true', help='Stop Docker instances')
|
|
27
|
+
parser.add_argument('--kill', '-k', action='store_true', help='Kill Docker instances')
|
|
28
|
+
parser.add_argument('--remove', '-r', action='store_true', help='Remove Docker images')
|
|
29
|
+
parser.add_argument('--list', '-l', action='store_true', help='List what would be done without doing it')
|
|
30
|
+
parser.add_argument('--force', '-f', action='store_true', help='Forcibly kill/remove instances')
|
|
31
31
|
parser.add_argument('--debug', action='store_true', help='Enable debug output')
|
|
32
32
|
parser.add_argument('images', nargs='*', help='List of Docker containers (regular expression)')
|
|
33
33
|
|
skilleter_thingy/ggit.py
CHANGED
|
@@ -38,7 +38,7 @@ def parse_command_line():
|
|
|
38
38
|
|
|
39
39
|
parser = argparse.ArgumentParser(description='Run a git command recursively in subdirectories')
|
|
40
40
|
|
|
41
|
-
parser.add_argument('
|
|
41
|
+
parser.add_argument('--quiet', '-q', action='store_true', help='Run quietly - only output errors or output from git')
|
|
42
42
|
parser.add_argument('path', nargs='?', action='store', default='.', help='Specify the path to run in')
|
|
43
43
|
|
|
44
44
|
args = parser.parse_args()
|
skilleter_thingy/ggrep.py
CHANGED
|
@@ -28,18 +28,18 @@ def parse_command_line():
|
|
|
28
28
|
parser = argparse.ArgumentParser(
|
|
29
29
|
description='Run a git grep in either the current working tree or all working git working trees under the current directory')
|
|
30
30
|
|
|
31
|
-
parser.add_argument('
|
|
32
|
-
parser.add_argument('
|
|
33
|
-
parser.add_argument('-
|
|
34
|
-
parser.add_argument('-
|
|
31
|
+
parser.add_argument('--follow', '-f', action='store_true', help='Follow symlinks')
|
|
32
|
+
parser.add_argument('--text', '-a', action='store_true', help='Process binary files as if they were text.')
|
|
33
|
+
parser.add_argument('--ignore-case', '-i', action='store_true', help='Ignore case differences between the patterns and the files.')
|
|
34
|
+
parser.add_argument('--word-regexp', '-w', action='store_true',
|
|
35
35
|
help='Match the pattern only at word boundary (either begin at the beginning of a line, or preceded by a non-word character; end at the end of a line or followed by a non-word character).')
|
|
36
|
-
parser.add_argument('-
|
|
37
|
-
parser.add_argument('-
|
|
38
|
-
parser.add_argument('-
|
|
39
|
-
parser.add_argument('
|
|
40
|
-
parser.add_argument('
|
|
41
|
-
parser.add_argument('
|
|
42
|
-
parser.add_argument('-
|
|
36
|
+
parser.add_argument('--invert-match', '-v', action='store_true', help='Select non-matching lines.')
|
|
37
|
+
parser.add_argument('--fixed-strings', '-F', action='store_true', help='Use fixed strings for patterns (don’t interpret pattern as a regex).')
|
|
38
|
+
parser.add_argument('--line-number', '-n', action='store_true', help='Prefix the line number to matching lines.')
|
|
39
|
+
parser.add_argument('--files-with-matches', '-l', action='store_true', help='Show only the names of files that contain matches')
|
|
40
|
+
parser.add_argument('--files-without-matches', '-L', action='store_true', help='Show only the names of files that do NOT contain matches')
|
|
41
|
+
parser.add_argument('--wildcard', '-W', action='append', help='Only search files matching the wildcard(s)')
|
|
42
|
+
parser.add_argument('--only-matching', '-o', action='store_true', help='Print only the matched (non-empty) parts of a matching line, with each such part on a separate output line.')
|
|
43
43
|
parser.add_argument('--no-color', action='store_true', help='Turn off match highlighting')
|
|
44
44
|
parser.add_argument('pattern', action='store', help='Regular expression to search for')
|
|
45
45
|
parser.add_argument('paths', nargs='*', help='Optional list of one or more paths to search')
|
skilleter_thingy/git_br.py
CHANGED
|
@@ -31,8 +31,8 @@ def parse_command_line():
|
|
|
31
31
|
|
|
32
32
|
parser = argparse.ArgumentParser(description='List or delete branches that have been merged')
|
|
33
33
|
|
|
34
|
-
parser.add_argument('
|
|
35
|
-
parser.add_argument('
|
|
34
|
+
parser.add_argument('--all', '-a', action='store_true', help='List all branches, including remotes')
|
|
35
|
+
parser.add_argument('--delete', '-d', action='store_true',
|
|
36
36
|
help='Delete the specified branch(es), even if it is the current one (list of branches to delete must be supplied as parameters)')
|
|
37
37
|
parser.add_argument('branches', nargs='*', help='Filter the list of branches according to one or more patterns')
|
|
38
38
|
|
skilleter_thingy/git_ca.py
CHANGED
|
@@ -36,13 +36,13 @@ def main():
|
|
|
36
36
|
parser = argparse.ArgumentParser(
|
|
37
37
|
description='Amend changes to the current commit. Updates files that are already in the commit and, optionally, adds additional files.')
|
|
38
38
|
|
|
39
|
-
parser.add_argument('
|
|
40
|
-
parser.add_argument('
|
|
41
|
-
parser.add_argument('
|
|
42
|
-
parser.add_argument('
|
|
43
|
-
parser.add_argument('
|
|
44
|
-
parser.add_argument('
|
|
45
|
-
parser.add_argument('-
|
|
39
|
+
parser.add_argument('--added', '-A', action='store_true', help='Update files in the current commit, including files added with "git add"')
|
|
40
|
+
parser.add_argument('--all', '-a', action='store_true', help='Append all locally-modified, tracked files to the current commit')
|
|
41
|
+
parser.add_argument('--everything', '-e', action='store_true', help='Append all modified and untracked files to the current commit (implies --all)')
|
|
42
|
+
parser.add_argument('--ignored', '-i', action='store_true', dest='ignored', help='Include files normally hidden by .gitignore')
|
|
43
|
+
parser.add_argument('--patch', '-p', action='store_true', help='Use the interactive patch selection interface to chose which changes to commit.')
|
|
44
|
+
parser.add_argument('--verbose', '-v', action='store_true', help='Verbose mode')
|
|
45
|
+
parser.add_argument('--dry-run', '-D', action='store_true', help='Dry-run')
|
|
46
46
|
|
|
47
47
|
parser.add_argument('files', nargs='*', help='List of files to add to the commit')
|
|
48
48
|
|
skilleter_thingy/git_cleanup.py
CHANGED
|
@@ -31,12 +31,12 @@ def parse_command_line():
|
|
|
31
31
|
parser = argparse.ArgumentParser(
|
|
32
32
|
description='List or delete branches that have been merged.\nWhen deleting branches, also delete tracking branches that are not longer on the remote.')
|
|
33
33
|
|
|
34
|
-
parser.add_argument('
|
|
35
|
-
parser.add_argument('
|
|
34
|
+
parser.add_argument('--delete', '-d', action='store_true', dest='delete', help='Delete all branches that have been merged')
|
|
35
|
+
parser.add_argument('--master', '-m', '--main', dest='master',
|
|
36
36
|
help='Specify the master branch (Attempts to read this from GitLab or defaults to "develop" if present or "master" or "main" otherwise')
|
|
37
|
-
parser.add_argument('
|
|
38
|
-
parser.add_argument('
|
|
39
|
-
parser.add_argument('
|
|
37
|
+
parser.add_argument('--force', '-f', action='store_true', dest='force', help='Allow protected branches (e.g. master) to be removed')
|
|
38
|
+
parser.add_argument('--unmerged', '-u', action='store_true', dest='list_unmerged', help='List branches that have NOT been merged')
|
|
39
|
+
parser.add_argument('--yes', '-y', action='store_true', dest='force', help='Assume "yes" in response to any prompts (e.g. to delete branches)')
|
|
40
40
|
parser.add_argument('--debug', action='store_true', help='Enable debug output')
|
|
41
41
|
|
|
42
42
|
parser.add_argument('branches', nargs='*', help='List of branches to check (default is all branches)')
|
skilleter_thingy/git_co.py
CHANGED
|
@@ -59,12 +59,12 @@ def parse_arguments():
|
|
|
59
59
|
""" Parse and return command line arguments """
|
|
60
60
|
|
|
61
61
|
parser = argparse.ArgumentParser(description=DESCRIPTION, formatter_class=argparse.RawTextHelpFormatter)
|
|
62
|
-
parser.add_argument('
|
|
63
|
-
parser.add_argument('
|
|
64
|
-
parser.add_argument('
|
|
65
|
-
parser.add_argument('
|
|
62
|
+
parser.add_argument('--branch', '-b', action='store_true', help='Create the specified branch')
|
|
63
|
+
parser.add_argument('--update', '-u', action='store_true', help='If a remote branch exists, delete any local branch and check out the remote version')
|
|
64
|
+
parser.add_argument('--rebase', '-r', action='store_true', help='Rebase the branch onto its parent after checking it out')
|
|
65
|
+
parser.add_argument('--force', '-f', action='store_true',
|
|
66
66
|
help='When using the update option, recreate the local branch even if it is owned by the current user (based on the author of the most recent commit)')
|
|
67
|
-
parser.add_argument('
|
|
67
|
+
parser.add_argument('--exact', '-e', action='store_true', help='Do not use branch name matching - check out the branch as specified (if it exists)')
|
|
68
68
|
parser.add_argument('--debug', action='store_true', help='Enable debug output')
|
|
69
69
|
parser.add_argument('branchname', nargs=1, type=str,
|
|
70
70
|
help='The branch name (or a partial name that matches uniquely against a local branch, remote branch, commit ID or tag)')
|
skilleter_thingy/git_mr.py
CHANGED
|
@@ -23,7 +23,7 @@ def parse_arguments():
|
|
|
23
23
|
parser = argparse.ArgumentParser(description=DESCRIPTION, formatter_class=argparse.RawTextHelpFormatter)
|
|
24
24
|
|
|
25
25
|
parser.add_argument('--debug', action='store_true', help='Enable debug output')
|
|
26
|
-
parser.add_argument('
|
|
26
|
+
parser.add_argument('--force', '-f', action='store_true', help='Force-push the branch')
|
|
27
27
|
parser.add_argument('--parent', '-p', action='store', help='Override the default parent and specify the branch to merge onto')
|
|
28
28
|
parser.add_argument('--reviewer', '-r', action='store', help='Specify the name of the reviewer for the merge request')
|
|
29
29
|
parser.add_argument('--keep', '-k', action='store_true', help='Keep the source branch after the merge (default is to delete it).')
|
skilleter_thingy/git_parent.py
CHANGED
|
@@ -21,8 +21,8 @@ def main():
|
|
|
21
21
|
current_branch = git.branch()
|
|
22
22
|
|
|
23
23
|
parser = argparse.ArgumentParser(description='Attempt to determine the parent branch for the specified branch (defaulting to the current one)')
|
|
24
|
-
parser.add_argument('
|
|
25
|
-
parser.add_argument('
|
|
24
|
+
parser.add_argument('--all', '-a', action='store_true', help='Include feature branches as possible parents')
|
|
25
|
+
parser.add_argument('--verbose', '-v', action='store_true', help='Report verbose results (includes number of commits between branch and parent)')
|
|
26
26
|
parser.add_argument('branch', action='store', nargs='?', type=str, default=current_branch, help=f'Branch, commit or commit (defaults to current branch; {current_branch})')
|
|
27
27
|
|
|
28
28
|
args = parser.parse_args()
|
skilleter_thingy/git_review.py
CHANGED
|
@@ -1284,10 +1284,10 @@ def parse_command_line():
|
|
|
1284
1284
|
|
|
1285
1285
|
parser = argparse.ArgumentParser(description='Menu-driven Git code review tool')
|
|
1286
1286
|
|
|
1287
|
-
parser.add_argument('
|
|
1288
|
-
parser.add_argument('
|
|
1289
|
-
parser.add_argument('
|
|
1290
|
-
parser.add_argument('
|
|
1287
|
+
parser.add_argument('--commit', '-c', type=str, help='Compare the specified commit with its parent')
|
|
1288
|
+
parser.add_argument('--branch', '-b', type=str, help='Compare the specified commit to branch point on specified branch')
|
|
1289
|
+
parser.add_argument('--change', '-C', action='store_true', help='Compare the current commit with its parent')
|
|
1290
|
+
parser.add_argument('--debug', '-d', action='store_true', help='Start a debug session over Telnet using pudb')
|
|
1291
1291
|
parser.add_argument('--dir', action='store', help='Work in the specified directory')
|
|
1292
1292
|
parser.add_argument('--difftool', type=str, default=None, help='Override the default git diff tool')
|
|
1293
1293
|
|
skilleter_thingy/git_update.py
CHANGED
|
@@ -36,17 +36,17 @@ def parse_command_line():
|
|
|
36
36
|
|
|
37
37
|
parser = argparse.ArgumentParser(description='Rebase branch(es) against their parent branch, updating both in the process')
|
|
38
38
|
|
|
39
|
-
parser.add_argument('
|
|
39
|
+
parser.add_argument('--cleanup', '-c', action='store_true',
|
|
40
40
|
help='After updating a branch, delete it if there are no differences between it and its parent branch')
|
|
41
|
-
parser.add_argument('
|
|
42
|
-
parser.add_argument('
|
|
41
|
+
parser.add_argument('--all', '-a', action='store_true', help='Update all local branches, not just the current one')
|
|
42
|
+
parser.add_argument('--everything', '-A', action='store_true',
|
|
43
43
|
help='Update all local branches, not just the current one and ignore the default ignore list specified in the Git configuration')
|
|
44
|
-
parser.add_argument('
|
|
45
|
-
parser.add_argument('
|
|
46
|
-
parser.add_argument('-
|
|
44
|
+
parser.add_argument('--default', '-d', action='store_true', help='Checkout the main or master branch on completion')
|
|
45
|
+
parser.add_argument('--parent', '-p', action='store', help='Specify the parent branch, rather than trying to work it out')
|
|
46
|
+
parser.add_argument('--all-parents', '-P', action='store_true',
|
|
47
47
|
help='Feature branches are not considered as alternative parents unless this option is specified')
|
|
48
|
-
parser.add_argument('
|
|
49
|
-
parser.add_argument('
|
|
48
|
+
parser.add_argument('--stop', '-s', action='store_true', help='Stop if a rebase problem occurs, instead of skipping the branch')
|
|
49
|
+
parser.add_argument('--ignore', '-i', action='store', default=None,
|
|
50
50
|
help='List of one or more wildcard branch names not to attempt to update (uses update.ignore from the Git configuration if not specified)')
|
|
51
51
|
parser.add_argument('--verbose', action='store_true', help='Enable verbose output')
|
|
52
52
|
parser.add_argument('--dry-run', action='store_true', help='Report what would be done without actually doing it')
|
skilleter_thingy/linecount.py
CHANGED
|
@@ -75,7 +75,7 @@ def main():
|
|
|
75
75
|
""" Report Summary of files by name or extension """
|
|
76
76
|
|
|
77
77
|
parser = argparse.ArgumentParser(description='Summarise number of files, lines of text and total size of files in a directory tree')
|
|
78
|
-
parser.add_argument('
|
|
78
|
+
parser.add_argument('--ext', '-e', action='store_true', help='Identify file type using the file extension (faster but less accurrate)')
|
|
79
79
|
|
|
80
80
|
args = parser.parse_args()
|
|
81
81
|
|
skilleter_thingy/moviemover.py
CHANGED
|
@@ -27,9 +27,9 @@ def parse_command_line():
|
|
|
27
27
|
|
|
28
28
|
parser = argparse.ArgumentParser(description='File relocation - move files by wildcard from one directory tree to another')
|
|
29
29
|
|
|
30
|
-
parser.add_argument('
|
|
31
|
-
parser.add_argument('
|
|
32
|
-
parser.add_argument('-
|
|
30
|
+
parser.add_argument('--source', '-s', type=str, required=True, help='Source directory')
|
|
31
|
+
parser.add_argument('--destination', '-d', type=str, required=True, help='Destination directory')
|
|
32
|
+
parser.add_argument('--dry-run', '-D', action='store_true', help='Report what files would be moved, without actually moving them')
|
|
33
33
|
parser.add_argument('files', nargs='*', help='List of wildcard matches')
|
|
34
34
|
|
|
35
35
|
args = parser.parse_args()
|
skilleter_thingy/phototidier.py
CHANGED
|
@@ -52,7 +52,7 @@ def parse_command_line():
|
|
|
52
52
|
|
|
53
53
|
parser = argparse.ArgumentParser(description='Re-organise photos into (hopefully) the correct folders.')
|
|
54
54
|
|
|
55
|
-
parser.add_argument('-
|
|
55
|
+
parser.add_argument('--dry-run', '-D', action='store_true', help='Report what files would be moved, without actually moving them')
|
|
56
56
|
parser.add_argument('path', nargs=1, help='Path to the picture storage directory')
|
|
57
57
|
|
|
58
58
|
args = parser.parse_args()
|
skilleter_thingy/readable.py
CHANGED
|
@@ -52,6 +52,7 @@ TF_MISC_REGEX = \
|
|
|
52
52
|
{ 'regex': re.compile(r'"(.*:.*)"( = ".*")'), 'replace': r'\1\2'},
|
|
53
53
|
{ 'regex': re.compile(r'"(.*:.*)"( = \[$)'), 'replace': r'\1\2'},
|
|
54
54
|
{ 'regex': re.compile(r'^last "terraform apply":$'), 'replace':r'last "terraform apply" which may have affected this plan:'},
|
|
55
|
+
{ 'find': ' ~ ', 'replace': ' * '},
|
|
55
56
|
]
|
|
56
57
|
|
|
57
58
|
TF_IGNORE_LIST = [
|
skilleter_thingy/remdir.py
CHANGED
|
@@ -37,11 +37,11 @@ def main():
|
|
|
37
37
|
# Parse the command line
|
|
38
38
|
|
|
39
39
|
parser = argparse.ArgumentParser(description='Remove empty directories')
|
|
40
|
-
parser.add_argument('-
|
|
40
|
+
parser.add_argument('--dry-run', '-D', action='store_true', help='Dry-run - report what would be done without doing anything')
|
|
41
41
|
parser.add_argument('--debug', action='store_true', help='Output debug information')
|
|
42
42
|
parser.add_argument('--verbose', action='store_true', help='Output verbose information')
|
|
43
|
-
parser.add_argument('
|
|
44
|
-
parser.add_argument('
|
|
43
|
+
parser.add_argument('--ignore', '-I', action='append', help='Files to ignore when considering whether a directory is empty')
|
|
44
|
+
parser.add_argument('--keep', '-K', action='append', help='Directories that should be kept even if they are empty')
|
|
45
45
|
parser.add_argument('dirs', nargs='+', help='Directories to prune')
|
|
46
46
|
args = parser.parse_args()
|
|
47
47
|
|
skilleter_thingy/strreplace.py
CHANGED
|
@@ -20,7 +20,7 @@ def main():
|
|
|
20
20
|
""" Main function """
|
|
21
21
|
|
|
22
22
|
parser = argparse.ArgumentParser(description='Textual search and replace')
|
|
23
|
-
parser.add_argument('
|
|
23
|
+
parser.add_argument('--inplace', '-i', action='store_true', help='Do an in-place search and replace on the input file')
|
|
24
24
|
parser.add_argument('search', nargs=1, action='store', help='Search text')
|
|
25
25
|
parser.add_argument('replace', nargs=1, action='store', help='Replacment text')
|
|
26
26
|
parser.add_argument('infile', nargs='?', action='store', help='Input file')
|
skilleter_thingy/trimpath.py
CHANGED
|
@@ -26,7 +26,7 @@ def main():
|
|
|
26
26
|
|
|
27
27
|
parser = argparse.ArgumentParser(description='Trim a path for display to a specified with by replacing intermediate directory names with "..."')
|
|
28
28
|
|
|
29
|
-
parser.add_argument('
|
|
29
|
+
parser.add_argument('--width', '-w', default=None, help='Specify the width to trim to the path to. Default is 25% of the current console width')
|
|
30
30
|
parser.add_argument('path', nargs='?', default=None, help='The path to trim. Default is the current directory')
|
|
31
31
|
parser.add_argument('--debug', action='store_true', help='Enable debug output')
|
|
32
32
|
|
skilleter_thingy/xchmod.py
CHANGED
|
@@ -73,7 +73,7 @@ def make_public():
|
|
|
73
73
|
|
|
74
74
|
parser.add_argument('--debug', action='store_true', help='Output the list of files (if any) that need to be made publically writeable')
|
|
75
75
|
parser.add_argument('--verbose', action='store_true', help='List files as they are updated')
|
|
76
|
-
parser.add_argument('
|
|
76
|
+
parser.add_argument('--recursive', '-R', action='store_true', help='Operate recursively')
|
|
77
77
|
parser.add_argument('mode', help='Mode to set')
|
|
78
78
|
parser.add_argument('paths', nargs='+', help='List of directory paths to search')
|
|
79
79
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: skilleter_thingy
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.92
|
|
4
4
|
Summary: A collection of useful utilities, mainly aimed at making Git more friendly
|
|
5
5
|
Author-email: John Skilleter <john@skilleter.org.uk>
|
|
6
6
|
Project-URL: Home, https://skilleter.org.uk
|
|
@@ -18,6 +18,7 @@ Requires-Dist: pyaml
|
|
|
18
18
|
Requires-Dist: pygit2
|
|
19
19
|
Requires-Dist: python-dateutil
|
|
20
20
|
Requires-Dist: requests
|
|
21
|
+
Requires-Dist: filetype
|
|
21
22
|
|
|
22
23
|
# Thingy
|
|
23
24
|
|
|
@@ -49,7 +50,9 @@ The multigit command line format is:
|
|
|
49
50
|
|
|
50
51
|
Where COMMAND is an internal multigit command if it starts with a '+' and is a git command otherwise.
|
|
51
52
|
|
|
52
|
-
By default, when
|
|
53
|
+
By default, when multigit is invoked with a git command, it runs a the command in each of the working trees selected by the command line options passed to multigit (if no options are specified then the command is run in all the working trees.
|
|
54
|
+
|
|
55
|
+
The command takes a number of options that can be used to select the list of working trees that each of the subcommands that it supports runs in:
|
|
53
56
|
|
|
54
57
|
*--repos / -r* Allows a list of working trees to be specfied, either as the full or relative path, the name or a wildcard.
|
|
55
58
|
|
|
@@ -57,11 +60,11 @@ By default, when a multigit command, other than `init` is run, it runs a git com
|
|
|
57
60
|
|
|
58
61
|
*--branched / -b* Run only working trees where the current branch that is checked out is NOT the default branch
|
|
59
62
|
|
|
60
|
-
Multigit supports a small list of subcommands:
|
|
63
|
+
Multigit supports a small list of subcommands, each of which are prefixed with a `+` to distinguish them from Git commands:
|
|
61
64
|
|
|
62
65
|
*+init* - Create or update the configuration file
|
|
63
66
|
|
|
64
|
-
*+dir* - Given the name of a working tree,
|
|
67
|
+
*+dir* - Given the name of a working tree, output the location within the multigit tree of that working tree if the name matches uniquely, or the name of the directory where the multigit configuration file resides if no parameter is specified.
|
|
65
68
|
|
|
66
69
|
*+config* - Print the name and location of the multigit configuration file.
|
|
67
70
|
|
|
@@ -69,23 +72,17 @@ Any command not prefixed with '+' is run in each of the working trees (filtered
|
|
|
69
72
|
|
|
70
73
|
For example; `multigit -m commit -ab` would run `git commit -a` in each of the working trees that is branched and contains modified files.
|
|
71
74
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
## ggit
|
|
75
|
-
|
|
76
|
-
Run a git command in all working trees under the current directory (note that this is not related to multigit).
|
|
75
|
+
The `+dir` command can be used with shell aliases (or their equivalent in the user's shell of choice) to create an alias to run, for example, `cd (multigit +dir "$@")` (Bash) or `cd (multigit +dir $argv)` (for the Fish shell) that would cd to the top level direcory.
|
|
77
76
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
Run 'git grep' in all repos under the current directory (note that this is not related to multigit).
|
|
77
|
+
# Miscellaneous Git Utilities
|
|
81
78
|
|
|
82
79
|
## gitprompt
|
|
83
80
|
|
|
84
|
-
Output a string containing colour-coded shell nesting level, current directory and git working tree status (used in the shell prompt).
|
|
81
|
+
Output a string containing colour-coded shell nesting level, current directory and git working tree status (intended to be used in the shell prompt).
|
|
85
82
|
|
|
86
83
|
# Git Extensions
|
|
87
84
|
|
|
88
|
-
Due to the way that the git command works, these can be run as they were additional git subcommands
|
|
85
|
+
Due to the way that the git command works, these can be run as they were additional git subcommands.
|
|
89
86
|
|
|
90
87
|
## git ca
|
|
91
88
|
|
|
@@ -115,16 +112,6 @@ Output the top level directory of the git working tree or return an error if we
|
|
|
115
112
|
|
|
116
113
|
Console-based git change review tool.
|
|
117
114
|
|
|
118
|
-
## GitLab Commands
|
|
119
|
-
|
|
120
|
-
### git mr
|
|
121
|
-
|
|
122
|
-
Push a feature branch to GitLab and create a merge request
|
|
123
|
-
|
|
124
|
-
### gl
|
|
125
|
-
|
|
126
|
-
Command line for GitLab
|
|
127
|
-
|
|
128
115
|
# General Commands
|
|
129
116
|
|
|
130
117
|
## addpath
|
|
@@ -137,9 +124,7 @@ Stop or kill docker instances and/or remove docker images.
|
|
|
137
124
|
|
|
138
125
|
## ffind
|
|
139
126
|
|
|
140
|
-
Simple file find utility
|
|
141
|
-
|
|
142
|
-
Implements the functionality of the find command that is regularly used in a simpler fashion and ignores all the options that nobody ever uses.
|
|
127
|
+
Simple file find utility - replaces the `find` command with something that is more human-friendly.
|
|
143
128
|
|
|
144
129
|
## linecount
|
|
145
130
|
|
|
@@ -251,3 +236,25 @@ Simple console system monitor
|
|
|
251
236
|
## window-rename
|
|
252
237
|
|
|
253
238
|
Monitor window titles and rename them to fit an alphabetical grouping in 'Appname - Document' format.
|
|
239
|
+
|
|
240
|
+
# Obsolescent Commands
|
|
241
|
+
|
|
242
|
+
These commands will probably be retired in future versions of Thingy
|
|
243
|
+
|
|
244
|
+
## ggit
|
|
245
|
+
|
|
246
|
+
Run a git command in all working trees under the current directory (superceded by multigit).
|
|
247
|
+
|
|
248
|
+
## ggrep
|
|
249
|
+
|
|
250
|
+
Run 'git grep' in all repos under the current directory (superceded by multigit).
|
|
251
|
+
|
|
252
|
+
## GitLab Commands
|
|
253
|
+
|
|
254
|
+
### git mr
|
|
255
|
+
|
|
256
|
+
Push a feature branch to GitLab and create a merge request
|
|
257
|
+
|
|
258
|
+
### gl
|
|
259
|
+
|
|
260
|
+
Command line for GitLab
|
|
@@ -4,44 +4,44 @@ skilleter_thingy/borger.py,sha256=AQX7OHeGXcUjkgyXEWE2h_oOey9eczZBbKjrreXvRAs,78
|
|
|
4
4
|
skilleter_thingy/box.py,sha256=WJlviIvPtpdDUt4MfSMcnIo9OxV3j-ua_CAtR8CTYnc,745
|
|
5
5
|
skilleter_thingy/console_colours.py,sha256=BOS9mo3jChx_FE8L1j488MDoVNgib11KjTRhrz_YRYE,1781
|
|
6
6
|
skilleter_thingy/diskspacecheck.py,sha256=7xsj4egXXV6jPhXZTe2b5rS03XAmm5uLC5TeiO1NJoE,2072
|
|
7
|
-
skilleter_thingy/docker_purge.py,sha256=
|
|
7
|
+
skilleter_thingy/docker_purge.py,sha256=j7A1W7dRrRr_VUUAiVaioQ5cM9o0AJU5MAgzYYxAsLg,3307
|
|
8
8
|
skilleter_thingy/ffind.py,sha256=XJwH27rTLI0-zGD-7s8viyg7_SZjJaq5Q7VBbJPSYSI,19235
|
|
9
|
-
skilleter_thingy/ggit.py,sha256=
|
|
10
|
-
skilleter_thingy/ggrep.py,sha256=
|
|
11
|
-
skilleter_thingy/git_br.py,sha256
|
|
12
|
-
skilleter_thingy/git_ca.py,sha256=
|
|
13
|
-
skilleter_thingy/git_cleanup.py,sha256=
|
|
14
|
-
skilleter_thingy/git_co.py,sha256=
|
|
9
|
+
skilleter_thingy/ggit.py,sha256=_gJo3Pqangdwszga2YMRshJLNI3eGFZ7aP0Fu68yqzU,2465
|
|
10
|
+
skilleter_thingy/ggrep.py,sha256=0zFyo9pxmYCuWrJgcH3Sj2hr7qOi02ijQuJ5teLbvCI,5863
|
|
11
|
+
skilleter_thingy/git_br.py,sha256=-N6TcN_KwsIGxzNejLalO126HufU8OtQfexdQydiuO4,5799
|
|
12
|
+
skilleter_thingy/git_ca.py,sha256=ewHCGLWpY8SdG_4OFdZ-YFg1GCmCesgQRXTWGMba1Ok,4944
|
|
13
|
+
skilleter_thingy/git_cleanup.py,sha256=8PAxf3ZeKYYAuiBZNHQrKd_PlYYs9_-OwrIWFCC8_xg,10201
|
|
14
|
+
skilleter_thingy/git_co.py,sha256=0i8bOHJIA4zhyy_KWVWh8HbbEuQCKUAxASGZOdr_SYY,8205
|
|
15
15
|
skilleter_thingy/git_common.py,sha256=ZjNkvIBRDGNLFYwOu9FjeqdDKJdm0sndX5QATtmq290,1879
|
|
16
16
|
skilleter_thingy/git_hold.py,sha256=Zk6YUhr08znUOdpVJkJAt0rOtrCXnKE0NHoZzoaEEGo,4616
|
|
17
|
-
skilleter_thingy/git_mr.py,sha256=
|
|
18
|
-
skilleter_thingy/git_parent.py,sha256=
|
|
19
|
-
skilleter_thingy/git_review.py,sha256=
|
|
20
|
-
skilleter_thingy/git_update.py,sha256=
|
|
17
|
+
skilleter_thingy/git_mr.py,sha256=g33FaRtJTbIQI0tfXv_a042YpGwtbg5fKw072aqjAdw,3086
|
|
18
|
+
skilleter_thingy/git_parent.py,sha256=DLy38mo06R0YDyJWQjrP8pQS-qc7tvLYcn8unKqzEiQ,2774
|
|
19
|
+
skilleter_thingy/git_review.py,sha256=e0yvDD9fIVhscnEP7hY26Od8VUbPEb7iMVMbY63Xjbc,52462
|
|
20
|
+
skilleter_thingy/git_update.py,sha256=WQm-itTpdl1it75pmHbYKDEwXd0PaqXiu6xo_Kyc1aY,14181
|
|
21
21
|
skilleter_thingy/git_wt.py,sha256=Xm4VBBXMI4GxNtH3QvF-QL9rtvo4RrlWSbNQDFpGZu8,2954
|
|
22
22
|
skilleter_thingy/gitcmp_helper.py,sha256=wutDHpBPOX8ZsXbsC5ApHxMY5tOKgD3P0eyFVs_mSAI,11214
|
|
23
23
|
skilleter_thingy/gitprompt.py,sha256=SzSMd0EGI7ftPko80Q2PipwbVA-qjU1jsmdpmTCM5GI,8912
|
|
24
24
|
skilleter_thingy/gl.py,sha256=9zbGpKxw6lX9RghLkdy-Q5sZlqtbB3uGFO04qTu1dH8,5954
|
|
25
25
|
skilleter_thingy/gphotosync.py,sha256=Vb2zYTEFp26BYdkG810SRg9afyfDqvq4CLHTk-MFf60,22388
|
|
26
|
-
skilleter_thingy/linecount.py,sha256=
|
|
27
|
-
skilleter_thingy/moviemover.py,sha256=
|
|
26
|
+
skilleter_thingy/linecount.py,sha256=ehTN6VD76i4U5k6dXuYoiqSRHI67_BP-bziklNAJSKY,4309
|
|
27
|
+
skilleter_thingy/moviemover.py,sha256=QzUAWQzQ1AWWREIhl-VMaLo2h8MMhOekBnao5jGWV1s,4470
|
|
28
28
|
skilleter_thingy/multigit.py,sha256=Ge5VpyqhFFF8TEN--M0oIN2g7A_Amht_F1KVhF1VhiU,16670
|
|
29
29
|
skilleter_thingy/photodupe.py,sha256=l0hbzSLb2Vk2ceteg-x9fHXCEE1uUuFo84hz5rsZUPA,4184
|
|
30
|
-
skilleter_thingy/phototidier.py,sha256=
|
|
30
|
+
skilleter_thingy/phototidier.py,sha256=BOu-cKHMivDlBqlRqv7sL3J6Ix1K2dxWWNcderldyZo,7818
|
|
31
31
|
skilleter_thingy/py_audit.py,sha256=xJm5k5qyeA6ii8mODa4dOkmP8L1drv94UHuxR54RsIM,4384
|
|
32
|
-
skilleter_thingy/readable.py,sha256=
|
|
33
|
-
skilleter_thingy/remdir.py,sha256=
|
|
32
|
+
skilleter_thingy/readable.py,sha256=fzToF2WsLNZC79nBS448z7WwJlzsyFX-8YHqNYDVfsA,15454
|
|
33
|
+
skilleter_thingy/remdir.py,sha256=Ueg3a6_m7y50zWykhKk6pcuz4FKPjoLJVPo9gh_dsic,4653
|
|
34
34
|
skilleter_thingy/rmdupe.py,sha256=tcX3w8XvliGwBMdSt9BUu07kuDtQEc0IiU8sCxmgzHA,17117
|
|
35
35
|
skilleter_thingy/rpylint.py,sha256=TzZ5GvWrqgTKYKZwadTvzdbX-DJ8ll4WfVJqtN6IzO0,2635
|
|
36
36
|
skilleter_thingy/splitpics.py,sha256=qRlJrqet7TEI6SodS4bkuKXQUpOdMaqmjE4c1CR7ouo,3266
|
|
37
|
-
skilleter_thingy/strreplace.py,sha256=
|
|
37
|
+
skilleter_thingy/strreplace.py,sha256=zMhqC38KF0BddTsRM5Pa99HU3KXvxXg942qxRK-LALA,2539
|
|
38
38
|
skilleter_thingy/sysmon.py,sha256=XRZG6EVSzoVYan_N16qVB1l1RaU51uvLWlRA0CDjC54,11348
|
|
39
39
|
skilleter_thingy/tfm.py,sha256=xMsqcuNJ32PwKF5vO3SO6etlbJKbCLUJhSdC2w0clwE,33829
|
|
40
40
|
skilleter_thingy/tfparse.py,sha256=u1IZH2J_WH1aORyMozKSI2JKok7_S1MMJhiobzmhlUI,2988
|
|
41
|
-
skilleter_thingy/trimpath.py,sha256=
|
|
41
|
+
skilleter_thingy/trimpath.py,sha256=vJgPKF5zTC1HnLEViucB4JVPIGbwLEuhWNxn9FcWOlM,2294
|
|
42
42
|
skilleter_thingy/venv_create.py,sha256=lMcGvWNwP-ZlyPJ1eZU-PHNOnscZHjtjhoT6sLfhIU4,1153
|
|
43
43
|
skilleter_thingy/window_rename.py,sha256=dCBgZqih_3YKHt35hsOAhARFp3QxOi8w8huC63sqJK8,3128
|
|
44
|
-
skilleter_thingy/xchmod.py,sha256=
|
|
44
|
+
skilleter_thingy/xchmod.py,sha256=T89xiH_po0nvH5T1AGgQOD5yhjKd9-LcHcmez3IORww,4604
|
|
45
45
|
skilleter_thingy/yamlcheck.py,sha256=FXylZ5NtHirDlPVhVEUZUZkTugVR-g51BbjaN06akAc,2868
|
|
46
46
|
skilleter_thingy/thingy/__init__.py,sha256=rVPTxm8L5w52U0YdTd7r_D44SBP7pS3JCJtsf0iIsow,110
|
|
47
47
|
skilleter_thingy/thingy/colour.py,sha256=-I5HOfWZNVxN85DjNPpzYLIUlzGrzMr3oLRwim7O6us,7103
|
|
@@ -61,9 +61,9 @@ skilleter_thingy/thingy/run.py,sha256=6SNKWF01fSxzB10GMU9ajraXYZqAL1w0PXkqjJdr1U
|
|
|
61
61
|
skilleter_thingy/thingy/tfm_pane.py,sha256=oqy5zBzKwfbjbGqetbbhpKi4x5He7sl4qkmhUeqtdZc,19789
|
|
62
62
|
skilleter_thingy/thingy/tidy.py,sha256=71DCyj0VJrj52RmjQyj1eOiQJIfy5EIPHuThOrS6ZTA,5876
|
|
63
63
|
skilleter_thingy/thingy/venv_template.py,sha256=SsVNvSwojd8NnFeQaZPCRQYTNdwJRplpZpygbUEXRnY,1015
|
|
64
|
-
skilleter_thingy-0.0.
|
|
65
|
-
skilleter_thingy-0.0.
|
|
66
|
-
skilleter_thingy-0.0.
|
|
67
|
-
skilleter_thingy-0.0.
|
|
68
|
-
skilleter_thingy-0.0.
|
|
69
|
-
skilleter_thingy-0.0.
|
|
64
|
+
skilleter_thingy-0.0.92.dist-info/LICENSE,sha256=ljOS4DjXvqEo5VzGfdaRwgRZPbNScGBmfwyC8PChvmQ,32422
|
|
65
|
+
skilleter_thingy-0.0.92.dist-info/METADATA,sha256=au3jgzKaEu5F-JiZre_gFLBzP8tP_CtSiphrEj7IE34,8894
|
|
66
|
+
skilleter_thingy-0.0.92.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
|
67
|
+
skilleter_thingy-0.0.92.dist-info/entry_points.txt,sha256=u5ymS-KPljIGTnprV5yJsAjz7qgeT2BZ-Qo_Con_PFM,2145
|
|
68
|
+
skilleter_thingy-0.0.92.dist-info/top_level.txt,sha256=8-JhgToBBiWURunmvfpSxEvNkDHQQ7r25-aBXtZv61g,17
|
|
69
|
+
skilleter_thingy-0.0.92.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|