| #SPDX-FileCopyrightText: 2020 Anish Singhani |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| # SPDX-License-Identifier: Apache-2.0 |
| import os |
| import subprocess |
| |
| FIND_CMD = "find . -type f -size +99M" |
| EXCLUDE = [".git"] |
| |
| proc = subprocess.Popen(FIND_CMD, shell=True, stdout=subprocess.PIPE) |
| proc.wait() |
| files = [x.decode().strip() for x in proc.stdout.readlines() if len(x.strip()) > 10] |
| |
| print("Found large files:") |
| print("\n".join(files)) |
| |
| basedir = os.getcwd() |
| |
| for file in files: |
| if any([x in file for x in EXCLUDE]): |
| print("Skipping {}...".format(file)) |
| continue |
| |
| inp = "" |
| while len(inp.strip()) < 1: |
| inp = input("Compress file {} [y/n]? ".format(file)) |
| |
| if inp != "y": |
| print("Skipping {}...".format(file)) |
| continue |
| |
| dirname, filename = os.path.split(file) |
| print("Entering {}".format(dirname, filename)) |
| os.chdir(dirname) |
| |
| subprocess.Popen("ls -1 | grep {}".format(filename), shell=True).wait() |
| os.system("gzip {}".format(filename)) |
| subprocess.Popen("ls -1 | grep {}".format(filename), shell=True).wait() |
| |
| os.chdir(basedir) |
| print("Done compressing {}".format(filename)) |
| |