OSDN Git Service

こっそり、気持ち程度の日本語化しました (UTF-8 / Windows 環境用)。
[ring-lang-081/annotated-ring-with-OmegaT.git] / target / ringpm / commands / remove.ring
1 /*
2         名称 :        Ring パッケージ管理プログラム (RingPM) 
3         日付  : 2018年10月18日
4         作者: Mahmoud Fayed <msfclipper@yahoo.com>
5 */
6
7 func RemovePackage cPackageName
8         cCurrentDir = CurrentDir()
9         # Check if we have the package 
10                 cPackageFolder = cMainPackagesFolder+"/"+cPackageName
11                 cPath = cPackageFolder+"/package.ring"
12                 if ! fexists(cPath)
13                         ?C_ERROR_WEDONTHAVETHISPACKAGE
14                         return
15                 ok
16         Style("削除中 ",:YellowBlack) ?cPackageName
17         # Check if we can remove the package (No related packages)
18                 aRelated = oAllPackagesInfo.CheckRelatedPackages(cPackageName)
19                 if len(aRelated) != 0
20                         ?C_NOTE_AVOIDDELETINGAPACKAGE + "("+cPackageName + ") パッケージ (" +
21                                                  aRelated[1] + ") で使用中です"
22                         return 
23                 ok
24         # パッケージ情報の取得 
25                 if ! fexists(cPath) return ok
26                 eval(read(cPath))
27         # パッケージ情報の一括更新 
28                 oAllPackagesInfo.RemovePackage(cPackageName)
29         # Delete the Related Package 
30                 # Delete related packages 
31                         for aPackage in aPackageInfo[:libs]
32                                 if aPackage[:name] = NULL loop ok
33                                 RemovePackage(aPackage[:name]+GetMajorVersionText(aPackage[:Version]))
34                         next 
35         # Delete the package 
36                 chdir(cMainPackagesFolder)
37                 DeletePackageFiles(cPackageName)
38
39         DisplayOperationDone()
40         chdir(cCurrentDir)
41
42 func DeletePackageFiles cFolder 
43         # Load the Package File (To Be Used Later)
44                 eval(read(cFolder+"/package.ring"))
45         RunRemoveScripts(aPackageInfo,cFolder)
46         OSDeleteFolder(cFolder)
47         # Delete the loader file in ring/bin folder 
48                 remove(exefolder()+cFolder+".ring")
49         DeleteFilesInRingFolder(aPackageInfo,:RingFolderFiles)
50         if isWindows()
51                 DeleteFilesInRingFolder(aPackageInfo,:WindowsRingFolderFiles)
52         but isLinux()
53                 DeleteFilesInRingFolder(aPackageInfo,:LinuxRingFolderFiles)
54                 if fexists(exefolder()+"/ubuntu.txt")
55                         DeleteFilesInRingFolder(aPackageInfo,:UbuntuRingFolderFiles)
56                 but fexists(exefolder()+"/fedora.txt")
57                         DeleteFilesInRingFolder(aPackageInfo,:FedoraRingFolderFiles)
58                 ok
59
60         but isMacOSX()
61                 DeleteFilesInRingFolder(aPackageInfo,:MacOSRingFolderFiles)
62         ok
63
64 func DeleteFilesInRingFolder aPackageInfo,cAttribute
65         cCurrentPackageDir = CurrentDir()
66         # Remove Files Downloaded in the Ring Folder 
67                 chdir(exefolder()+"/../")
68                 for cFileName in aPackageInfo[cAttribute]
69                         Remove(cFileName)
70                 next
71         chdir(cCurrentPackageDir)
72
73 func RunRemoveScripts aPackageInfo,cPackageFolderName
74                 cRemove = aPackageInfo[:remove]
75                 if cRemove != NULL or aPackageInfo[:WindowsRemove] != NULL or 
76                         aPackageInfo[:LinuxRemove] != NULL or aPackageInfo[:MacOSRemove] != NULL 
77                         Style("ファイルとフォルダの削除中 ",:YellowBlack)
78                         cDir = CurrentDir()
79                         chdir(cMainPackagesFolder+"/"+cPackageFolderName)
80                         system(cRemove)
81                         if isWindows() and aPackageInfo[:Windowsremove] != NULL 
82                                 System(aPackageInfo[:Windowsremove])
83                         but isLinux()
84                                 if aPackageInfo[:Linuxremove] != NULL 
85                                         System(aPackageInfo[:Linuxremove])
86                                 ok
87                                 if fexists(exefolder()+"/ubuntu.txt") and aPackageInfo[:Ubunturemove] != NULL 
88                                         System(aPackageInfo[:Ubunturemove])
89                                 but fexists(exefolder()+"/fedora.txt") and aPackageInfo[:Fedoraremove] != NULL 
90                                         System(aPackageInfo[:Fedoraremove])
91                                 ok
92                         but isMacosx() and aPackageInfo[:MacOSremove] != NULL 
93                                 System(aPackageInfo[:MacOSremove])
94                         ok
95                         chdir(cDir)
96                 ok