Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(428)

Unified Diff: laptop-mode-tools_1.52/usr/sbin/laptop_mode

Issue 4853002: laptop-mode accepts lists of devices and modules (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/laptop-mode-tools.git
Patch Set: Added more comments, removed echo, added rule file Created 10 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: laptop-mode-tools_1.52/usr/sbin/laptop_mode
diff --git a/laptop-mode-tools_1.52/usr/sbin/laptop_mode b/laptop-mode-tools_1.52/usr/sbin/laptop_mode
index 07fe87b183b4fb354a03b653a845ed449a94a881..61fa2951e728cd891f743986b14b232a65c4068e 100755
--- a/laptop-mode-tools_1.52/usr/sbin/laptop_mode
+++ b/laptop-mode-tools_1.52/usr/sbin/laptop_mode
@@ -527,6 +527,14 @@ while [ "$1" != "" ] ; do
start) ;;
stop) ;;
auto) ;;
+ modules=*)
+ MODULES=$1
+ MODULES=${MODULES#"modules="}
+ ;;
+ devices=*)
+ DEVICES=$1
+ DEVICES=${DEVICES#"devices="}
+ ;;
*) log "ERR" "Unrecognized option $1."
exit 1 ;;
esac
@@ -1011,17 +1019,41 @@ fi
# as no defaults have been given for them.
# Note that the /usr/local/lib path is deprecated.
-export FORCE STATE ON_AC ACTIVATE ACTIVATE_WITH_POSSIBLE_DATA_LOSS KLEVEL KMINOR WAS_ACTIVE LM_VERBOSE
-for SCRIPT in /usr/share/laptop-mode-tools/modules/* /usr/local/lib/laptop-mode-tools/modules/* /usr/local/share/laptop-mode-tools/modules/* /etc/laptop-mode/modules/*; do
- if [ -x "$SCRIPT" ] ; then
+export FORCE STATE ON_AC ACTIVATE ACTIVATE_WITH_POSSIBLE_DATA_LOSS KLEVEL KMINOR WAS_ACTIVE LM_VERBOSE DEVICES
+for SCRIPT in /usr/share/laptop-mode-tools/modules/* /usr/local/lib/laptop-mode-tools/modules/* /usr/local/share/laptop-mode-tools/modules/* /etc/laptop-mode/modules/* ; do
+ if [ -z "$MODULES" ] ; then
+ # If a module list has not been provided, execute all modules
+ EXECUTE_SCRIPT=1
+ else
+ # If a module list has been provided, execute only the listed
+ # modules.
+ EXECUTE_SCRIPT=0
+ for MODULE in $MODULES; do
+ # Attempt to remove the module name from the end of the
+ # full script path. If the module name matches the
+ # script, the name will be removed from the end of the
+ # full file path, leaving the path to the script. If
+ # there was not a match made, the module name would not
+ # be removed from the path, and $PATH_TO_SCRIPT would
+ # be the same as $SCRIPT.
+ PATH_TO_SCRIPT=${SCRIPT%%$MODULE}
+ # Execute the script if a match was found (module name
+ # was removed from the script path, making it shorter.
+ if [ $PATH_TO_SCRIPT != $SCRIPT ] ; then
+ EXECUTE_SCRIPT=1
+ fi
+ done
+ fi
+
+ if [ -x "$SCRIPT" -a $EXECUTE_SCRIPT -eq 1 ] ; then
log "VERBOSE" "Invoking module $SCRIPT."
- SCRIPT_DEBUG=$SCRIPT; # We do this because in start-stop-programs module a $SCRIPT variable is used. That
- # changes the whole meaning when passed to disableDebug ()
- enableDebug $SCRIPT_DEBUG;
- . $SCRIPT
- disableDebug $SCRIPT_DEBUG;
+ SCRIPT_DEBUG=$SCRIPT; # We do this because in start-stop-programs module a $SCRIPT variable is used. That
+ # changes the whole meaning when passed to disableDebug ()
+ enableDebug $SCRIPT_DEBUG;
+ . $SCRIPT
+ disableDebug $SCRIPT_DEBUG;
else
- log "VERBOSE" "Module $SCRIPT is not executable."
+ log "VERBOSE" "Module $SCRIPT is not executable or is to be skipped."
fi
done

Powered by Google App Engine
This is Rietveld 408576698