From d7d77ca777bb8e7b33dc2fbb78fb4fad499fef01 Mon Sep 17 00:00:00 2001 From: Elvio Basello Date: Fri, 3 Jul 2009 15:19:50 +0000 Subject: added classes file in default script: this is useful to create addon git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@3303 17fca916-40b9-46aa-a4ea-0a15b648b75c --- data/defscript/classes.kvs | 61 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 data/defscript/classes.kvs (limited to 'data/defscript/classes.kvs') diff --git a/data/defscript/classes.kvs b/data/defscript/classes.kvs new file mode 100644 index 000000000..cfc9eb039 --- /dev/null +++ b/data/defscript/classes.kvs @@ -0,0 +1,61 @@ +# Default classes file + +# A helper class for installing files and generating an uninstallation alias on the fly +class(installer,object) +{ + constructor() + { + $$->%iNumFiles = 0 + } + + copyFiles($0 = source dir, $1 = file regexp, $2 = target dir) + { + if($0 == "") + { + echo "[Installer] Error: the first argument of copyFiles must be a source directory" + halt + } + + if($1 == "") + { + echo "[Installer] Error: the second argument of copyFiles must be a file name or file regexp" + halt + } + + if($2 == "") + { + echo "[Installer] Error: the third argument of copyFiles must be a destination directory" + halt + } + + if($file.exists($0)) + { + %files[] = $file.ls($0,f,$1) + if($length(%files[])) + { + file.mkdir $2 + foreach(%file,%files[]) + { + $$->%lFiles[$$->%iNumFiles] = $str.replace($file.fixpath("$2/%file"),"\\\\","\\") + $$->%iNumFiles++; + file.copy -o "$0/%file" "$2/%file" + } + } + } + } + + generateUninstallAlias($0 = alias name) + { + %c = "alias($0)$lf" + %c .= "{$lf" + if($$->%iNumFiles > 0) + { + foreach(%file,$$->%lFiles[]) + { + %c .= " file.remove \"%file\"$lf"; + } + } + %c .= "}" + eval %c + } +}; -- cgit v1.3.1-10-gc9f91