Tadashi Okoshi
slash****@users*****
2005年 11月 23日 (水) 13:00:20 JST
Index: affelio/lib/Affelio/Managing/ApplicationManager.pm
diff -u affelio/lib/Affelio/Managing/ApplicationManager.pm:1.12 affelio/lib/Affelio/Managing/ApplicationManager.pm:1.13
--- affelio/lib/Affelio/Managing/ApplicationManager.pm:1.12 Tue Nov 22 23:03:00 2005
+++ affelio/lib/Affelio/Managing/ApplicationManager.pm Wed Nov 23 13:00:20 2005
@@ -14,7 +14,7 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
-# $Id: ApplicationManager.pm,v 1.12 2005/11/22 14:03:00 slash5234 Exp $
+# $Id: ApplicationManager.pm,v 1.13 2005/11/23 04:00:20 slash5234 Exp $
package Affelio::Managing::ApplicationManager;
{
@@ -117,6 +117,11 @@
$af->getAM->load_applications();
#############################
+ #prep userdata/ directory
+ #############################
+ $af->getAM->prepare_app_userdata_dir($install_name);
+
+ #############################
#prep app_perm_table
#############################
$af->getAM->prepare_app_perm_table($install_name);
@@ -127,6 +132,45 @@
######################################################################
+ #prepare_app_userdata_dir
+ ######################################################################
+ sub prepare_app_userdata_dir{
+ my $self = shift;
+ my $af = $self->{af};
+ my $install_name = shift;
+
+ ############################
+ #create userdata directory as needed
+ ############################
+ if(-e "$af->{site__user_dir}/appdata/$install_name"){
+ }else{
+ if (-d "$af->{site__user_dir}/appdata/"){
+ if (-w "$af->{site__user_dir}/appdata/"){
+ my $ret =
+ mkdir("$af->{site__user_dir}/appdata/$install_name", 0777);
+ if(!$ret){
+ throw Affelio::exception::IOException("Cannot make userdata/appdata/$install_name!");
+ }
+ }else{
+ throw Affelio::exception::IOException("Cannot make userdata/appdata/ is NOT writable!");
+ }
+ }else{
+ my $ret =
+ mkdir("$af->{site__user_dir}/appdata/", 0777);
+ if(!$ret){
+ throw Affelio::exception::IOException("Cannot make userdata/appdata/!");
+ }
+ $ret =
+ mkdir("$af->{site__user_dir}/appdata/$install_name", 0777);
+ if(!$ret){
+ throw Affelio::exception::IOException("Cannot make userdata/appdata/$install_name!");
+ }
+ }
+ }
+ }
+
+
+ ######################################################################
#load_applications
######################################################################
sub load_applications{