prt-get: if set, use $PAGER for 'cat' and 'readme'
git-svn-id: https://crux.nu/svn/tools/prt-get/trunk@1142 0b5ae1c7-2405-0410-a7fc-ba219f786e1e
This commit is contained in:
parent
e4d5098bb0
commit
5c03d74720
@ -7,6 +7,7 @@
|
||||
- allow to remove log files of successful builds
|
||||
- print update summary right before running the addcommand
|
||||
- print full add command and PACKAGE_DIR info when using install/update -v
|
||||
- Make 'cat' and 'readme' use $PAGER if set
|
||||
|
||||
* 0.5.11 29.05.2005 Johannes Winkelmann
|
||||
- add --path to 'ls'
|
||||
|
@ -190,7 +190,7 @@ Print the path of a port
|
||||
|
||||
.TP
|
||||
.B readme <port>
|
||||
Print the port's README file if it exists
|
||||
Print the port's README file if it exists; if set, uses $PAGER
|
||||
|
||||
.TP
|
||||
.B depends <package1> [<package2> ...]
|
||||
@ -339,7 +339,7 @@ Prints out a listing of the port's directory
|
||||
|
||||
.TP
|
||||
.B cat <package> [<file>]
|
||||
Prints out the file to stdout. If <file> is not specified, 'Pkgfile' is used
|
||||
Prints out the file to stdout. If <file> is not specified, 'Pkgfile' is used. If set, uses $PAGER
|
||||
|
||||
.TP
|
||||
.B edit <package> <file>
|
||||
|
@ -1212,6 +1212,25 @@ void PrtGet::readme()
|
||||
const Package* p = m_repo->getPackage( arg );
|
||||
if ( p ) {
|
||||
string file = p->path() + "/" + p->name() + "/README";
|
||||
printFile(file);
|
||||
} else {
|
||||
cerr << "Package '" << arg << "' not found" << endl;
|
||||
m_returnValue = PG_GENERAL_ERROR;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
bool PrtGet::printFile(const string& file)
|
||||
{
|
||||
if (!File::fileExists(file)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
char* pager = getenv("PAGER");
|
||||
if (pager) {
|
||||
Process proc(pager, file);
|
||||
proc.executeShell();
|
||||
} else {
|
||||
FILE* fp = fopen( file.c_str(), "r" );
|
||||
char buf[255];
|
||||
if ( fp ) {
|
||||
@ -1220,14 +1239,10 @@ void PrtGet::readme()
|
||||
}
|
||||
fclose( fp );
|
||||
}
|
||||
|
||||
} else {
|
||||
cerr << "Package '" << arg << "' not found" << endl;
|
||||
m_returnValue = PG_GENERAL_ERROR;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void PrtGet::printDependendent()
|
||||
{
|
||||
@ -1623,19 +1638,11 @@ void PrtGet::cat()
|
||||
fileName = *it;
|
||||
}
|
||||
string file = p->path() + "/" + p->name() + "/" + fileName;
|
||||
FILE* fp = fopen( file.c_str(), "r" );
|
||||
char buf[255];
|
||||
if ( fp ) {
|
||||
while ( fgets( buf, 255, fp ) ) {
|
||||
cout << buf;
|
||||
}
|
||||
fclose( fp );
|
||||
} else {
|
||||
if (!printFile(file)) {
|
||||
cerr << "File '" << *it << "' not found" << endl;
|
||||
m_returnValue = PG_GENERAL_ERROR;
|
||||
return;
|
||||
}
|
||||
|
||||
} else {
|
||||
cerr << "Package '" << arg << "' not found" << endl;
|
||||
m_returnValue = PG_GENERAL_ERROR;
|
||||
|
@ -143,6 +143,7 @@ protected:
|
||||
void assertExactArgCount(int count);
|
||||
void argCountFailure(int count, const string& specifier);
|
||||
|
||||
static bool printFile(const string& file);
|
||||
};
|
||||
|
||||
#endif /* _PRTGET_H_ */
|
||||
|
Loading…
Reference in New Issue
Block a user