Add Auto-Backup

This commit is contained in:
r0n1n7an 2023-08-05 16:12:02 +08:00
parent c5b9e86374
commit 9113b09187
5 changed files with 81408 additions and 4410 deletions

77218
AOD.txt Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,4 @@
010ASTAT1.CRI
010MCM11B.7Z
010MCM11B.CRI
010MCM30B.7Z
010MCM30B.CRI
0CS7030.7Z
@ -12,9 +10,6 @@
0D9A003B.CRI
0D9A00HA.CRI
0L10CF01B0.CRI
4gpb113e.cri
4gpb115e.cri
4gpb123e.cri
AOD_LZS2_SIT1PTP_Win11.DAT
CMIT_SERVER_IP.TXT
CYUIDRG5.001
@ -48,14 +43,10 @@ E001POWW.CRI
E001POWW.IMZ
E001TAWW.CRI
E001TAWW.IMZ
E0020VWW.CRI
E0020VWW.IMZ
E0021VWW.CRI
E0021VWW.IMZ
E002IOWW.CRI
E002IOWW.IMZ
E002P8W0.CRI
E002P8W0.IMZ
E0030VWW.CRI
E0030VWW.IMZ
E0031VWW.CRI
@ -71,77 +62,19 @@ E003UGCN.IMZ
E003WHWWT.CRI
E0041VWW.CRI
E0041VWW.IMZ
E004A0WW.CRI
E004A0WW.IMZ
E004LFCN.CRI
E004LFCN.IMZ
E0051VWW.CRI
E0051VWW.IMZ
E005LFCN.CRI
E005LFCN.IMZ
E005O0DK.CRI
E005O0DK.IMZ
E005O0NL.CRI
E005O0NL.IMZ
E005ODCR.CRI
E005ODCR.IMZ
E005ODCZ.CRI
E005ODCZ.IMZ
E005ODFI.CRI
E005ODFI.IMZ
E005ODFR.CRI
E005ODFR.IMZ
E005ODGR.CRI
E005ODGR.IMZ
E005ODHB.CRI
E005ODHB.IMZ
E005ODHU.CRI
E005ODHU.IMZ
E005ODIN.CRI
E005ODIN.IMZ
E005ODNO.CRI
E005ODNO.IMZ
E005ODPL.CRI
E005ODPL.IMZ
E005ODPO.CRI
E005ODPO.IMZ
E005ODRU.CRI
E005ODRU.IMZ
E005ODSK.CRI
E005ODSK.IMZ
E005ODSL.CRI
E005ODSL.IMZ
E005ODSP.CRI
E005ODSP.IMZ
E005ODSR.CRI
E005ODSR.IMZ
E005ODSV.CRI
E005ODSV.IMZ
E005ODTR.CRI
E005ODTR.IMZ
E005ODUR.CRI
E005ODUR.IMZ
E005PDWW.CRI
E005PDWW.IMZ
E005PIWW.CRI
E005PIWW.IMZ
E006LDCN.CRI
E006LDCN.IMZ
E006ODCT.CRI
E006ODCT.IMZ
E006TAWW.CRI
E006TAWW.IMZ
E007LDCN.CRI
E007LDCN.IMZ
E008LGCN.CRI
E008LGCN.IMZ
E009P8W0.CRI
E009TAWW.CRI
E009TAWW.IMZ
E00B06WW.CRI
E00B06WW.IMZ
E00C0SWW.CRI
E00C0SWW.IMZ
E00CLGCN.CRI
E00CLGCN.IMZ
E00EP8W0B.AOD
@ -149,34 +82,19 @@ E00FLGCN.CRI
E00FLGCN.IMZ
E00FTAWW.CRI
E00FTAWW.IMZ
E00G1CWW.CRI
E00G1CWW.IMZ
E00GLGCN.CRI
E00GLGCN.IMZ
E00GTAWW.CRI
E00GTAWW.IMZ
E00HLGCN.CRI
E00HLGCN.IMZ
E00IP8WW.CRI
E00JP8WW.CRI
E00KTAWW.CRI
E00KTAWW.IMZ
E00MTAWW.CRI
E00MTAWW.IMZ
E00PLBWW.CRI
E00PLBWW.IMZ
E00PMLWW.CRI
E00PMLWW.IMZ
E00RLBWW.CRI
E00RLBWW.IMZ
E00RTAWW.CRI
E00RTAWW.IMZ
E00SL2CN.CRI
E00SL2CN.IMZ
E00UL2CN.CRI
E00UL2CN.IMZ
E00VC0WW.CRI
E00VC0WW.IMZ
E00WL2CN.CRI
E00WL2CN.IMZ
E00XL2CN.CRI
@ -189,28 +107,14 @@ E011L2CN.CRI
E011L2CN.IMZ
E011LGCN04.CRI
E011LGCN04.IMZ
E017RAWW.CRI
E017RAWW.IMZ
E01APRWW.CRI
E01APRWW.IMZ
E01HLGCN04.CRI
E01HLGCN04.IMZ
E70ALSCN0DU4729U.CRI
E70ALSCN0DU4729U.IMZ
E804DSUS.CRI
E804DSUS.IMZ
E80EP1WW.CRI
E80EP1WW.IMZ
E915MPWW.CRI
E915MPWW.IMZ
EA012RWW.CRI
EA012RWW.IMZ
EA01AAWW.CRI
EA01AAWW.IMZ
EA01WCWW.CRI
EA01WCWW.IMZ
EA02AFWW.CRI
EA02AFWW.IMZ
EA02W1HKB.AOD
EA02WCWW.CRI
EA02WCWW.IMZ
@ -218,14 +122,10 @@ EA03AFWW.CRI
EA03AFWW.IMZ
EA042RWW.CRI
EA042RWW.IMZ
EA04E0WW.CRI
EA04E0WW.IMZ
EA08E0WW.CRI
EA08E0WW.IMZ
EA0ILBCN0BT0SU1Y.CRI
EA0ILBCN0BT0SU1Y.IMZ
EA0JLWWW.CRI
EA0JLWWW.IMZ
EA0NTEWW0ANW.CRI
EA0NTEWW0ANW.IMZ
EA0QTEWW0ANW04.CRI
@ -382,34 +282,10 @@ FA01TPYL0B7U.CRI
FA01TPYL0B7U.IMZ
FA01TSII098G.CRI
FA01TSII098G.IMZ
FA01U0II.CRI
FA01U0II.IMZ
FA01U0IZ.CRI
FA01U0IZ.IMZ
FA01U1IZ0ATS.CRI
FA01U1IZ0ATS.IMZ
FA01U2II.CRI
FA01U2II.IMZ
FA01U3II.CRI
FA01U3II.IMZ
FA01U4II.CRI
FA01U4II.IMZ
FA01U5II.CRI
FA01U5II.IMZ
FA01U7II.CRI
FA01U7II.IMZ
FA01U8II.CRI
FA01U8II.IMZ
FA01U9II.CRI
FA01U9II.IMZ
FA01UCII.CRI
FA01UCII.IMZ
FA01UDII.CRI
FA01UDII.IMZ
FA01UEII.CRI
FA01UEII.IMZ
FA01UHII.CRI
FA01UHII.IMZ
FA01ULII098H.CRI
FA01ULII098H.IMZ
FA01UVIZ.CRI
@ -562,36 +438,10 @@ FA02TPYL0APR.CRI
FA02TPYL0APR.IMZ
FA02TSII098G.CRI
FA02TSII098G.IMZ
FA02U0II.CRI
FA02U0II.IMZ
FA02U0IZ.CRI
FA02U0IZ.IMZ
FA02U1II.CRI
FA02U1II.IMZ
FA02U2II.CRI
FA02U2II.IMZ
FA02U3II.CRI
FA02U3II.IMZ
FA02U4II.CRI
FA02U4II.IMZ
FA02U5II.CRI
FA02U5II.IMZ
FA02U6II.CRI
FA02U6II.IMZ
FA02U7II.CRI
FA02U7II.IMZ
FA02U8II.CRI
FA02U8II.IMZ
FA02U9II.CRI
FA02U9II.IMZ
FA02UAII.CRI
FA02UAII.IMZ
FA02UBII.CRI
FA02UBII.IMZ
FA02UFII.CRI
FA02UFII.IMZ
FA02UGII.CRI
FA02UGII.IMZ
FA02UHII.CRI
FA02UHII.IMZ
FA02UIII.CRI
@ -600,8 +450,6 @@ FA02UKII.CRI
FA02UKII.IMZ
FA02ULII098H.CRI
FA02ULII098H.IMZ
FA02UVII.CRI
FA02UVII.IMZ
FA02UVIZ.CRI
FA02UVIZ.IMZ
FA02UVL209GY.CRI
@ -688,14 +536,10 @@ FA03U8II.CRI
FA03U8II.IMZ
FA03U9II.CRI
FA03U9II.IMZ
FA03UBII.CRI
FA03UBII.IMZ
FA03UDII.CRI
FA03UDII.IMZ
FA03UEII.CRI
FA03UEII.IMZ
FA03UGII.CRI
FA03UGII.IMZ
FA03UHII.CRI
FA03UHII.IMZ
FA03UIII.CRI
@ -1406,56 +1250,26 @@ L5AE7N1210.AOD
L5AE7O1210.AOD
L62DSGA1.CRI
L62DSGA1.IMZ
L63DAJA1.CRI
L63DAJA1.IMZ
L63DALA1.CRI
L63DALA1.IMZ
L64KEFA1.CRI
L64KEFA1.IMZ
L64KESA1.CRI
L64KESA1.IMZ
L64SSJA1.CRI
L64SSJA1.IMZ
L64YVYA1.CRI
L64YVYA1.IMZ
L652OAA1.CRI
L652OAA1.IMZ
L65ZLWA1.CRI
L65ZLWA1.IMZ
L65ZLZA1.CRI
L65ZLZA1.IMZ
L67SE1A1.CRI
L67SE1A1.IMZ
L67Y54A4.CRI
L67Y54A4.IMZ
L67YTPA0.CRI
L67YTPA0.IMZ
L68MYLA1.CRI
L68MYLA1.IMZ
L68NAGA1.CRI
L68NAGA1.IMZ
L6AA3D16A1.CRI
L6AA3D16A1.IMZ
L6AA6G15A1.CRI
L6AA6G15A1.IMZ
L6AA8811A1.CRI
L6AA8811A1.IMZ
L6AA8818A1.CRI
L6AA8818A1.IMZ
L6AA881EA1.CRI
L6AA881EA1.IMZ
L6AA881FA2.CRI
L6AA881FA2.IMZ
L6AA9B11A1.CRI
L6AA9B11A1.IMZ
L6AA9B1DA1.CRI
L6AA9B1DA1.IMZ
L6AAA41GA0.CRI
L6AAA41GA0.IMZ
L6AAA41LA0.CRI
L6AAA41LA0.IMZ
L6AADB19A1.CRI
L6AADB19A1.IMZ
L6AADB1BA1.CRI
L6AADB1BA1.IMZ
L6AADB28A1.CRI
@ -1474,8 +1288,6 @@ L6AADB32A1.CRI
L6AADB32A1.IMZ
L6AADB3EA1.CRI
L6AADB3EA1.IMZ
L6AAFM12A1.CRI
L6AAFM12A1.IMZ
L6AAFM17A1.CRI
L6AAFM17A1.IMZ
L6AAJL31A1.CRI
@ -1510,8 +1322,6 @@ L6AAJL4HA0.CRI
L6AAJL4HA0.IMZ
L6AAJL4IA0.CRI
L6AAJL4IA0.IMZ
L6AAMC14A1.CRI
L6AAMC14A1.IMZ
L6AANZ26A1.CRI
L6AANZ26A1.IMZ
L6AANZ2GA2.CRI
@ -1520,8 +1330,6 @@ L6AANZ2IA1.CRI
L6AANZ2IA1.IMZ
L6AAQ72NA1.CRI
L6AAQ72NA1.IMZ
L6AATP1RA1.CRI
L6AATP1RA1.IMZ
L6AATP1YA1.CRI
L6AATP1YA1.IMZ
L6AATP45A1.CRI
@ -2115,20 +1923,12 @@ L6AFQ512A0.IMZ
L6AFQ52DA0.XMB
L6AFQ611A0.CRI
L6AFQ611A0.IMZ
L6BEPIA1.CRI
L6BEPIA1.IMZ
L6BEPKA1.CRI
L6BEPKA1.IMZ
L6BTW5A1.CRI
L6BTW5A1.IMZ
L6BTW8A1.CRI
L6BTW8A1.IMZ
L6BTWRA1.CRI
L6BTWRA1.IMZ
L6BW4AA1.CRI
L6BW4AA1.IMZ
L6BY2IA1.CRI
L6BY2IA1.IMZ
L6BY2LA1.CRI
L6BY2LA1.IMZ
L6BY2TA1.CRI
@ -2141,7 +1941,6 @@ L6VYDCA1.CRI
L6VYDCA1.IMZ
L6VYDKA1.CRI
L6VYDKA1.IMZ
LG49E1A2
LG82URA0.CRI
LG82URA0.IMZ
LG82UXA0.CRI
@ -2154,8 +1953,6 @@ LGAA1E12A0.AOD
LGAA1F12A0.AOD
LGAA1V12A0.AOD
LGAA1W12A0.AOD
LGAA4H12A2.CRI
LGAA4H12A2.IMZ
LGAA6E1KA4.CRI
LGAA6E1KA4.IMZ
LGAA8211A4.CRI
@ -2170,14 +1967,8 @@ LGAAJL1CA0.CRI
LGAAJL1CA0.IMZ
LGAAJL1LA0.CRI
LGAAJL1LA0.IMZ
LGAAKY1BA0.CRI
LGAAKY1BA0.IMZ
LGAAKY1DA0.CRI
LGAAKY1DA0.IMZ
LGAALV1SA0.CRI
LGAALV1SA0.IMZ
LGAAMS35A0.CRI
LGAAMS35A0.IMZ
LGAAMS3JA0.CRI
LGAAMS3JA0.IMZ
LGAAMS5EA0.CRI
@ -2194,18 +1985,8 @@ LGAATP12A1.CRI
LGAATP12A1.IMZ
LGAAVL19A0.CRI
LGAAVL19A0.IMZ
LGAAX914A0.CRI
LGAAX914A0.IMZ
LGAAXO11A0.CRI
LGAAXO11A0.IMZ
LGAAXO14A0.CRI
LGAAXO14A0.IMZ
LGAAXS13A0.CRI
LGAAXS13A0.IMZ
LGAAYA17A0.CRI
LGAAYA17A0.IMZ
LGAAYB12A0.CRI
LGAAYB12A0.IMZ
LGAB2U14A0.CRI
LGAB2U14A0.IMZ
LGAB2U18A0.CRI
@ -2551,24 +2332,10 @@ LGAG8K11A0.IMZ
LGAGBS1320.AOD
LGAGSM11A0.CRI
LGAGSM11A0.IMZ
LGAV65A0.CRI
LGAV65A0.IMZ
LGB44XA1.CRI
LGB44XA1.IMZ
LGBDOWA0.CRI
LGBDOWA0.IMZ
LGBDOYA0.CRI
LGBDOYA0.IMZ
LGBJZ1A2.CRI
LGBJZ1A2.IMZ
LGBJZ3A0.CRI
LGBJZ3A0.IMZ
LGBKC1A0.CRI
LGBKC1A0.IMZ
LGBSIBA0.CRI
LGBSIBA0.IMZ
LGBWD4A0.CRI
LGBWD4A0.IMZ
LXAAJL18A0.CRI
LXAAJL18A0.IMZ
LXAAJL1WA1.CRI
@ -2637,8 +2404,6 @@ M10AEDPRO.CRI
M10CF225BA.AOD
M10CF226HA.AOD
M10CF226J.AOD
M10MFMT1K.7Z
M10MFMT1K.CRI
M10R3S00AR.CRI
M10R3S00AR.IMZ
M10R3S00CR.CRI
@ -2683,18 +2448,8 @@ M10R7S00CS.AOD
M10R7S00JP.AOD
M10R7S00UK.AOD
M10R7SR00EN.AOD
M10S04ACS.CRI
M10S04ACS.WIM
M10S13ACS.AOD
M10SRE130AMD.JPG
M10SRE40AMA.7z
M10SRE40AMA.CRI
M10SRE40AMB.7Z
M10SRE40AMB.CRI
M10SRE40AMD.7z
M10SRE40AMD.CRI
M10SRE40AME.7z
M10SRE40AME.CRI
M10SRE50AMB.7Z
M10SRE50AMB.CRI
M10SRE50AMD.7Z
@ -2703,12 +2458,6 @@ M10SRE50AME.7Z
M10SRE50AME.CRI
M11ACB02B.CRI
M11ACB02B.IMZ
M9CB123A.7z
M9CB123A.CRI
M9CB124D.7Z
M9CB124D.CRI
M9CB124D0.7Z
M9CB124D0.CRI
M9CB124E0.7Z
M9CB124E0.CRI
M9CB129B.7Z
@ -2742,42 +2491,6 @@ M9CR00R1B.AOD
M9CR0XR1A.AOD
M9CR0XR1B.AOD
M9DENT07A.AOD
M9SR0020.CRI
M9SR0020.IMZ
M9SR0025.CRI
M9SR0025.IMZ
M9SR0028.CRI
M9SR0028.IMZ
M9SR002C.CRI
M9SR002C.IMZ
M9SR002H.CRI
M9SR002H.IMZ
M9SR002I.CRI
M9SR002I.IMZ
M9SR002J.CRI
M9SR002J.IMZ
M9SR002K.CRI
M9SR002K.IMZ
M9SR002L.CRI
M9SR002L.IMZ
M9SR002M.CRI
M9SR002M.IMZ
M9SR002N.CRI
M9SR002N.IMZ
M9SR002O.CRI
M9SR002O.IMZ
M9SR002P.CRI
M9SR002P.IMZ
M9SR002S.CRI
M9SR002S.IMZ
M9SR002T.CRI
M9SR002T.IMZ
M9SR002V.CRI
M9SR002V.IMZ
M9SR002W.CRI
M9SR002W.IMZ
M9SR002Y.CRI
M9SR002Y.IMZ
MEA01AAWW.CRI
MEA01AAWW.IMZ
MZ10DDT01.CRI
@ -2878,24 +2591,14 @@ SSW1A06235.SSW1A01909
SSW1A06236.SSW1A01909
SSW1A06237.SSW1A01909
SSW1A06238.SSW1A01909
W10R3S01UK.CRI
W10R3S01UK.IMZ
W10R3S09UK.CRI
W10R3S09UK.IMZ
W10R3SC3EN.CRI
W10R3SC3EN.IMZ
W10R3SC9EN.CRI
W10R3SC9EN.IMZ
W10R3SR3EN.CRI
W10R3SR3EN.IMZ
W10R3SR9EN.CRI
W10R3SR9EN.IMZ
W10R8SC02EN.CRI
W10R8SC02EN.IMZ
W10S16237REMC.7Z
W10S16237REMC.CRI
W10S16237US.CRI
W10S16237US.WIM
W10S16257REMC.7Z
W10S16257REMC.CRI
W10S16257US.CRI
@ -2906,8 +2609,6 @@ W10S16278US.CRI
W10S16278US.WIM
W10S19044AUS.CRI
W10S19044AUS.WIM
W10SPE16237.7Z
W10SPE16237.CRI
W10SPE16257.7Z
W10SPE16257.CRI
W10SPE16278.7Z
@ -2918,8 +2619,6 @@ W10SRE130BMA.7Z
W10SRE130BMA.CRI
W10SRE130BMC.7Z
W10SRE130BMC.CRI
W12SUSMT16237.CRI
W12SUSMT16237.IMZ
W12SUSMT16257.CRI
W12SUSMT16257.IMZ
W12SUSMT16278.CRI
@ -2930,22 +2629,14 @@ WM9CB176A5.7Z
WM9CB176A5.CRI
WM9CB176AA.7Z
WM9CB176AA.CRI
WM9CBE00C.7Z
WM9CBE00C.CRI
WM9CBE00F.7Z
WM9CBE00F.CRI
WM9CBE00H.7Z
WM9CBE00H.CRI
WordPad Document Scrap 'LR3ENCA3...'.shs
WordPad Document Scrap 'LZ3POJA3...'.shs
ZRECAC1X.CRI
ZRECAC1X.IMZ
ZRECAG21ARM.CRI
ZRECAG21ARM.IMZ
ZRECAG25ARMEAGLE.CRI
ZRECAG25ARMEAGLE.IMZ
ZRECAG28.CRI
ZRECAG28.IMZ
ZW00CLD003B.CRI
ZW00CLD004.CRI
ZW00CLD004.IMZ

Binary file not shown.

View File

@ -8,16 +8,20 @@ import (
"path/filepath"
"regexp"
"strings"
"time"
)
type FileInfo struct {
FileName string
FilePath string
FileName string
FileSize int64
//ModTime string
FileTime time.Time
}
var (
diffYear int = 0
bkupPath string = ""
autoBkup bool = false
exclude bool = false
aodType string = ""
aodPath string = ""
@ -27,8 +31,8 @@ var (
aodList = make([]string, 0)
criList = make([]string, 0)
moduleList = make([]string, 0)
distinctCriList = make([]string, 0)
distinctModuleList = make([]string, 0)
uniqueCriList = make([]string, 0)
uniqueModuleList = make([]string, 0)
needlessModuleList = make([]string, 0)
missingModuleList = make([]string, 0)
errAOD = make([]string, 0)
@ -42,8 +46,11 @@ var regSBID = `(?i)\S{8,}\.DAT`
func init() {
flag.BoolVar(&exclude, "x", false, "Exclude Mode")
flag.BoolVar(&autoBkup, "y", false, "Auto Backup")
flag.IntVar(&diffYear, "d", 6, "Differ Year Of File Time to Backup")
flag.StringVar(&bkupPath, "b", `D:\COMMON_BKUP`, "Path Of Backup")
flag.StringVar(&aodPath, "a", `D:\Vol1\PDLINE\PLANT1\PRELOAD\AOD`, "Path Of AODs")
flag.StringVar(&modPath, "m", `D:\Common`, "Path Of Modules")
flag.StringVar(&modPath, "m", `D:\COMMON`, "Path Of Modules")
flag.StringVar(&aodType, "t", "*", "Type Of AODs, LNB/TNB/SBID/*")
flag.Parse()
}
@ -61,15 +68,16 @@ func main() {
}
log.Printf("[MSG] Summary Loacal AODs ...\r\n")
aodInfoList, err = _SummaryAOD(aodPath, aodType)
aodInfoList, err = _SummaryAODs(aodPath, aodType)
if err != nil {
log.Printf("[ERR] Get AOD List Failed: %s\r\n", err.Error())
os.Exit(1)
}
log.Printf("[MSG] Total Local AODs: %d\r\n", len(aodInfoList))
_WriteFileFromStringSlice(".\\AOD.txt", aodList)
log.Printf("[MSG] Summary Local Modules ...\r\n")
moduleInfoList, err = _SummaryFiles(modPath)
moduleInfoList, err = _SummaryModules(modPath)
if err != nil {
log.Printf("[ERR] Get Module List Failed: %s\r\n", err.Error())
os.Exit(1)
@ -81,12 +89,12 @@ func main() {
log.Printf("[ERR] RegExp - CRI Compile Error: %s\r\n", err.Error())
os.Exit(1)
}
log.Printf("[MSG] Summary CRIs From AODs ...\r\n")
for _, aod := range aodInfoList {
aodList = append(aodList, aod.FilePath)
rdr, err := os.Open(aod.FilePath)
for _, aod := range aodList {
rdr, err := os.Open(aod)
if err != nil {
errAOD = append(errAOD, aod.FilePath)
errAOD = append(errAOD, aod)
}
buf := bufio.NewScanner(rdr)
for buf.Scan() {
@ -101,16 +109,17 @@ func main() {
}
}
log.Printf("[MSG] Total CRIs From AODs: %d\r\n", len(criList))
distinctCriList = _RemoveDuplicateElementOfSlice(criList)
log.Printf("[MSG] Distinct CRIs From AODs: %d\r\n", len(distinctCriList))
uniqueCriList = _RemoveDuplicateElementOfSlice(criList)
log.Printf("[MSG] Unique CRIs From AODs: %d\r\n", len(uniqueCriList))
regModuleName, err := regexp.Compile(`(?i)(ModuleName[0-9]{0,}|ModuleThis[0-9]{0,})=(.{1,})`)
if err != nil {
log.Printf("[ERR] RegExp - ModuleName Compile Error: %s\r\n", err.Error())
os.Exit(1)
}
log.Printf("[MSG] Summary Modules From CRIs ...\r\n")
for _, cri := range distinctCriList {
for _, cri := range uniqueCriList {
rdr, err := os.Open(modPath + "\\" + cri)
if err != nil {
errCRI = append(errCRI, modPath+"\\"+cri)
@ -128,11 +137,11 @@ func main() {
}
}
log.Printf("[MSG] Total Modules From CRIs: %d\r\n", len(moduleList))
distinctModuleList = _RemoveDuplicateElementOfSlice(moduleList)
log.Printf("[MSG] Distinct Modules From CRIs: %d\r\n", len(distinctModuleList))
uniqueModuleList = _RemoveDuplicateElementOfSlice(moduleList)
log.Printf("[MSG] Unique Modules From CRIs: %d\r\n", len(uniqueModuleList))
log.Printf("[MSG] Checking Missing Modules ...\r\n")
for _, m := range distinctModuleList {
for _, m := range uniqueModuleList {
exist := false
for _, l := range moduleInfoList {
if strings.EqualFold(m, l.FileName) {
@ -148,7 +157,7 @@ func main() {
log.Printf("[MSG] Checking Needless Modules ...\r\n")
for _, l := range moduleInfoList {
needless := true
for _, m := range distinctModuleList {
for _, m := range uniqueModuleList {
if strings.EqualFold(l.FileName, m) {
needless = false
break
@ -159,8 +168,6 @@ func main() {
}
}
_WriteFileFromStringSlice(".\\AOD.txt", aodList)
log.Printf("***** Error AODs: %d\r\n", len(errAOD))
_WriteFileFromStringSlice(".\\errAOD.txt", errAOD)
@ -172,24 +179,49 @@ func main() {
log.Printf("##### Needless Modules: %d\r\n", len(needlessModuleList))
_WriteFileFromStringSlice(".\\NeedlessModules.txt", needlessModuleList)
if autoBkup {
log.Printf("[MSG] Starting Backup Modules Older Than %d Years ...\r\n", diffYear)
_, err := os.Stat(bkupPath)
if err != nil {
err = os.MkdirAll(bkupPath, os.ModePerm)
if err != nil {
log.Printf("[ERR] Create Backup Directory Failed.\\r\n")
os.Exit(1)
}
}
for _, n := range needlessModuleList {
for _, m := range moduleInfoList {
if m.FileName == n {
if m.FileTime.AddDate(diffYear, 0, 0).Before(time.Now()) {
err := os.Rename(m.FilePath, bkupPath+"\\"+m.FileName)
if err != nil {
log.Printf("[ERR] FileName: %s; ErrMsg: %s\r\n", m.FileName, err.Error())
break
}
log.Printf("[MSG] FileName: %s; FileTime: %s\r\n", m.FileName, m.FileTime)
break
}
}
}
}
}
}
func _SummaryAOD(basePath, filter string) ([]FileInfo, error) {
func _SummaryAODs(basePath, filter string) ([]FileInfo, error) {
var err error
sortInfoList := make([]FileInfo, 0)
fileInfoList := make([]FileInfo, 0)
err = filepath.Walk(basePath, func(path string, info os.FileInfo, err error) error {
if !info.IsDir() {
var fileInfo FileInfo
fileInfo.FileName = info.Name()
fileInfo.FilePath = path
fileInfo.FileSize = info.Size()
//fileInfo.ModTime = info.ModTime().Format("2006-01-02 15:04:05")
// if !strings.Contains(fileInfo.FilePath, ".svn") {
// fileInfoList = append(fileInfoList, fileInfo)
// }
fileInfoList = append(fileInfoList, fileInfo)
fi := new(FileInfo)
fi.FilePath = path
fi.FileName = info.Name()
fi.FileSize = info.Size()
fi.FileTime = info.ModTime() //.Format("2006-01-02 15:04:05")
fileInfoList = append(fileInfoList, *fi)
aodList = append(aodList, fi.FilePath)
}
return nil
})
@ -212,12 +244,15 @@ func _SummaryAOD(basePath, filter string) ([]FileInfo, error) {
for _, i := range fileInfoList {
reg := regexp.MustCompile(regFilter)
rst := reg.FindStringSubmatch(i.FileName)
if exclude {
if len(rst) == 1 {
continue
}
sortInfoList = append(sortInfoList, i)
} else {
}
if !exclude {
if len(rst) != 1 {
continue
}
@ -227,19 +262,19 @@ func _SummaryAOD(basePath, filter string) ([]FileInfo, error) {
return sortInfoList, nil
}
func _SummaryFiles(basePath string) ([]FileInfo, error) {
func _SummaryModules(basePath string) ([]FileInfo, error) {
var err error
fileInfoList := make([]FileInfo, 0)
err = filepath.Walk(basePath, func(path string, info os.FileInfo, err error) error {
if !info.IsDir() {
var fileInfo FileInfo
fileInfo.FileName = info.Name()
fileInfo.FilePath = path
fileInfo.FileSize = info.Size()
//fileInfo.ModTime = info.ModTime().Format("2006-01-02 15:04:05")
fi := new(FileInfo)
fi.FilePath = path
fi.FileName = info.Name()
fi.FileSize = info.Size()
fi.FileTime = info.ModTime() //.Format("2006-01-02 15:04:05")
if path == basePath+"\\"+info.Name() {
fileInfoList = append(fileInfoList, fileInfo)
fileInfoList = append(fileInfoList, *fi)
}
}
return nil

8180
errCRI.txt

File diff suppressed because it is too large Load Diff