2 名称 : Ring パッケージ管理プログラム (RingPM)
4 作者: Mahmoud Fayed <msfclipper@yahoo.com>
7 func RemovePackage cPackageName
8 cCurrentDir = CurrentDir()
9 # Check if we have the package
10 cPackageFolder = cMainPackagesFolder+"/"+cPackageName
11 cPath = cPackageFolder+"/package.ring"
13 ?C_ERROR_WEDONTHAVETHISPACKAGE
16 Style("削除中 ",:YellowBlack) ?cPackageName
17 # Check if we can remove the package (No related packages)
18 aRelated = oAllPackagesInfo.CheckRelatedPackages(cPackageName)
20 ?C_NOTE_AVOIDDELETINGAPACKAGE + "("+cPackageName + ") パッケージ (" +
21 aRelated[1] + ") で使用中です"
25 if ! fexists(cPath) return ok
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]))
36 chdir(cMainPackagesFolder)
37 DeletePackageFiles(cPackageName)
39 DisplayOperationDone()
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)
51 DeleteFilesInRingFolder(aPackageInfo,:WindowsRingFolderFiles)
53 DeleteFilesInRingFolder(aPackageInfo,:LinuxRingFolderFiles)
54 if fexists(exefolder()+"/ubuntu.txt")
55 DeleteFilesInRingFolder(aPackageInfo,:UbuntuRingFolderFiles)
56 but fexists(exefolder()+"/fedora.txt")
57 DeleteFilesInRingFolder(aPackageInfo,:FedoraRingFolderFiles)
61 DeleteFilesInRingFolder(aPackageInfo,:MacOSRingFolderFiles)
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]
71 chdir(cCurrentPackageDir)
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)
79 chdir(cMainPackagesFolder+"/"+cPackageFolderName)
81 if isWindows() and aPackageInfo[:Windowsremove] != NULL
82 System(aPackageInfo[:Windowsremove])
84 if aPackageInfo[:Linuxremove] != NULL
85 System(aPackageInfo[:Linuxremove])
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])
92 but isMacosx() and aPackageInfo[:MacOSremove] != NULL
93 System(aPackageInfo[:MacOSremove])