# This is our uninstall callback: it will be called by KVIrc when addon.uninstall is invoked
# This is an automatically generated alias that will erase the installed files
- hell_w3c::uninstallfiles
+ #hell_w3c::uninstallfiles
# Kill all our aliases
alias(hell_w3c){}
# the documentation
%installer->$copyFiles("%mypath/help/en/w3c/","*.html",$file.localdir("help/en/w3c"))
# then generate the uninstall alias
-%installer->$generateUninstallAlias("hell_w3c::uninstallfiles")
+#%installer->$generateUninstallAlias("hell_w3c::uninstallfiles")
# finally kill the installer helper
delete %installer
--- /dev/null
+# A helper class for installing files and generating an uninstallation alias on the fly
+
+class(installer,object)
+{
+ constructor()
+ {
+ $this->%iNumFiles = 0
+ }
+
+ copyFiles($0 = source dir,$1 = file regexp,$2 = target dir)
+ {
+ if($0 == "")
+ {
+ echo "[Installer] SCRIPT BUG: The second argument to installer_copyfiles must be a source directory"
+ halt
+ }
+
+ if($1 == "")
+ {
+ echo "[Installer] SCRIPT BUG: The third argument to installer_copyfiles must be a file name or file regexp"
+ halt
+ }
+
+ if($2 == "")
+ {
+ echo "[Installer] SCRIPT BUG: The second argument to installer_copyfiles must be a destination directory"
+ halt
+ }
+
+ if($file.exists($0))
+ {
+ %files[] = $file.ls($0,f,$1)
+ if(%files[]#)
+ {
+ file.mkdir $2
+ foreach(%file,%files[])
+ {
+ $this->%lFiles[$this->%iNumFiles] = $str.replace($file.fixpath("$2/%file"),"\\\\","\\")
+ $this->%iNumFiles++;
+ file.copy -o "$0/%file" "$2/%file"
+ }
+ }
+ }
+ }
+
+ generateUninstallAlias($0 = alias name)
+ {
+ %c = "alias($0)$lf"
+ %c .= "{$lf"
+ if($this->%iNumFiles > 0)
+ {
+ foreach(%file,$this->%lFiles[])
+ {
+ %c .= " file.remove \"%file\"$lf";
+ }
+ }
+ %c .= "}"
+ eval %c
+ }
+};