skilleter-thingy 0.2.4__tar.gz → 0.2.7__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.2.4 → skilleter_thingy-0.2.7}/PKG-INFO +1 -1
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/pyproject.toml +1 -1
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/ggit.py +0 -1
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/ggrep.py +0 -1
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/git_br.py +0 -1
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/git_ca.py +0 -1
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/git_cleanup.py +1 -2
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/git_co.py +8 -9
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/git_common.py +0 -1
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/git_hold.py +2 -3
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/git_mr.py +0 -1
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/git_parent.py +0 -1
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/git_retag.py +3 -2
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/git_review.py +0 -1
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/git_update.py +0 -1
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/git_wt.py +2 -1
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/gitcmp_helper.py +1 -1
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/gitprompt.py +0 -1
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/multigit.py +26 -35
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/rpylint.py +1 -2
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/tfparse.py +1 -1
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/thingy/docker.py +7 -5
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/thingy/files.py +2 -2
- skilleter_thingy-0.2.4/skilleter_thingy/thingy/git2.py → skilleter_thingy-0.2.7/skilleter_thingy/thingy/git.py +140 -51
- skilleter_thingy-0.2.7/skilleter_thingy/thingy/process.py +32 -0
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/thingy/run.py +43 -1
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/thingy/venv_template.py +1 -1
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/trimpath.py +1 -1
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy.egg-info/PKG-INFO +1 -1
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy.egg-info/SOURCES.txt +0 -1
- skilleter_thingy-0.2.4/skilleter_thingy/thingy/git.py +0 -1414
- skilleter_thingy-0.2.4/skilleter_thingy/thingy/process.py +0 -111
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/LICENSE +0 -0
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/README.md +0 -0
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/setup.cfg +0 -0
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/__init__.py +0 -0
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/addpath.py +0 -0
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/console_colours.py +0 -0
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/docker_purge.py +0 -0
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/ffind.py +0 -0
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/gl.py +0 -0
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/linecount.py +0 -0
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/py_audit.py +0 -0
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/readable.py +0 -0
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/remdir.py +0 -0
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/rmdupe.py +0 -0
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/strreplace.py +0 -0
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/tfm.py +0 -0
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/thingy/__init__.py +0 -0
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/thingy/colour.py +0 -0
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/thingy/dc_curses.py +0 -0
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/thingy/dc_defaults.py +0 -0
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/thingy/dc_util.py +0 -0
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/thingy/dircolors.py +0 -0
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/thingy/gitlab.py +0 -0
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/thingy/path.py +0 -0
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/thingy/popup.py +0 -0
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/thingy/tfm_pane.py +0 -0
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/thingy/tidy.py +0 -0
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/venv_create.py +0 -0
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/xchmod.py +0 -0
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy/yamlcheck.py +0 -0
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy.egg-info/dependency_links.txt +0 -0
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy.egg-info/entry_points.txt +0 -0
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy.egg-info/requires.txt +0 -0
- {skilleter_thingy-0.2.4 → skilleter_thingy-0.2.7}/skilleter_thingy.egg-info/top_level.txt +0 -0
|
@@ -14,7 +14,6 @@ import sys
|
|
|
14
14
|
import argparse
|
|
15
15
|
import logging
|
|
16
16
|
|
|
17
|
-
# TODO: Update to git2
|
|
18
17
|
import thingy.git as git
|
|
19
18
|
import thingy.colour as colour
|
|
20
19
|
|
|
@@ -152,7 +151,7 @@ def main():
|
|
|
152
151
|
|
|
153
152
|
# Has the branch got commits that haven't been merged to the master branch?
|
|
154
153
|
|
|
155
|
-
logging.info('Checking for
|
|
154
|
+
logging.info('Checking for unmerged commits on %s (against %s)', branch, args.master)
|
|
156
155
|
|
|
157
156
|
try:
|
|
158
157
|
unmerged = git.git(['log', '--no-merges', '--oneline', branch, '^%s' % args.master, '--'])
|
|
@@ -105,11 +105,11 @@ def checkout_matching_branch(args, branchname):
|
|
|
105
105
|
if args.exact:
|
|
106
106
|
commits = [branchname] if git.iscommit(branchname, remote=True) else []
|
|
107
107
|
|
|
108
|
-
logging.info(
|
|
108
|
+
logging.info('Exact match required: %s', commits)
|
|
109
109
|
elif git.iscommit(branchname, remote=True):
|
|
110
110
|
commits = [branchname]
|
|
111
111
|
|
|
112
|
-
logging.info(
|
|
112
|
+
logging.info('Exact match found for %s', branchname)
|
|
113
113
|
else:
|
|
114
114
|
commits = git.matching_branch(branchname)
|
|
115
115
|
|
|
@@ -164,7 +164,7 @@ def checkout_matching_branch(args, branchname):
|
|
|
164
164
|
colour.write(f'ERROR: Most recent commit on {commit} is {author} - Use the --force option to force-update your own branch!')
|
|
165
165
|
sys.exit(1)
|
|
166
166
|
|
|
167
|
-
colour.write('Removing existing [BLUE
|
|
167
|
+
colour.write('Removing existing [BLUE:{commit}] branch')
|
|
168
168
|
git.delete_branch(commit, force=True)
|
|
169
169
|
else:
|
|
170
170
|
colour.write(f'No corresponding remote branch [BLUE:{remote_branch}] exists')
|
|
@@ -186,7 +186,7 @@ def checkout_matching_branch(args, branchname):
|
|
|
186
186
|
print(text)
|
|
187
187
|
|
|
188
188
|
elif not commits:
|
|
189
|
-
colour.write('[BOLD]No branches or commits matching [NORMAL][BLUE]
|
|
189
|
+
colour.write(f'[BOLD]No branches or commits matching [NORMAL][BLUE]{branchname}[NORMAL]')
|
|
190
190
|
else:
|
|
191
191
|
colour.write('[BOLD]Multiple matches for [NORMAL][BLUE]%s[NORMAL]: %s' % (branchname, ', '.join(commits)))
|
|
192
192
|
|
|
@@ -198,11 +198,10 @@ def main():
|
|
|
198
198
|
|
|
199
199
|
args = parse_arguments()
|
|
200
200
|
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
checkout_matching_branch(args, args.branchname[0])
|
|
201
|
+
if args.branch:
|
|
202
|
+
git.checkout(args.branchname[0], create=True)
|
|
203
|
+
else:
|
|
204
|
+
checkout_matching_branch(args, args.branchname[0])
|
|
206
205
|
|
|
207
206
|
################################################################################
|
|
208
207
|
|
|
@@ -8,7 +8,6 @@ import argparse
|
|
|
8
8
|
import fnmatch
|
|
9
9
|
|
|
10
10
|
import thingy.colour as colour
|
|
11
|
-
# TODO: Update to git2
|
|
12
11
|
import thingy.git as git
|
|
13
12
|
|
|
14
13
|
################################################################################
|
|
@@ -61,7 +60,7 @@ def archive_branches(branches):
|
|
|
61
60
|
for branch in branches:
|
|
62
61
|
tag_name = archive_tag_name(branch)
|
|
63
62
|
|
|
64
|
-
git.
|
|
63
|
+
git.tag_apply(tag_name, branch)
|
|
65
64
|
git.delete_branch(branch, force=True)
|
|
66
65
|
|
|
67
66
|
for remote in git.remotes():
|
|
@@ -107,7 +106,7 @@ def restore_archive_branches(branches):
|
|
|
107
106
|
archive_tag_names.append(archive_tag)
|
|
108
107
|
|
|
109
108
|
git.checkout(branch, commit=archive_tag)
|
|
110
|
-
git.
|
|
109
|
+
git.tag_delete(archive_tag)
|
|
111
110
|
|
|
112
111
|
for remote in git.remotes():
|
|
113
112
|
git.push(repository=remote, delete=True, refspec=archive_tag_names)
|
|
@@ -13,7 +13,8 @@ import os
|
|
|
13
13
|
import sys
|
|
14
14
|
import argparse
|
|
15
15
|
|
|
16
|
-
import thingy.
|
|
16
|
+
import thingy.git as git
|
|
17
|
+
import thingy.colour as colour
|
|
17
18
|
|
|
18
19
|
################################################################################
|
|
19
20
|
|
|
@@ -44,7 +45,7 @@ def main():
|
|
|
44
45
|
|
|
45
46
|
# Apply the tag
|
|
46
47
|
|
|
47
|
-
git.tag_apply(tag, push=args.push)
|
|
48
|
+
git.tag_apply(tag, 'HEAD', push=args.push)
|
|
48
49
|
|
|
49
50
|
################################################################################
|
|
50
51
|
|
|
@@ -152,7 +152,7 @@ def main():
|
|
|
152
152
|
# Make sure that we have all the expected parameters
|
|
153
153
|
|
|
154
154
|
if args.new_perm is None:
|
|
155
|
-
sys.stderr.write('Either 1 or 7 parameters must be
|
|
155
|
+
sys.stderr.write('Either 1 or 7 parameters must be specified\n')
|
|
156
156
|
sys.exit(1)
|
|
157
157
|
|
|
158
158
|
# Make sure we can access the temporary files supplied
|
|
@@ -10,7 +10,7 @@ import subprocess
|
|
|
10
10
|
|
|
11
11
|
from dataclasses import dataclass, field
|
|
12
12
|
|
|
13
|
-
import thingy.
|
|
13
|
+
import thingy.git as git
|
|
14
14
|
import thingy.colour as colour
|
|
15
15
|
|
|
16
16
|
################################################################################
|
|
@@ -367,14 +367,14 @@ def mg_clone(args, config, console):
|
|
|
367
367
|
if os.path.isdir(directory):
|
|
368
368
|
colour.error(f'The "[BLUE:{directory}]" directory already exists', prefix=True)
|
|
369
369
|
else:
|
|
370
|
-
colour.error(f'[BLUE:{directory}]" already exists', prefix=True)
|
|
370
|
+
colour.error(f'"[BLUE:{directory}]" already exists', prefix=True)
|
|
371
371
|
|
|
372
372
|
# Clone the repo and chdir into it
|
|
373
373
|
|
|
374
374
|
if not args.quiet:
|
|
375
375
|
colour.write(f'Cloning [BOLD:{args.parameters[0]}] into [BLUE:{directory}]')
|
|
376
376
|
|
|
377
|
-
git.clone(args.parameters[0],
|
|
377
|
+
git.clone(args.parameters[0], working_tree=directory)
|
|
378
378
|
|
|
379
379
|
os.chdir(directory)
|
|
380
380
|
|
|
@@ -406,7 +406,7 @@ def mg_clone(args, config, console):
|
|
|
406
406
|
if not args.quiet:
|
|
407
407
|
colour.write(f'Cloning [BLUE:{repo["origin"]}] into [BLUE:{directory}]')
|
|
408
408
|
|
|
409
|
-
git.clone(repo['origin'],
|
|
409
|
+
git.clone(repo['origin'], working_tree=repo.name)
|
|
410
410
|
|
|
411
411
|
if not args.quiet:
|
|
412
412
|
colour.write(f' Checking out [BLUE:{repo["default branch"]}]')
|
|
@@ -450,7 +450,7 @@ def mg_init(args, config, console):
|
|
|
450
450
|
|
|
451
451
|
for entry in removals:
|
|
452
452
|
del config[entry]
|
|
453
|
-
colour.write(f'Removed [BLUE:{
|
|
453
|
+
colour.write(f'Removed [BLUE:{entry}] as it no longer exists')
|
|
454
454
|
|
|
455
455
|
# The configuration file needs to be updated
|
|
456
456
|
|
|
@@ -488,10 +488,10 @@ def mg_add(args, config, console):
|
|
|
488
488
|
else:
|
|
489
489
|
colour.error(f'"[BLUE:{location}]" already exists and was not cloned from [BLUE:{repo}]', prefix=True)
|
|
490
490
|
else:
|
|
491
|
-
colour.error(f'"[BLUE:{location}]" already exists and is not a Git working tree')
|
|
491
|
+
colour.error(f'"[BLUE:{location}]" already exists and is not a Git working tree', prefix=True)
|
|
492
492
|
|
|
493
493
|
else:
|
|
494
|
-
git.clone(repo,
|
|
494
|
+
git.clone(repo, working_tree=location)
|
|
495
495
|
|
|
496
496
|
# Add to the configuration
|
|
497
497
|
|
|
@@ -524,41 +524,32 @@ def mg_dir(args, config, console):
|
|
|
524
524
|
# If a parameter is specified, look for matches, otherwise just return the location of the
|
|
525
525
|
# configuration file
|
|
526
526
|
|
|
527
|
-
if args.parameters:
|
|
528
|
-
|
|
529
|
-
|
|
527
|
+
if not args.parameters:
|
|
528
|
+
colour.write(os.path.dirname(args.configuration_file))
|
|
529
|
+
return
|
|
530
|
+
|
|
531
|
+
locations = []
|
|
530
532
|
|
|
531
|
-
|
|
533
|
+
search_name = args.parameters[0]
|
|
532
534
|
|
|
533
|
-
|
|
534
|
-
|
|
535
|
+
# Search for wildcard matches, or matches that contain the search term if it
|
|
536
|
+
# doesn't already contain a wildcard
|
|
535
537
|
|
|
538
|
+
if '*' in search_name or '?' in search_name:
|
|
539
|
+
search_name = f'*{search_name}*'
|
|
536
540
|
for repo in select_git_repos(args, config):
|
|
537
541
|
if fnmatch.fnmatch(repo['repo name'], search_name):
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
# Look for a single exact match, a prefix with '*' match or prefix+suffix
|
|
545
|
-
|
|
546
|
-
destination = None
|
|
547
|
-
for destinations in (location, wild_location):
|
|
548
|
-
if len(destinations) == 1:
|
|
549
|
-
destination = destinations
|
|
550
|
-
break
|
|
551
|
-
|
|
552
|
-
if len(destinations) > 1:
|
|
553
|
-
destination = destinations
|
|
542
|
+
locations.append(repo.name)
|
|
543
|
+
else:
|
|
544
|
+
for repo in select_git_repos(args, config):
|
|
545
|
+
if search_name in repo['repo name']:
|
|
546
|
+
locations.append(repo.name)
|
|
554
547
|
|
|
555
|
-
|
|
556
|
-
|
|
548
|
+
if not locations:
|
|
549
|
+
colour.error(f'No matches with [BLUE:{search_name}]', prefix=True)
|
|
557
550
|
|
|
558
|
-
|
|
551
|
+
colour.write("\n".join([relative_repo_path(args, loc) for loc in locations]))
|
|
559
552
|
|
|
560
|
-
else:
|
|
561
|
-
colour.write(os.path.dirname(args.configuration_file))
|
|
562
553
|
|
|
563
554
|
################################################################################
|
|
564
555
|
|
|
@@ -637,7 +628,7 @@ def mg_run(args, config, console):
|
|
|
637
628
|
_ = console
|
|
638
629
|
|
|
639
630
|
if not args.parameters:
|
|
640
|
-
colour.error('[BOLD:+run] command - missing parameter(s)')
|
|
631
|
+
colour.error('[BOLD:+run] command - missing parameter(s)', prefix=True)
|
|
641
632
|
|
|
642
633
|
# Run the command in each of the working trees
|
|
643
634
|
|
|
@@ -11,7 +11,6 @@ import sys
|
|
|
11
11
|
import argparse
|
|
12
12
|
import glob
|
|
13
13
|
|
|
14
|
-
# TODO: Convert to use thingy.proc
|
|
15
14
|
import thingy.process as process
|
|
16
15
|
|
|
17
16
|
################################################################################
|
|
@@ -20,7 +19,7 @@ def main():
|
|
|
20
19
|
""" Main code. Exits directly on failure to locate source files, or returns
|
|
21
20
|
the status code from Pylint otherwise. """
|
|
22
21
|
|
|
23
|
-
# Parse the
|
|
22
|
+
# Parse the command line
|
|
24
23
|
|
|
25
24
|
parser = argparse.ArgumentParser(description='Run pylint in the current (or specified) directory/ies')
|
|
26
25
|
|
|
@@ -37,7 +37,7 @@ def main():
|
|
|
37
37
|
|
|
38
38
|
# Open the input file or use stdin and read the JSON
|
|
39
39
|
|
|
40
|
-
jsonfile = open(
|
|
40
|
+
jsonfile = open(args.infile[0], 'rt') if args.infile else sys.stdin
|
|
41
41
|
|
|
42
42
|
terraform = json.loads(jsonfile.read())
|
|
43
43
|
|
|
@@ -12,7 +12,6 @@
|
|
|
12
12
|
"""
|
|
13
13
|
################################################################################
|
|
14
14
|
|
|
15
|
-
# TODO: Convert to use thingy.proc
|
|
16
15
|
import thingy.process as process
|
|
17
16
|
|
|
18
17
|
################################################################################
|
|
@@ -32,12 +31,15 @@ def instances(all=False):
|
|
|
32
31
|
if all:
|
|
33
32
|
cmd.append('-a')
|
|
34
33
|
|
|
34
|
+
instances_list = []
|
|
35
35
|
try:
|
|
36
36
|
for result in process.run(cmd):
|
|
37
|
-
|
|
37
|
+
instances_list.append(result)
|
|
38
38
|
except process.RunError as exc:
|
|
39
39
|
raise DockerError(exc)
|
|
40
40
|
|
|
41
|
+
return instances_list
|
|
42
|
+
|
|
41
43
|
################################################################################
|
|
42
44
|
|
|
43
45
|
def stop(instance, force=False):
|
|
@@ -46,7 +48,7 @@ def stop(instance, force=False):
|
|
|
46
48
|
# TODO: force option not implemented
|
|
47
49
|
|
|
48
50
|
try:
|
|
49
|
-
process.run(['docker', 'stop', instance])
|
|
51
|
+
process.run(['docker', 'stop', instance], foreground=True)
|
|
50
52
|
except process.RunError as exc:
|
|
51
53
|
raise DockerError(exc)
|
|
52
54
|
|
|
@@ -63,7 +65,7 @@ def rm(instance, force=False):
|
|
|
63
65
|
cmd.append(instance)
|
|
64
66
|
|
|
65
67
|
try:
|
|
66
|
-
process.run(cmd)
|
|
68
|
+
process.run(cmd, foreground=True)
|
|
67
69
|
except process.RunError as exc:
|
|
68
70
|
raise DockerError(exc)
|
|
69
71
|
|
|
@@ -90,6 +92,6 @@ def rmi(image, force=False):
|
|
|
90
92
|
cmd.append(image)
|
|
91
93
|
|
|
92
94
|
try:
|
|
93
|
-
process.run(cmd)
|
|
95
|
+
process.run(cmd, foreground=True)
|
|
94
96
|
except process.RunError as exc:
|
|
95
97
|
raise DockerError(exc)
|
|
@@ -12,7 +12,6 @@
|
|
|
12
12
|
import os
|
|
13
13
|
import shutil
|
|
14
14
|
|
|
15
|
-
# TODO: Convert to use thingy.proc
|
|
16
15
|
import thingy.process as process
|
|
17
16
|
|
|
18
17
|
################################################################################
|
|
@@ -41,7 +40,8 @@ def file_type(filename, mime=False):
|
|
|
41
40
|
|
|
42
41
|
cmd.append(filename)
|
|
43
42
|
|
|
44
|
-
|
|
43
|
+
result = process.run(cmd)
|
|
44
|
+
return result[0] if result else ""
|
|
45
45
|
|
|
46
46
|
################################################################################
|
|
47
47
|
|