#!/system/bin/sh

stop

SD=/sd-ext

if [ -e /dev/block/mmcblk0p2 ];
then
    echo "+++ Starting A2SD+"
    busybox mount -o noatime,nodiratime -t auto /dev/block/mmcblk0p2 $SD
    if [ $? -eq 0 ]; then
      busybox chown 1000:1000 $SD;
      busybox chmod 771 $SD;

      for i in data;
		do
		if [ -h /data/$i ];
		then
			echo "+++ A2SD: 28: removing simlink /data/$i"
			rm /data/$i;
		fi;
		
		if [ ! -d /data/$i ];
		then
			echo "+++ A2SD: 33: creating /data/$i"
			mkdir /data/$i;
			busybox chown 1000:1000 /data/$i;
			busybox chmod 771 /data/$i;
		fi;
	done;
	
     for i in dalvik-cache;
      do
        if [ -d /data/$i ] && [ ! -h /data/$i ];
        then
            busybox rm -rf /data/$i;
            busybox ln -s $SD/$i /data/$i;
        fi;
      done;
      
	for i in dalvik-cache;
      do
        if [ ! -d $SD/$i ];
        then
	    echo "+++ A2SD: 53: Creating $SD/$i"
            mkdir $SD/$i;
        fi

        busybox chown 1000:1000 $SD/$i;
        busybox chmod 771 $SD/$i
	    
        if [ -d /data/$i ] && [ ! -h /data/$i ];
        then
            busybox cp -ap /data/$i/* $SD/$i/;
            busybox rm -f /data/$i/*;
        fi;
      done;
      
      if [ -d $SD/data ];
      then
		echo "+++ A2SD: 43: SD data found"
        busybox cp -a $SD/data/* /data/data/;
        busybox rm -rf $SD/data;
      fi;

      # move apps from internal memory to sdcard
      for i in app app-private;
      do
        if [ ! -d $SD/$i ];
        then
	    echo "+++ A2SD: 53: Creating $SD/$i"
            mkdir $SD/$i;
        fi

        busybox chown 1000:1000 $SD/$i;
        busybox chmod 771 $SD/$i
	    
        if [ -d /data/$i ] && [ ! -h /data/$i ];
        then
            busybox cp -ap /data/$i/* $SD/$i/;
            busybox rm -f /data/$i/*;
        fi;
      done;

      # symlink app dirs - they must be on the same filesystem
      for i in app app-private;
      do
        if [ -d /data/$i ] && [ ! -h /data/$i ];
        then
            busybox rm -rf /data/$i;
            busybox ln -s $SD/$i /data/$i;
        fi;
      done;

      setprop cm.apps2sd.active 1;
    
      echo "+++ A2SD+ successfully enabled";
		else
      echo "+++ A2SD+ mount FAILED -- format your ext partition"
      for i in app app-private dalvik-cache
      do
         if [ -h /data/$i ]
         then
              rm -f /data/$i
              mkdir /data/$i
              busybox chown 1000:1000 /data/$i
              busybox chmod 771 /data/$i
          fi
      done
      
      setprop cm.apps2sd.active 0
    
    fi

else
    
    for i in app app-private dalvik-cache
    do
       if [ -h /data/$i ]
       then
            rm -f /data/$i
            mkdir /data/$i
            busybox chown 1000:1000 /data/$i
            busybox chmod 771 /data/$i
        fi
    done


    setprop cm.apps2sd.active 0

fi

start

sync
