aws_lambda_builders/workflows/ruby_bundler/utils.py (25 lines of code) (raw):
"""
Commonly used utilities
"""
import os
import platform
import shutil
import subprocess
class OSUtils(object):
"""
Wrapper around file system functions, to make it easy to
unit test actions in memory
"""
def popen(self, command, stdout=None, stderr=None, env=None, cwd=None):
p = subprocess.Popen(command, stdout=stdout, stderr=stderr, env=env, cwd=cwd)
return p
def joinpath(self, *args):
return os.path.join(*args)
@property
def pipe(self):
return subprocess.PIPE
def dirname(self, path):
return os.path.dirname(path)
def abspath(self, path):
return os.path.abspath(path)
def is_windows(self):
return platform.system().lower() == "windows"
def directory_exists(self, dirpath):
return os.path.exists(dirpath) and os.path.isdir(dirpath)
def remove_directory(self, dirpath):
shutil.rmtree(dirpath)
def get_bundle_dir(self, cwd):
return os.path.join(cwd, ".bundle")