summaryrefslogtreecommitdiff
path: root/desktop/source/pkgchk
diff options
context:
space:
mode:
authorVladimir Glazounov <vg@openoffice.org>2009-01-22 17:12:19 +0000
committerVladimir Glazounov <vg@openoffice.org>2009-01-22 17:12:19 +0000
commitd49f2b5bfd79749e448b45fdab9d98313af48356 (patch)
tree5f87382b9207e8db744fde3b9232c718dd4c6a86 /desktop/source/pkgchk
parent0e18fd2829069f1b8ec018ccfbf2fc4c4e7698b1 (diff)
#i10000# missing changes from jl111
Diffstat (limited to 'desktop/source/pkgchk')
-rw-r--r--desktop/source/pkgchk/unopkg/unopkg_app.cxx106
-rw-r--r--desktop/source/pkgchk/unopkg/unopkg_cmdenv.cxx81
-rw-r--r--desktop/source/pkgchk/unopkg/unopkg_shared.h40
3 files changed, 123 insertions, 104 deletions
diff --git a/desktop/source/pkgchk/unopkg/unopkg_app.cxx b/desktop/source/pkgchk/unopkg/unopkg_app.cxx
index 6ec2552ee0..bc5fb098f8 100644
--- a/desktop/source/pkgchk/unopkg/unopkg_app.cxx
+++ b/desktop/source/pkgchk/unopkg/unopkg_app.cxx
@@ -30,6 +30,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "dp_misc.h"
#include "unopkg_main.h"
#include "unopkg_shared.h"
#include "dp_identifier.hxx"
@@ -53,8 +54,6 @@
#include <stdio.h>
#include <vector>
-#define APP_NAME "unopkg"
-
using namespace ::com::sun::star;
using namespace ::com::sun::star::uno;
@@ -94,8 +93,8 @@ const char s_usingText [] =
" --deployment-context expert feature: explicit deployment context\n"
" <context>\n"
"\n"
-"For details concerning deployment and this tool, please read the developer's\n"
-"guide: http://api.openoffice.org/DevelopersGuide/" APP_NAME ".html\n";
+"To learn more about the Extension Manager and extensions, see:\n"
+"http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/Extensions/Extensions\n\n";
//------------------------------------------------------------------------------
const OptionInfo s_option_infos [] = {
@@ -205,7 +204,6 @@ extern "C" int unopkg_main()
{
tools::extendApplicationEnvironment();
DisposeGuard disposeGuard;
- rtl_TextEncoding textenc = osl_getThreadTextEncoding();
bool bNoOtherErrorMsg = false;
OUString subCommand;
bool option_shared = false;
@@ -244,15 +242,15 @@ extern "C" int unopkg_main()
sal_uInt32 nCount = osl_getCommandArgCount();
if (nCount == 0 || isOption( info_help, &nPos ))
{
- printf( "%s\n", s_usingText );
+ dp_misc::writeConsole(s_usingText);
return 0;
}
else if (isOption( info_version, &nPos )) {
- printf( "\n%s Version 1.0\n", APP_NAME );
+ dp_misc::writeConsole("\n"APP_NAME" Version 3.0\n");
return 0;
}
//consume all bootstrap variables which may occur before the subcommannd
- while(isBootstrapVariable(&nPos)) ;
+ while(isBootstrapVariable(&nPos));
if(nPos >= nCount)
return 0;
@@ -287,13 +285,13 @@ extern "C" int unopkg_main()
if (cmdArg[ 0 ] == '-')
{
// is option:
- fprintf( stderr,
- "\nERROR: unexpected option %s!\n"
- " Use " APP_NAME
- " %s to print all options.\n",
- ::rtl::OUStringToOString(
- cmdArg, textenc ).getStr(),
- toString( info_help ).getStr() );
+ dp_misc::writeConsoleError(
+ OUSTR("\nERROR: unexpected option ") +
+ cmdArg +
+ OUSTR("!\n") +
+ OUSTR(" Use " APP_NAME " ") +
+ toString(info_help) +
+ OUSTR(" to print all options.\n"));
return 1;
}
else
@@ -312,7 +310,7 @@ extern "C" int unopkg_main()
//make sure the bundled option was provided together with shared
if (option_bundled && !option_shared)
{
- fprintf( stderr,
+ dp_misc::writeConsoleError(
"\nERROR: option --bundled can only be used together with --shared!");
return 1;
}
@@ -332,10 +330,11 @@ extern "C" int unopkg_main()
option_shared = true;
}
else if (option_shared) {
- fprintf( stderr,
- "WARNING: explicit context given! "
- "Ignoring option %s!\n",
- toString( info_shared ).getStr() );
+ dp_misc::writeConsoleError(
+ OUSTR("WARNING: explicit context given! ") +
+ OUSTR("Ignoring option ") +
+ toString( info_shared ) +
+ OUSTR("!\n") );
}
}
@@ -404,9 +403,8 @@ extern "C" int unopkg_main()
{
packages = xPackageManager->getDeployedPackages(
Reference<task::XAbortChannel>(), xCmdEnv );
- printf( "all deployed %s packages:\n",
- ::rtl::OUStringToOString(
- deploymentContext, textenc ).getStr() );
+ dp_misc::writeConsole(
+ OUSTR("all deployed ") + deploymentContext + OUSTR(" packages:\n"));
}
else
{
@@ -445,49 +443,59 @@ extern "C" int unopkg_main()
}
else
{
- fprintf( stderr,
- "\nERROR: unknown sub-command %s!\n"
- " Use " APP_NAME " %s to print all options.\n",
- ::rtl::OUStringToOString( subCommand, textenc ).getStr(),
- toString( info_help ).getStr() );
+ dp_misc::writeConsoleError(
+ OUSTR("\nERROR: unknown sub-command ") +
+ subCommand +
+ OUSTR("!\n") +
+ OUSTR(" Use " APP_NAME " ") +
+ toString(info_help) +
+ OUSTR(" to print all options.\n"));
return 1;
}
if (option_verbose)
- printf( "\n%s done.\n", APP_NAME );
+ dp_misc::writeConsole(OUSTR("\n"APP_NAME" done.\n"));
//Force to release all bridges which connect us to the child processes
disposeBridges(xLocalComponentContext);
return 0;
}
- catch (ucb::CommandFailedException &e) {
- fprintf(stderr, "%s\n", ::rtl::OUStringToOString(e.Message, textenc).getStr());
+ catch (ucb::CommandFailedException &e)
+ {
+ dp_misc::writeConsoleError(e.Message + OUSTR("\n"));
bNoOtherErrorMsg = true;
}
- catch (ucb::CommandAbortedException &) {
- fprintf( stderr, "\n%s aborted!\n", APP_NAME );
+ catch (ucb::CommandAbortedException &)
+ {
+ dp_misc::writeConsoleError("\n"APP_NAME" aborted!\n");
+ }
+ catch (deployment::DeploymentException & exc)
+ {
+ dp_misc::writeConsoleError(
+ OUSTR("\nERROR: ") +
+ exc.Message + OUSTR("\n") +
+ OUSTR(" Cause: ") +
+ OUString(option_verbose ? ::comphelper::anyToString(exc.Cause):
+ reinterpret_cast< css::uno::Exception const *>(
+ exc.Cause.getValue())->Message) +
+ OUSTR("\n"));
}
- catch (deployment::DeploymentException & exc) {
- fprintf( stderr,
- "\nERROR: %s\n"
- " Cause: %s\n",
- ::rtl::OUStringToOString(
- exc.Message, textenc ).getStr(),
- ::rtl::OUStringToOString(
- option_verbose
- ? ::comphelper::anyToString(exc.Cause)
- : reinterpret_cast<
- ::com::sun::star::uno::Exception const *>(
- exc.Cause.getValue())->Message, textenc).getStr() );
+ catch (LockFileException & e)
+ {
+ if (!subcmd_gui)
+ dp_misc::writeConsoleError(e.Message);
+ bNoOtherErrorMsg = true;
}
catch (::com::sun::star::uno::Exception & e ) {
Any exc( ::cppu::getCaughtException() );
- fprintf( stderr, "\nERROR: %s\n", ::rtl::OUStringToOString(
- option_verbose ? e.Message + OUSTR("\nException details: \n") +
- ::comphelper::anyToString(exc) : e.Message, textenc).getStr() );
+ dp_misc::writeConsoleError(
+ OUSTR("\nERROR: ") +
+ OUString(option_verbose ? e.Message + OUSTR("\nException details: \n") +
+ ::comphelper::anyToString(exc) : e.Message) +
+ OUSTR("\n"));
}
if (!bNoOtherErrorMsg)
- fprintf( stderr, "\n%s failed.\n", APP_NAME );
+ dp_misc::writeConsoleError("\n"APP_NAME" failed.\n");
disposeBridges(xLocalComponentContext);
return 1;
}
diff --git a/desktop/source/pkgchk/unopkg/unopkg_cmdenv.cxx b/desktop/source/pkgchk/unopkg/unopkg_cmdenv.cxx
index d0ac9398cc..7dbce92fd1 100644
--- a/desktop/source/pkgchk/unopkg/unopkg_cmdenv.cxx
+++ b/desktop/source/pkgchk/unopkg/unopkg_cmdenv.cxx
@@ -7,7 +7,7 @@
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile: unopkg_cmdenv.cxx,v $
- * $Revision: 1.12 $
+ * $Revision: 1.12.8.3 $
*
* This file is part of OpenOffice.org.
*
@@ -67,17 +67,6 @@ using ::rtl::OUString;
namespace {
-inline ::com::sun::star::lang::Locale toLocale( ::rtl::OUString const & slang )
-{
- ::com::sun::star::lang::Locale locale;
- sal_Int32 nIndex = 0;
- locale.Language = slang.getToken( 0, '-', nIndex );
- locale.Country = slang.getToken( 0, '-', nIndex );
- locale.Variant = slang.getToken( 0, '-', nIndex );
- return locale;
-}
-
-
//==============================================================================
struct OfficeLocale :
public rtl::StaticWithInit<const lang::Locale, OfficeLocale> {
@@ -176,24 +165,20 @@ void CommandEnvironmentImpl::printLicense(const OUString& sLicense, bool & accep
{
ResMgr * pResMgr = DeploymentResMgr::get();
OUString s1 = String(ResId(RID_STR_UNOPKG_ACCEPT_LIC_1, *pResMgr));
- ::rtl::OString os1 = ::rtl::OUStringToOString(s1, osl_getThreadTextEncoding());
OUString s2 = String(ResId(RID_STR_UNOPKG_ACCEPT_LIC_2, *pResMgr));
- ::rtl::OString os2 = ::rtl::OUStringToOString(s2, osl_getThreadTextEncoding());
OUString s3 = String(ResId(RID_STR_UNOPKG_ACCEPT_LIC_3, *pResMgr));
- ::rtl::OString os3 = ::rtl::OUStringToOString(s3, osl_getThreadTextEncoding());
OUString s4 = String(ResId(RID_STR_UNOPKG_ACCEPT_LIC_4, *pResMgr));
- ::rtl::OString os4 = ::rtl::OUStringToOString(s4, osl_getThreadTextEncoding());
OUString sYES = String(ResId(RID_STR_UNOPKG_ACCEPT_LIC_YES, *pResMgr));
OUString sY = String(ResId(RID_STR_UNOPKG_ACCEPT_LIC_Y, *pResMgr));
OUString sNO = String(ResId(RID_STR_UNOPKG_ACCEPT_LIC_NO, *pResMgr));
OUString sN = String(ResId(RID_STR_UNOPKG_ACCEPT_LIC_N, *pResMgr));
-
- fprintf(stdout, "\n\n%s\n\n", os1.getStr());
- fprintf(stdout, "%s\n\n", OUStringToOString(sLicense, osl_getThreadTextEncoding()).getStr());
- fprintf(stdout, "%s\n", os2.getStr());
- fprintf(stdout, "%s", os3.getStr());
- fflush(stdout);
-
+
+ OUString sNewLine(RTL_CONSTASCII_USTRINGPARAM("\n"));
+
+ dp_misc::writeConsole(sNewLine + sNewLine + s1 + sNewLine + sNewLine);
+ dp_misc::writeConsole(sLicense + sNewLine + sNewLine);
+ dp_misc::writeConsole(s2 + sNewLine);
+ dp_misc::writeConsole(s3);
//the user may enter "yes" or "no", we compare in a case insensitive way
Reference< css::i18n::XCollator > xCollator(
@@ -206,13 +191,7 @@ void CommandEnvironmentImpl::printLicense(const OUString& sLicense, bool & accep
do
{
- char buf[16];
- rtl_zeroMemory(buf, 16);
- // read one char less so that the last char in buf is always zero
- fgets(buf, 15, stdin);
- OUString sAnswer = ::rtl::OStringToOUString(::rtl::OString(buf), osl_getThreadTextEncoding());
- sAnswer = sAnswer.trim();
-
+ OUString sAnswer = dp_misc::readConsole();
if (xCollator->compareString(sAnswer, sYES) == 0
|| xCollator->compareString(sAnswer, sY) == 0)
{
@@ -227,8 +206,7 @@ void CommandEnvironmentImpl::printLicense(const OUString& sLicense, bool & accep
}
else
{
- fprintf(stdout, "\n\n%s\n", os4.getStr());
- fflush(stdout);
+ dp_misc::writeConsole(sNewLine + sNewLine + s4 + sNewLine);
}
}
while(true);
@@ -257,11 +235,8 @@ void CommandEnvironmentImpl::handle(
{
Any request( xRequest->getRequest() );
OSL_ASSERT( request.getValueTypeClass() == TypeClass_EXCEPTION );
-#if OSL_DEBUG_LEVEL > 1
- OSL_TRACE( "[unopkg_cmdenv.cxx] incoming request:\n%s\n",
- ::rtl::OUStringToOString( ::comphelper::anyToString(request),
- RTL_TEXTENCODING_UTF8 ).getStr() );
-#endif
+ dp_misc::TRACE(OUSTR("[unopkg_cmdenv.cxx] incoming request:\n")
+ + ::comphelper::anyToString(request) + OUSTR("\n\n"));
// selections:
bool approve = false;
@@ -309,8 +284,7 @@ void CommandEnvironmentImpl::handle(
{
String sResMsg( ResId( RID_STR_UNOPKG_NO_SHARED_ALLOWED, *DeploymentResMgr::get() ) );
sResMsg.SearchAndReplaceAllAscii( "%NAME", licAgreementExc.ExtensionName );
- ::rtl::OString oMsg = ::rtl::OUStringToOString(sResMsg, osl_getThreadTextEncoding());
- fprintf(stdout, "\n%s\n\n", oMsg.getStr());
+ dp_misc::writeConsole(OUSTR("\n") + sResMsg + OUSTR("\n\n"));
abort = true;
}
else if (request >>= licExc)
@@ -328,9 +302,7 @@ void CommandEnvironmentImpl::handle(
{
String sMsg(ResId(RID_STR_UNSUPPORTED_PLATFORM, *dp_gui::DeploymentGuiResMgr::get()));
sMsg.SearchAndReplaceAllAscii("%Name", platExc.package->getDisplayName());
- ::rtl::OString oMsg = ::rtl::OUStringToOString(sMsg, osl_getThreadTextEncoding());
-
- fprintf(stdout, "\n%s\n\n", oMsg.getStr());
+ dp_misc::writeConsole(OUSTR("\n") + sMsg + OUSTR("\n\n"));
approve = true;
}
else {
@@ -350,9 +322,8 @@ void CommandEnvironmentImpl::handle(
if (abort && m_option_verbose && !bLicenseException)
{
OUString msg = ::comphelper::anyToString(request);
- fprintf( stderr, "\nERROR: %s\n",
- ::rtl::OUStringToOString(
- msg, osl_getThreadTextEncoding() ).getStr() );
+ dp_misc::writeConsoleError(
+ OUSTR("\nERROR: ") + msg + OUSTR("\n"));
}
// select:
@@ -400,13 +371,11 @@ void CommandEnvironmentImpl::update_( Any const & Status )
{
if (! Status.hasValue())
return;
-
- FILE * stream;
+ bool bUseErr = false;
OUString msg;
if (Status >>= msg) {
if (! m_option_verbose)
return;
- stream = stdout;
}
else {
::rtl::OUStringBuffer buf;
@@ -421,13 +390,21 @@ void CommandEnvironmentImpl::update_( Any const & Status )
buf.append( ::comphelper::anyToString(Status) );
}
msg = buf.makeStringAndClear();
- stream = stderr;
+ bUseErr = true;
}
OSL_ASSERT( m_logLevel >= 0 );
for ( sal_Int32 n = 0; n < m_logLevel; ++n )
- fprintf( stream, " " );
- fprintf( stream, "%s\n", ::rtl::OUStringToOString(
- msg, osl_getThreadTextEncoding() ).getStr() );
+ {
+ if (bUseErr)
+ dp_misc::writeConsoleError(" ");
+ else
+ dp_misc::writeConsole(" ");
+ }
+
+ if (bUseErr)
+ dp_misc::writeConsoleError(msg + OUSTR("\n"));
+ else
+ dp_misc::writeConsole(msg + OUSTR("\n"));
}
//______________________________________________________________________________
diff --git a/desktop/source/pkgchk/unopkg/unopkg_shared.h b/desktop/source/pkgchk/unopkg/unopkg_shared.h
index 2c787e90e7..b17b89ead1 100644
--- a/desktop/source/pkgchk/unopkg/unopkg_shared.h
+++ b/desktop/source/pkgchk/unopkg/unopkg_shared.h
@@ -7,7 +7,7 @@
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile: unopkg_shared.h,v $
- * $Revision: 1.9 $
+ * $Revision: 1.9.8.3 $
*
* This file is part of OpenOffice.org.
*
@@ -29,22 +29,50 @@
************************************************************************/
#include "dp_misc.h"
+#include "com/sun/star/uno/Exception.hpp"
#include "com/sun/star/lang/XComponent.hpp"
#include "com/sun/star/uno/XComponentContext.hpp"
#include "com/sun/star/ucb/XCommandEnvironment.hpp"
#include "com/sun/star/deployment/XPackage.hpp"
#include "tools/resmgr.hxx"
+#include "rtl/ustring.hxx"
+#include "unotools/configmgr.hxx"
+#define APP_NAME "unopkg"
namespace css = ::com::sun::star;
namespace unopkg {
+ inline ::com::sun::star::lang::Locale toLocale( ::rtl::OUString const & slang )
+ {
+ ::com::sun::star::lang::Locale locale;
+ sal_Int32 nIndex = 0;
+ locale.Language = slang.getToken( 0, '-', nIndex );
+ locale.Country = slang.getToken( 0, '-', nIndex );
+ locale.Variant = slang.getToken( 0, '-', nIndex );
+ return locale;
+ }
+
+
+ struct OfficeLocale :
+ public rtl::StaticWithInit<const css::lang::Locale, OfficeLocale> {
+ const css::lang::Locale operator () () {
+ ::rtl::OUString slang;
+ if (! (::utl::ConfigManager::GetDirectConfigProperty(
+ ::utl::ConfigManager::LOCALE ) >>= slang))
+ throw css::uno::RuntimeException( OUSTR("Cannot determine language!"), 0 );
+ if (slang.getLength() == 0)
+ slang = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("en-US"));
+ return toLocale(slang);
+ }
+};
+
struct DeploymentResMgr : public rtl::StaticWithInit< ResMgr *, DeploymentResMgr >
{
ResMgr * operator () () {
- return ResMgr::CreateResMgr( "deployment" );
+ return ResMgr::CreateResMgr( "deployment", OfficeLocale::get());
}
};
@@ -56,8 +84,14 @@ struct OptionInfo
bool m_has_argument;
};
+struct LockFileException : public css::uno::Exception
+{
+ LockFileException(::rtl::OUString const & sMessage) :
+ css::uno::Exception(sMessage, css::uno::Reference< css::uno::XInterface > ()) {}
+};
+
//==============================================================================
-::rtl::OString toString( OptionInfo const * info );
+::rtl::OUString toString( OptionInfo const * info );
//==============================================================================
OptionInfo const * getOptionInfo(