b5050cecd1a4da8becb4a4a2602b3add74203900 ceisenhart Fri Dec 11 16:20:21 2015 -0800 fixing an issue with the common.py path, refs #16156 diff --git src/utils/newPythonProg/newPythonProg.c src/utils/newPythonProg/newPythonProg.c index 1452983..0c595d1 100644 --- src/utils/newPythonProg/newPythonProg.c +++ src/utils/newPythonProg/newPythonProg.c @@ -1,90 +1,90 @@ /* newPythonProg - Make a skeleton for a new python program. */ #include "common.h" #include "portable.h" #include "dystring.h" #include "options.h" void usage() /* Explain usage and exit. */ { errAbort( "newPythonProg - Make a skeleton for a new python program\n" "usage:\n" " newPythonProg programName \"The usage statement\"\n" "options:\n" " -xxx=XXX\n" ); } /* Command line validation table. */ static struct optionSpec options[] = { {NULL, 0}, }; void makeMakefile(char *progName, char *makeName) /* Make makefile. */ { FILE *f = mustOpen(makeName, "w"); fprintf(f, "all::\n\t cp -p %s ${HOME}/bin\n\t cp -p %s ${HOME}/kent/src/pyLib/scripts\n" "test::\n\t@if test -d tests -a -s tests/makefile; then (cd tests && ${MAKE} test); \\ " "\n\telse echo \"# no tests directory (or perhaps no tests/makefile) in $(CURDIR)\"; fi" , progName, progName); fclose(f); } void writeProgram(char *fileName, char *programName, char *usage) { FILE *programFile = mustOpen(fileName, "w"); // Write the python skeleton fprintf(programFile, "#!/usr/bin/env python2.7\n# %s\n\"\"\"%s\"\"\"\n", programName, usage); fprintf(programFile, "import os\nimport sys\nimport collections\nimport argparse\n" "\n" "# import the UCSC kent python library\n" - "sys.path.append(os.path.join(os.path.dirname(__file__), 'pyLib'))\n" + "sys.path.append(os.path.dirname(__file__))\n" "import common\n\n"); fprintf(programFile, "def parseArgs(args):\n \"\"\"\n Parse the command line arguments.\n \"\"\"\n parser" "= argparse.ArgumentParser(description = __doc__)\n parser.add_argument (\"inpu" "tFile\",\n help = \" The input file. \",\n type = argparse.FileType(\"r\"))\n "); fprintf(programFile, "parser.add_argument (\"outputFile\",\n help = \" The output file. \",\n type =" "argparse.FileType(\"w\"))\n if (len(sys.argv) == 1):\n parser.print_help()\n" " exit(1)\n options = parser.parse_args()\n return options\n\n"); fprintf(programFile, "def main(args):\n \"\"\"\n Initialized options and calls other functions.\n \"\"\"\n " "options = parseArgs(args)\n\nif __name__ == \"" "__main__\" : \n sys.exit(main(sys.argv))"); } void newPythonProg(char *programName, char *usage) /* newPythonProg - Make a skeleton for a new python program. */ { char fileName[512]; char dirName[512]; //char fileOnly[128]; safef(dirName, sizeof(dirName), "%s", programName); makeDir(dirName); // Stolen code from newProg safef(fileName, sizeof(fileName), "%s/%s", programName, programName); writeProgram(fileName, programName, usage); setCurrentDir(dirName); makeMakefile(programName, "makefile"); // Change file permissions char cmd[1024]; safef(cmd, 1024, "chmod 755 %s",programName); mustSystem(cmd); } int main(int argc, char *argv[]) /* Process command line. */ { optionInit(&argc, argv, options); if (argc != 3) usage(); newPythonProg(argv[1], argv[2]); return 0; }