X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=interfaces%2Fch%2Fpkginstall.ch;fp=interfaces%2Fch%2Fpkginstall.ch;h=0000000000000000000000000000000000000000;hb=e4c14cdbdf2fe805e79cd96ded236f57e7b89060;hp=25633556247260efe9ffd824b0bcb214a5b2565a;hpb=454138ff8a20f6edb9b65a910101403d8b520643;p=opencv diff --git a/interfaces/ch/pkginstall.ch b/interfaces/ch/pkginstall.ch deleted file mode 100644 index 2563355..0000000 --- a/interfaces/ch/pkginstall.ch +++ /dev/null @@ -1,325 +0,0 @@ -#!/bin/ch -/* Ch package installer script in Ch */ -// pkginstall.ch version 1.0.2, April 8, 2005 -// *) If a package already installed, after uninstallation, -// install the new package immediately. -// pkginstall.ch version 1.0.1, April 8, 2005 -// *) fixed installation in a dir with blank space -// pkginstall.ch version 1.0.1, April 6, 2005 -// *) fixed installation with large number of .chf files in lib -// pkginstall.ch version 1.0, March 23 2005 -/* - By default, pkginstall installs a package in the current - directory into the /package and copies required header - files in package/include into the CHHOME/toolkit/include - directory. It has minimized changes. - - If you want to install ch package into your preferred directory, - you can specify it in the comand line. During the installation, - it will modify _ipath and _ppath in .chrc in Unix or _chrc - in Windows in the user home directory. During installation, - an installation file is created under the /package/installed - directory with a list of the installed directories and files. - - This program can also uninstall a Ch Package by removing header - files installed into the CHHOME/toolkit/include directory - and the package in the CHHOME/package directory based on the - corresponding package file in CHHOME/package/installed - directory. - - Usage: pkginstall.ch [-u] [-d directory] PackageName - -u uninstall 'packagename' - -d directory directory to install 'PackageName' - Examples: - (1) uninstallation: - pkginstall.ch -u chpng - (2) installation to the default directory: - pkginstall.ch chpng - (3) installation to your preferred directory: - pkginstall.ch -d /your/preferred/directory chpng -*/ - -#include -#include -#include -#include - -int main(int argc, char **argv) { - char usage[] = - "Usage: pkginstall.ch [-u] [-d directory] package\n" - " -u uninstall 'package'\n" - " -d directory directory to install 'package'\n" - " Examples:\n" - " (1) uninstallation:\n" - " pkginstall.ch -u chpng \n" - " (2) installation to the default directory:\n" - " pkginstall.ch chpng\n" - " (3) installation to your preferred directory:\n" - " pkginstall.ch -d /your/preferred/directory chpng\n"; - string_t pkgname; // chpng - string_t chhome; // C:/ch - string_t chtoolkit; // C:/ch/toolkit - string_t chtoolkitinc; // C:/ch/toolkit/include - string_t chpackage; // C:/ch/package - string_t chpackagename; // C:/ch/package/chpng - string_t chpackagenameinc; // C:/ch/package/chpng/include - string_t chpackageinstalled; // C:/ch/package/installed - string_t chpackageinstallpkg; // C:/ch/package/installed/chpng - string_t installedfiles; // files listed in $chpackageinstallpkg - string_t headerfiles; // installed header files in $chtoolkitinc - int u_option = false; // -u option - int d_option = false; // -d option - char *s, check; - string_t cwd = _cwd; - string_t token; - string_t str_temp; - string_t dotchrc; // .chrc or _chrc - string_t str_chrc_file; // contents of ~/.chrc or ~/_chrc - int install_file_ok = 0; - int pkg_dir_ok = 0; - FILE *fptr_installed; - FILE *fptr_chrc; - - argc--; argv++; - while(argc>0 && **argv =='-') - { - for(s = argv[0]+1; *s&&*s!=' '; s++) /* empty space not valid option */ - switch(*s) - { - case 'u': - u_option = true; /* uninstall package */ - break; - case 'd': /* the directory to install package */ - d_option = true; - argc--; argv++; - chpackage = *argv; - break; - default: - fprintf(stderr,"Warning: invalid option %c\n\n", *s); - fprintf(stderr,usage); - exit(1); - break; - } - argc--; argv++; - } - - if(argc==1) { /* get the package name */ - if((*argv)[strlen(*argv)-1] == '/') /* change "chpng/" to "chpng" */ - { - fprintf(stderr, "Error: invalid package name '%s'\n\n", *argv); - fprintf(stderr,usage); - exit(1); - } - pkgname = *argv; - } - else { - fprintf(stderr,usage); - exit(1); - } - - /* Get installation directories for Ch package */ - chhome=getenv("CHHOME"); - if (chhome==NULL) { - printf("Sorry, CHHOME cannot be found\n"); - printf("Please install Ch first from http://www.softintegration.com\n"); - exit(0); - } - chtoolkit = stradd(chhome, "/toolkit"); - chtoolkitinc = stradd(chhome, "/toolkit/include"); - if(d_option == false) { - chpackage = stradd(chhome, "/package"); - chpackageinstalled = stradd(chhome, "/package/installed"); - chpackageinstallpkg = stradd(chhome, "/package/installed/", pkgname); - } - chpackagename = stradd(chpackage, "/", pkgname); - chpackagenameinc = stradd(chpackagename, "/include"); - - if(access(chpackage, W_OK)) - { - if(u_option == true) { - fprintf(stderr, "You do not have privilege to remove this package.\n"); - fprintf(stderr, "Please login as 'root' to run this script\n"); - exit(0); - } - else if(d_option == true) { - fprintf(stderr, "You do not have privilege to install this package in '%s'\n", chpackagename); - exit(0); - } - else { - fprintf(stderr, "You do not have privilege to install this package in '%s'\n", chpackagename); - fprintf(stderr, "Please login as 'root' to run this script\n"); - fprintf(stderr, "or provide a directory to install this package.\n\n"); - fprintf(stderr,usage); - exit(0); - } - - } - - if(u_option) /* uninstall package */ - { - // package exists ? - if(!access(chpackagename, R_OK)) - pkg_dir_ok = 1; - // installation file exists ? - if(!access(chpackageinstallpkg, R_OK)) - install_file_ok = 1; - - if( pkg_dir_ok && !install_file_ok) { - fprintf(stderr, "\nPackage '%s' appears to have been installed\n" - "but the Installation information file does not exist.\n" - "Would you like to completely remove the directory %s (Y or N)?:" , pkgname, chpackagename); - check = getchar(); - if (!(check=='y' || check == 'Y')) - { - exit(1); - } - while(getchar() != '\n'); - printf("\n"); - rm -rf $chpackagename - } - else if(!pkg_dir_ok && !install_file_ok) - { - fprintf(stderr, "\nPackage '%s' was not installed\n", pkgname); - exit(0); - } - else - { - if(!pkg_dir_ok) - { - fprintf(stderr, "\nThe package directory does not exist but an installation" - " file for the\npackage was found. Removing possible" - " remaining files.\n"); - } - installedfiles = `cat $chpackageinstallpkg`; - foreach(token; installedfiles) - { - rm -rf $token - } - rm -rf $chpackageinstallpkg - } - printf("\nPackage '%s' has been uninstalled.\n\n", pkgname); - exit(0); - } - /* end uninstall option */ - - if(access(pkgname, R_OK)) - { - fprintf(stderr, "\nPackage '%s' not found in the current diretory.\n\n", pkgname); - exit(1); - } - - if(!access(chpackageinstallpkg, R_OK)) - { - printf("\nPackage '%s' was already installed.\n" - "Uninstall package '%s'(Y or N)?: ", pkgname, pkgname); - check = getchar(); - if( check != 'y' && check != 'Y' ) - exit(0); - while(getchar() != '\n'); - ./pkginstall.ch -u $pkgname - ./pkginstall.ch $pkgname - exit(0); - } - - if(!access(chpackagename, R_OK)) - { - fprintf(stderr, "\nIt appears that the %s package was installed by manually without running\n" - "pkginstall.ch or the package directory was not completely removed\n" - "during previous uninstallation.\n" - "Overwrite and continue installation (Y or N)?: ", pkgname); - check = getchar(); - if (!(check=='y' || check == 'Y')) - { - exit(1); - } - while(getchar() != '\n'); - printf("\n"); - } - - printf("Install package '%s' to %s now, please wait...\n", pkgname, chpackage); -#ifdef _WIN32_ - tar cf $(pkgname).tar $(pkgname) - cd $chpackage - tar xf "$cwd/$(pkgname).tar" - cd $cwd - rm -f $(pkgname).tar -#else - tar cf - $(pkgname) | (cd $chpackage; tar xf - ) -#endif - - /* install in the default package dir CHHOME/package */ - if(d_option == false) { - if(access(chpackageinstalled, R_OK) ) - { - mkdir $chpackageinstalled - } - if((fptr_installed = fopen(chpackageinstallpkg, "w")) == NULL) - { - fprintf(stderr, "\n\nERROR: fopen: cannot open file %s for write.\n\n", chpackageinstallpkg); - exit(1); - } - - fprintf(fptr_installed, "%s\n", chpackagename); - cd $chpackagenameinc - headerfiles = `ls`; - foreach(token; headerfiles) - { - cp -rfp $token $chtoolkitinc - fprintf(fptr_installed, "%s\n", stradd(chtoolkitinc, "/",token)); - } - fclose( fptr_installed); - } - else - { -#if defined(_WIN32_) - dotchrc = "_chrc"; -#else - dotchrc = ".chrc"; -#endif - cd ~ - if(access(dotchrc, F_OK)) { - fprintf(stderr, "\nERROR: ~/'%s' does not exist\n" - "run 'ch -d' to create it.\n"); - exit(0); - } - str_chrc_file = `cat $dotchrc`; - str_temp = stradd("_ipath=stradd(_ipath,\"",chpackagenameinc, ";\");"); - foreach(token;str_chrc_file;"\0";" ") - { - if(!strcmp(token, str_temp)) - { - token = "found"; - break; - } - } - if(token == NULL) - { - - if( (fptr_chrc = fopen(dotchrc, "a")) == NULL) - { - fprintf(stderr, "\nERROR: fopen: Unable to open ~/%s for append\n", dotchrc); - } - else - { - fprintf(fptr_chrc, "%s\n", str_temp); - str_temp = stradd("_ppath=stradd(_ppath,\"",chpackage, ";\");"); - fprintf(fptr_chrc, "%s\n", str_temp); - fclose( fptr_chrc); - } - } - cd - - } - - printf("Package '%s' has been successfully installed.\n\n", pkgname); - if(!access(stradd(chpackagename, "/demos"), R_OK)) { - printf("Please try demo programs for this package in \n" - "%s\n\n", stradd(chpackagename, "/demos")); - } - if(!access("postinstall.ch", R_OK)) - { - printf("You must run the post installation program,\n" - " %s\nbefore running any demos.\n\n", "postinstall.ch"); - } - - return 0; -}