skilleter-thingy 0.1.6__tar.gz → 0.1.8__tar.gz
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-0.1.6 → skilleter_thingy-0.1.8}/PKG-INFO +4 -3
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/README.md +1 -1
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/pyproject.toml +1 -1
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/multigit.py +81 -68
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/thingy/tidy.py +3 -2
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy.egg-info/PKG-INFO +4 -3
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/LICENSE +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/setup.cfg +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/__init__.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/addpath.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/borger.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/console_colours.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/diskspacecheck.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/docker_purge.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/ffind.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/ggit.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/ggrep.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/git_br.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/git_ca.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/git_cleanup.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/git_co.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/git_common.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/git_hold.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/git_mr.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/git_parent.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/git_review.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/git_update.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/git_wt.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/gitcmp_helper.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/gitprompt.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/gl.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/gphotosync.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/linecount.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/moviemover.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/photodupe.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/phototidier.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/py_audit.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/readable.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/remdir.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/rmdupe.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/rpylint.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/splitpics.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/strreplace.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/sysmon.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/tfm.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/tfparse.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/thingy/__init__.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/thingy/colour.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/thingy/dc_curses.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/thingy/dc_defaults.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/thingy/dc_util.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/thingy/dircolors.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/thingy/docker.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/thingy/files.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/thingy/git.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/thingy/git2.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/thingy/gitlab.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/thingy/path.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/thingy/popup.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/thingy/process.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/thingy/run.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/thingy/tfm_pane.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/thingy/venv_template.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/trimpath.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/venv_create.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/window_rename.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/xchmod.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy/yamlcheck.py +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy.egg-info/SOURCES.txt +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy.egg-info/dependency_links.txt +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy.egg-info/entry_points.txt +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy.egg-info/requires.txt +0 -0
- {skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: skilleter_thingy
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.8
|
|
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
|
|
@@ -19,6 +19,7 @@ Requires-Dist: pygit2
|
|
|
19
19
|
Requires-Dist: python-dateutil
|
|
20
20
|
Requires-Dist: requests
|
|
21
21
|
Requires-Dist: filetype
|
|
22
|
+
Dynamic: license-file
|
|
22
23
|
|
|
23
24
|
# Thingy
|
|
24
25
|
|
|
@@ -103,7 +104,7 @@ Multigit supports a small list of subcommands, each of which are prefixed with a
|
|
|
103
104
|
|
|
104
105
|
`+init` - Create or update the configuration file
|
|
105
106
|
|
|
106
|
-
`+dir` - Given the name of a working tree, output
|
|
107
|
+
`+dir NAME` - Given the name of a working tree, output relative path(s) to one or more matching working trees. If `NAME` does NOT contains wildcard characters (`*` or `?`) then matching takes place as if `*` were prefixed and appended to it, otherwise, the wildcards are used as specified. If `NAME` is not specified then the location of the directory where the multigit configuration file resides is output.
|
|
107
108
|
|
|
108
109
|
`+config` - Print the name and location of the multigit configuration file.
|
|
109
110
|
|
|
@@ -81,7 +81,7 @@ Multigit supports a small list of subcommands, each of which are prefixed with a
|
|
|
81
81
|
|
|
82
82
|
`+init` - Create or update the configuration file
|
|
83
83
|
|
|
84
|
-
`+dir` - Given the name of a working tree, output
|
|
84
|
+
`+dir NAME` - Given the name of a working tree, output relative path(s) to one or more matching working trees. If `NAME` does NOT contains wildcard characters (`*` or `?`) then matching takes place as if `*` were prefixed and appended to it, otherwise, the wildcards are used as specified. If `NAME` is not specified then the location of the directory where the multigit configuration file resides is output.
|
|
85
85
|
|
|
86
86
|
`+config` - Print the name and location of the multigit configuration file.
|
|
87
87
|
|
|
@@ -141,6 +141,14 @@ def error(msg, status=1):
|
|
|
141
141
|
|
|
142
142
|
################################################################################
|
|
143
143
|
|
|
144
|
+
def verbose(args, msg):
|
|
145
|
+
"""Output a message to stderr if running verbosely"""
|
|
146
|
+
|
|
147
|
+
if args.verbose:
|
|
148
|
+
colour.write(f'>>>{msg}', stream=sys.stderr)
|
|
149
|
+
|
|
150
|
+
################################################################################
|
|
151
|
+
|
|
144
152
|
def absolute_repo_path(args, relative_path=''):
|
|
145
153
|
"""Given a path relative to the multigit configuration file, return
|
|
146
154
|
the absolute path thereto"""
|
|
@@ -149,6 +157,14 @@ def absolute_repo_path(args, relative_path=''):
|
|
|
149
157
|
|
|
150
158
|
################################################################################
|
|
151
159
|
|
|
160
|
+
def relative_repo_path(args, relative_path=''):
|
|
161
|
+
"""Given a path relative to the multigit configuration file, return
|
|
162
|
+
the relative path from the current directory"""
|
|
163
|
+
|
|
164
|
+
return os.path.relpath(absolute_repo_path(args, relative_path))
|
|
165
|
+
|
|
166
|
+
################################################################################
|
|
167
|
+
|
|
152
168
|
def find_configuration(default_config_file):
|
|
153
169
|
"""If the configuration file name has path elements, try and read it, otherwise
|
|
154
170
|
search up the directory tree looking for the configuration file.
|
|
@@ -432,9 +448,13 @@ def mg_dir(args, config, console):
|
|
|
432
448
|
_ = console
|
|
433
449
|
_ = config
|
|
434
450
|
|
|
451
|
+
verbose(args, f'dir: Parameters: {", ".join(args.parameters)}')
|
|
452
|
+
|
|
435
453
|
if len(args.parameters) > 1:
|
|
436
454
|
error('The +dir command takes no more than one parameter - the name of the working tree to search for')
|
|
437
455
|
|
|
456
|
+
# TODO: mg_dir _should_ use these options
|
|
457
|
+
|
|
438
458
|
if args.modified or args.branched or args.tag or args.subdirectories:
|
|
439
459
|
error('The "--tag", "--modified" "--sub", and "--branched" options cannot be used with the "dir" subcommand')
|
|
440
460
|
|
|
@@ -443,29 +463,25 @@ def mg_dir(args, config, console):
|
|
|
443
463
|
|
|
444
464
|
if args.parameters:
|
|
445
465
|
location = []
|
|
446
|
-
wild_prefix_location = []
|
|
447
466
|
wild_location = []
|
|
448
467
|
|
|
449
468
|
search_name = args.parameters[0]
|
|
450
469
|
|
|
451
|
-
# Search for exact matches, matches
|
|
452
|
-
#
|
|
470
|
+
# Search for exact matches, or matches that contain the search term if it
|
|
471
|
+
# doesn't already contain a wildcard
|
|
453
472
|
|
|
454
473
|
for repo in select_git_repos(args, config):
|
|
455
474
|
if fnmatch.fnmatch(repo['repo name'], search_name):
|
|
456
475
|
location.append(repo.name)
|
|
457
476
|
|
|
458
477
|
elif '*' not in search_name:
|
|
459
|
-
if fnmatch.fnmatch(repo['repo name'], f'*{search_name}'):
|
|
460
|
-
wild_prefix_location.append(repo.name)
|
|
461
|
-
|
|
462
|
-
elif fnmatch.fnmatch(repo['repo name'], f'*{search_name}*'):
|
|
478
|
+
if fnmatch.fnmatch(repo['repo name'], f'*{search_name}*'):
|
|
463
479
|
wild_location.append(repo.name)
|
|
464
480
|
|
|
465
481
|
# Look for a single exact match, a prefix with '*' match or prefix+suffix
|
|
466
482
|
|
|
467
483
|
destination = None
|
|
468
|
-
for destinations in (location,
|
|
484
|
+
for destinations in (location, wild_location):
|
|
469
485
|
if len(destinations) == 1:
|
|
470
486
|
destination = destinations
|
|
471
487
|
break
|
|
@@ -476,11 +492,7 @@ def mg_dir(args, config, console):
|
|
|
476
492
|
if not destination:
|
|
477
493
|
error(f'No matches with [BLUE:{search_name}]')
|
|
478
494
|
|
|
479
|
-
|
|
480
|
-
dest_list = "\n\t".join([os.path.relpath(d) for d in destination])
|
|
481
|
-
error(f'Multiple matches with [BLUE:{search_name}]: \n\t{dest_list}')
|
|
482
|
-
|
|
483
|
-
colour.write(absolute_repo_path(args, destination[0]))
|
|
495
|
+
colour.write("\n".join([relative_repo_path(args, d) for d in destination]))
|
|
484
496
|
|
|
485
497
|
else:
|
|
486
498
|
colour.write(os.path.dirname(args.configuration_file))
|
|
@@ -578,82 +590,83 @@ def parse_command_line():
|
|
|
578
590
|
|
|
579
591
|
args = Arguments()
|
|
580
592
|
|
|
581
|
-
#
|
|
582
|
-
|
|
583
|
-
argv = []
|
|
593
|
+
# Parse the command line, setting options in the args dataclass appropriately
|
|
584
594
|
|
|
585
|
-
|
|
586
|
-
if arg[0] != '-' or arg.startswith('--'):
|
|
587
|
-
argv.append(arg)
|
|
588
|
-
else:
|
|
589
|
-
for c in arg[1:]:
|
|
590
|
-
argv.append('-' + c)
|
|
595
|
+
arg_list = sys.argv[1:]
|
|
591
596
|
|
|
592
|
-
|
|
597
|
+
while arg_list and arg_list[0].startswith('-'):
|
|
598
|
+
# Split a parameter into a list, so --x becomes [x] but -xyz becomes [x, y, z]
|
|
593
599
|
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
600
|
+
arg_entry = arg_list.pop(0)
|
|
601
|
+
if arg_entry.startswith('--'):
|
|
602
|
+
params = [arg_entry[2:]]
|
|
603
|
+
else:
|
|
604
|
+
params = list(arg_entry[1:])
|
|
597
605
|
|
|
598
|
-
|
|
599
|
-
|
|
606
|
+
while params:
|
|
607
|
+
param = params.pop(0)
|
|
600
608
|
|
|
601
|
-
|
|
602
|
-
|
|
609
|
+
if param in ('verbose', 'v'):
|
|
610
|
+
args.verbose = True
|
|
603
611
|
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
i += 1
|
|
607
|
-
args.default_configuration_file = argv[i]
|
|
608
|
-
except IndexError:
|
|
609
|
-
error('--config - missing configuration file parameter')
|
|
612
|
+
elif param in ('quiet', 'q'):
|
|
613
|
+
args.quiet = True
|
|
610
614
|
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
615
|
+
elif param in ('config', 'c'):
|
|
616
|
+
if params:
|
|
617
|
+
error('--config - missing configuration file parameter')
|
|
618
|
+
else:
|
|
619
|
+
try:
|
|
620
|
+
args.default_configuration_file = arg_list.pop(0)
|
|
621
|
+
except IndexError:
|
|
622
|
+
error('--config - missing configuration file parameter')
|
|
617
623
|
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
+
elif param in ('repos', 'r'):
|
|
625
|
+
if params:
|
|
626
|
+
error('--repos - missing repo parameter')
|
|
627
|
+
try:
|
|
628
|
+
args.repos.append(arg_list.pop(0))
|
|
629
|
+
except IndexError:
|
|
630
|
+
error('--repos - missing repo parameter')
|
|
624
631
|
|
|
625
|
-
|
|
626
|
-
|
|
632
|
+
elif param in ('tag', 't'):
|
|
633
|
+
if params:
|
|
634
|
+
error('--tag - missing tag parameter')
|
|
635
|
+
try:
|
|
636
|
+
args.tag.append(arg_list.pop(0))
|
|
637
|
+
except IndexError:
|
|
638
|
+
error('--tag - missing tag parameter')
|
|
627
639
|
|
|
628
|
-
|
|
629
|
-
|
|
640
|
+
elif param in ('modified', 'm'):
|
|
641
|
+
args.modified = True
|
|
630
642
|
|
|
631
|
-
|
|
632
|
-
|
|
643
|
+
elif param in ('branched', 'b'):
|
|
644
|
+
args.branched = True
|
|
633
645
|
|
|
634
|
-
|
|
635
|
-
|
|
646
|
+
elif param in ('sub', 's'):
|
|
647
|
+
args.subdirectories = True
|
|
636
648
|
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
sys.exit(0)
|
|
649
|
+
elif param in ('continue', 'C'):
|
|
650
|
+
args.error_continue = True
|
|
640
651
|
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
break
|
|
652
|
+
elif param in ('help', 'h'):
|
|
653
|
+
colour.write(HELP_INFO)
|
|
654
|
+
sys.exit(0)
|
|
645
655
|
|
|
646
|
-
|
|
656
|
+
else:
|
|
657
|
+
error(f'Invalid option: "{param}"')
|
|
647
658
|
|
|
648
659
|
# After the options, we either have a multigit command (prefixed with '+') or a git command
|
|
649
660
|
# followed by parameter
|
|
650
661
|
|
|
651
662
|
try:
|
|
652
|
-
|
|
653
|
-
|
|
663
|
+
command = arg_list.pop(0)
|
|
664
|
+
|
|
665
|
+
if command[0] == '+':
|
|
666
|
+
args.command = command[1:]
|
|
654
667
|
args.internal_command = True
|
|
655
668
|
else:
|
|
656
|
-
args.command =
|
|
669
|
+
args.command = command
|
|
657
670
|
args.internal_command = False
|
|
658
671
|
|
|
659
672
|
except IndexError:
|
|
@@ -661,7 +674,7 @@ def parse_command_line():
|
|
|
661
674
|
|
|
662
675
|
# Save the command parameters
|
|
663
676
|
|
|
664
|
-
args.parameters =
|
|
677
|
+
args.parameters = arg_list
|
|
665
678
|
|
|
666
679
|
# Locate the configuration file
|
|
667
680
|
|
|
@@ -29,7 +29,8 @@ import re
|
|
|
29
29
|
|
|
30
30
|
ANSI_REGEXES = [
|
|
31
31
|
re.compile(r'\x1b\[([0-9][0-9;]*)*m'),
|
|
32
|
-
re.compile(r'\x1b\[m')
|
|
32
|
+
re.compile(r'\x1b\[m'),
|
|
33
|
+
re.compile(r'\x1b\[[0-9][A-Z]'),
|
|
33
34
|
]
|
|
34
35
|
|
|
35
36
|
# Match and ANSI colour control sequence and capture the colour bit
|
|
@@ -58,7 +59,7 @@ RE_TIME = [
|
|
|
58
59
|
|
|
59
60
|
{'regex': re.compile(r'[0-9]([.][0-9]*)*\s*(second[s]?)'), 'replace': '{ELAPSED}'},
|
|
60
61
|
|
|
61
|
-
{'find': '
|
|
62
|
+
{'find': '{DATE} {TIME}', 'replace': '{DATE+TIME}'},
|
|
62
63
|
{'regex': re.compile(r'[0-9]+m *[0-9]+s'), 'replace': '{ELAPSED}'},
|
|
63
64
|
]
|
|
64
65
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: skilleter_thingy
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.8
|
|
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
|
|
@@ -19,6 +19,7 @@ Requires-Dist: pygit2
|
|
|
19
19
|
Requires-Dist: python-dateutil
|
|
20
20
|
Requires-Dist: requests
|
|
21
21
|
Requires-Dist: filetype
|
|
22
|
+
Dynamic: license-file
|
|
22
23
|
|
|
23
24
|
# Thingy
|
|
24
25
|
|
|
@@ -103,7 +104,7 @@ Multigit supports a small list of subcommands, each of which are prefixed with a
|
|
|
103
104
|
|
|
104
105
|
`+init` - Create or update the configuration file
|
|
105
106
|
|
|
106
|
-
`+dir` - Given the name of a working tree, output
|
|
107
|
+
`+dir NAME` - Given the name of a working tree, output relative path(s) to one or more matching working trees. If `NAME` does NOT contains wildcard characters (`*` or `?`) then matching takes place as if `*` were prefixed and appended to it, otherwise, the wildcards are used as specified. If `NAME` is not specified then the location of the directory where the multigit configuration file resides is output.
|
|
107
108
|
|
|
108
109
|
`+config` - Print the name and location of the multigit configuration file.
|
|
109
110
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{skilleter_thingy-0.1.6 → skilleter_thingy-0.1.8}/skilleter_thingy.egg-info/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|