Skip to content

Instantly share code, notes, and snippets.

@muteKey
Forked from glebus/projectStructureScript
Last active December 16, 2015 11:18
Show Gist options
  • Save muteKey/5426077 to your computer and use it in GitHub Desktop.
Save muteKey/5426077 to your computer and use it in GitHub Desktop.
PROJECT=$1
TARGET=$2
if [ "$PROJECT" == '' ] || [ "$TARGET" == '' ]; then
echo "Usage $0 projectDirectory targetDirectory"
exit
fi
if [ ! -d $PROJECT/$TARGET ]; then
echo "$PROJECT/$TARGET does not exist"
exit
fi
mkdir $PROJECT/$TARGET/Classes
mkdir $PROJECT/$TARGET/Classes/UILayer/
mkdir $PROJECT/$TARGET/Classes/BusinessLayer/
mkdir $PROJECT/$TARGET/Classes/DataLayer/
mkdir $PROJECT/$TARGET/External
mkdir $PROJECT/$TARGET/Resources
mkdir $PROJECT/$TARGET/Resources/Images
echo "This is the sample of project's folder structure. Classes folder should contain the actual code of classes in projects, External folder should contain external libraries and frameworks, that are used in project. Resources folder should contain the actual resources for projects - texts,fonts,images,videos,audio tracks,etc. There are three folders in Classes folder - UILayer,BusinessLayer and DataLayer. According to MVC software architecture, UILayer should contain components for View part, DataLayer should contain components for Model part - data processing, selecting, etc, and BusinessLayer should contain components for processing and validating inputs and interacting Model with View." > $PROJECT/$TARGET/about.txt
mv $PROJECT/$TARGET/*.h $PROJECT/$TARGET/Classes/UILayer
mv $PROJECT/$TARGET/*.m $PROJECT/$TARGET/Classes/UILayer
mv $PROJECT/$TARGET/Classes/UILayer/*AppDelegate.h $PROJECT/$TARGET/Classes
mv $PROJECT/$TARGET/Classes/UILayer/*AppDelegate.m $PROJECT/$TARGET/Classes
mv $PROJECT/$TARGET/Classes/UILayer/main.m $PROJECT/$TARGET/Classes
mv $PROJECT/$TARGET/*.png $PROJECT/$TARGET/Resources/Images
mv $PROJECT/$TARGET/*.pch $PROJECT/$TARGET/Resources
mv $PROJECT/$TARGET/*.plist $PROJECT/$TARGET/Resources
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment