Use a shell script to lock hal according to the hal-lock(1) man page so that

device notifications and automounts and other DE stuff don't get in the way of
the application.

svn path=/trunk/extragear/sysadmin/partitionmanager/; revision=944542
This commit is contained in:
Volker Lanz 2009-03-25 17:05:32 +00:00
parent b663b3f273
commit d60496137a
2 changed files with 42 additions and 5 deletions

View File

@ -40,15 +40,21 @@ install(TARGETS partitionmanagerprivate ${INSTALL_TARGETS_DEFAULT_ARGS})
############################################
file(GLOB partitionmanager_SRCS main.cpp)
file(GLOB partitionmanager-bin_SRCS main.cpp)
kde4_add_app_icon(partitionmanager_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/../icons/hi*-apps-partitionmanager.png")
kde4_add_app_icon(partitionmanager-bin_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/../icons/hi*-apps-partitionmanager.png")
kde4_add_executable(partitionmanager ${partitionmanager_SRCS})
kde4_add_executable(partitionmanager-bin ${partitionmanager-bin_SRCS})
target_link_libraries(partitionmanager partitionmanagerprivate)
target_link_libraries(partitionmanager-bin partitionmanagerprivate)
install(TARGETS partitionmanager ${INSTALL_TARGETS_DEFAULT_ARGS})
if(UNIX)
add_custom_target(partitionmanager ALL
COMMAND sed -e 's,@INSTALL_PATH@,${BIN_INSTALL_DIR},g' < ${CMAKE_CURRENT_SOURCE_DIR}/partitionmanager.in > ${CMAKE_CURRENT_BINARY_DIR}/partitionmanager
)
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/partitionmanager DESTINATION ${BIN_INSTALL_DIR})
endif(UNIX)
install(TARGETS partitionmanager-bin ${INSTALL_TARGETS_DEFAULT_ARGS})
install(FILES gui/partitionmanagerui.rc DESTINATION ${DATA_INSTALL_DIR}/partitionmanager)
install(FILES partitionmanager.desktop DESTINATION ${XDG_APPS_INSTALL_DIR})

31
src/partitionmanager.in Executable file
View File

@ -0,0 +1,31 @@
#!/bin/sh
# Copyright (C) 2009 by Volker Lanz <vl@fidra.de>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the
# Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
HAL_LOCK=`which hal-lock`
PARTITIONMANAGER_BIN=@INSTALL_PATH@/partitionmanager-bin
RUN_WITHOUT_LOCK=1
if [ "x$HAL_LOCK" != "x" ]; then
$HAL_LOCK --interface org.freedesktop.Hal.Device.Storage --exclusive --run "$PARTITIONMANAGER_BIN $*" && RUN_WITHOUT_LOCK=0
fi
if [ $RUN_WITHOUT_LOCK -eq 1 ]; then
$PARTITIONMANAGER_BIN $*
fi