#!/usr/bin/perl

# Konqueror Plus Execute ver.0.2.1
# 
# Copyright (c) 1999-2000 Japan KDE Users' Group
# 
# All rights reserved.
# 
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, and/or sell copies of the Software, and to permit persons
# to whom the Software is furnished to do so, provided that the above
# copyright notice(s) and this permission notice appear in all copies of
# the Software and that both the above copyright notice(s) and this
# permission notice appear in supporting documentation.
# 
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
# OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
# HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
# INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
# FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
# WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

$appname = "ターミナルで実行";

# オプション
$arg = $ARGV[0];
$arg =~ s/^\///;
if($arg eq "-su"){
  $su = 1;
  shift @ARGV;
}
$dialog = 1;
$arg = $ARGV[0];
$arg =~ s/^\///;
if($arg eq "-n"){
  $dialog = 0;
  shift @ARGV;
}
$target = $ARGV[0];
$target =~ s/^\///;

# ファイルを指定せずに実行 → エラー
if($target eq ""){
  $msg  = "このスクリプトは他のスクリプトから使用します。";
  `keasydlg -t "$appname" -w "$msg"`;
  exit 1;
}

# ユーザー名取得
$whoami = `whoami`;
chop($whoami);

# 実行
print "> $target\n\n";
if($su && $whoami ne "root"){
  print "スーパユーザのパスワードを入力してください。\n";
  $error = system("su - root -c \"$target\"");
}else{
  $error = system($target);
}

# 終了確認
if($error){
  `keasydlg -t "$appname" -w "エラーが発生しました。"`;
}elsif($dialog){
  `keasydlg -t "$appname" "終了しました。"`;
}
