#!/usr/bin/env python3
# Copyright 2020 David Anderson.
# This code is hereby placed into the public domain.

# For msys2 mingw this trims off Windows C: stuff
# msys2 cannot always accept the true Windows path
# in open().
# For all else turns the path to the code directory into ...std...

#  test/canonicalpath.py in libdwarf test directory
#  scripts/canonicalpath.py in regressiontests directory

import os
import sys

def dowinb(s):
    winb="C:/msys64/"
    w= s.replace(winb,"/")
    return w

def printfixedcontent(sname,codepath):
   for line in open(sname):
       w=dowinb(line.rstrip())
       if not codepath == 'xxxx':
           s = w.replace(codepath,"...std...")
           w = s
       print(w)
   return

if __name__ == '__main__':
    #print(len(sys.argv))
    if len(sys.argv) > 3:
       s = sys.argv[1]
       codepath = sys.argv[2]
       patchwhere = sys.argv[3]
    else:
       print("BAD arg count",len(sys.argv),"to canonicalpath.py")
       sys.exit(1)
    if patchwhere == "content":
        printfixedcontent(s,codepath)
        sys.exit(0)
    # We are fixing the content
    w = os.path.abspath(s)
    w= dowinb(w)
    # patchwhere is "start"
    if not codepath == 'xxxx':
        if w.startswith(codepath):
            s = w.replace(codepath,"...std...")
            w = s
    print(w)