Last active
May 2, 2018 19:42
-
-
Save givanse/8c69f55f8243733702cf7bcb0e9290a9 to your computer and use it in GitHub Desktop.
python script that tells you which local files are not part of a perforce depot
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#! /usr/bin/env python | |
# For this script to work you have to install `p4` (Helix command line client) | |
# This script will tell you if you have local files that are not part of the depot. | |
# | |
# Usage example: | |
# tools$ p4-local-status.py | |
# folder: tools | |
# p4-local-status.cmd - no such file(s). | |
# p4-local-status.py - no such file(s). | |
# foobar.md - no such file(s). | |
import sys | |
import os | |
from os import path | |
import subprocess | |
if len(sys.argv) > 1: | |
targetFolder = sys.argv[1] | |
else: | |
targetFolder = os.getcwd() | |
print 'folder: %s' % targetFolder | |
def p4fstat(filePath): | |
arguments = ['p4', 'fstat', filePath] | |
subprocess.check_output(arguments) | |
def isInP4Ignore(filename): | |
p4Ignore = ['yarn-error.log', 'yarn-cache', 'node_modules', '.cache-loader'] | |
return filename in p4Ignore | |
for root, dirnames, filenames in os.walk(targetFolder): | |
for dirname in dirnames: | |
if isInP4Ignore(dirname): | |
dirnames.remove(dirname) | |
for filename in filenames: | |
if not isInP4Ignore(filename): | |
filePath = os.path.join(root, filename) | |
p4fstat(filePath) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment