mirror of
https://github.com/clinton-hall/nzbToMedia.git
synced 2025-07-06 05:01:10 -07:00
Merge pull request #1466 from clinton-hall/hotix/cwd
Change current working directory prior to cleanup
This commit is contained in:
commit
c290064d34
1 changed files with 45 additions and 11 deletions
56
cleanup.py
56
cleanup.py
|
@ -1,9 +1,37 @@
|
||||||
from __future__ import print_function
|
from __future__ import print_function
|
||||||
|
|
||||||
|
import os
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
|
||||||
|
class WorkingDirectory(object):
|
||||||
|
"""Context manager for changing current working directory."""
|
||||||
|
def __init__(self, new, original=None):
|
||||||
|
self.working_directory = new
|
||||||
|
self.original_directory = os.getcwd() if original is None else original
|
||||||
|
|
||||||
|
def __enter__(self):
|
||||||
|
os.chdir(self.working_directory)
|
||||||
|
return self
|
||||||
|
|
||||||
|
def __exit__(self, exc_type, exc_val, exc_tb):
|
||||||
|
os.chdir(self.original_directory)
|
||||||
|
|
||||||
|
|
||||||
|
def module_path(module=__file__, parent=False):
|
||||||
|
try:
|
||||||
|
path = module.__file__
|
||||||
|
except AttributeError:
|
||||||
|
path = module
|
||||||
|
directory = os.path.dirname(path)
|
||||||
|
if parent:
|
||||||
|
directory = os.path.join(directory, os.pardir)
|
||||||
|
absolute = os.path.abspath(directory)
|
||||||
|
normalized = os.path.normpath(absolute)
|
||||||
|
return normalized
|
||||||
|
|
||||||
|
|
||||||
def git_clean(remove_directories=False, force=False, dry_run=False, interactive=False, quiet=False, exclude=None,
|
def git_clean(remove_directories=False, force=False, dry_run=False, interactive=False, quiet=False, exclude=None,
|
||||||
ignore_rules=False, clean_ignored=False, paths=None):
|
ignore_rules=False, clean_ignored=False, paths=None):
|
||||||
"""Execute git clean commands."""
|
"""Execute git clean commands."""
|
||||||
|
@ -78,21 +106,27 @@ def clean_folders(*paths):
|
||||||
|
|
||||||
def clean(*paths):
|
def clean(*paths):
|
||||||
"""Clean up bytecode and obsolete folders."""
|
"""Clean up bytecode and obsolete folders."""
|
||||||
print('-- Cleaning bytecode --')
|
with WorkingDirectory(module_path()) as cwd:
|
||||||
try:
|
if cwd.working_directory != cwd.original_directory:
|
||||||
result = clean_bytecode()
|
print('Changing to directory:', cwd.working_directory)
|
||||||
except SystemExit as error:
|
print('\n-- Cleaning bytecode --')
|
||||||
print(error)
|
|
||||||
else:
|
|
||||||
print(result or 'No bytecode to clean\n')
|
|
||||||
if paths:
|
|
||||||
print('-- Cleaning folders: {} --'.format(paths))
|
|
||||||
try:
|
try:
|
||||||
result = clean_folders(*paths)
|
result = clean_bytecode()
|
||||||
except SystemExit as error:
|
except SystemExit as error:
|
||||||
print(error)
|
print(error)
|
||||||
else:
|
else:
|
||||||
print(result or 'No folders to clean\n')
|
print(result or 'No bytecode to clean')
|
||||||
|
if paths:
|
||||||
|
print('\n-- Cleaning folders: {} --'.format(paths))
|
||||||
|
try:
|
||||||
|
result = clean_folders(*paths)
|
||||||
|
except SystemExit as error:
|
||||||
|
print(error)
|
||||||
|
else:
|
||||||
|
print(result or 'No folders to clean\n')
|
||||||
|
if cwd.working_directory != cwd.original_directory:
|
||||||
|
print('Returning to directory: ', cwd.original_directory)
|
||||||
|
print('\n-- Cleanup finished --\n')
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue