Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- echo "--- Unpacking archive data ---"
- for i in deadsouls open open/linked open/unlinked; do
- if [ ! -d $i ]; then
- mkdir $i
- fi
- done
- cd deadsouls
- git init >../git_checkin.log 2>../git_error.log
- cd ..
- cd open
- FILES=`ls -d1 ../archive/ds*.tar.gz ../archive/ds*.zip | awk -F/ '{print $NF}' | sort -n`
- COUNT=0
- TOTAL=`echo $FILES | wc -w`
- for i in $FILES; do
- COUNT=$[ $COUNT + 1 ]
- OLD=`echo $i | sed 's/.zip$//' | sed 's/.tar.gz$//'`
- NEW=''
- if [ "$OLD" == "ds1.1pre" ]; then
- NEW='ds1.01'
- else
- NEW=`echo $i | perl -ne '{ printf("ds%d.%02d%s%02d\n", $1, $2, $3, $4) if /ds(\d)\.(\d+)(?:([ar\.])(\d+))?\.(zip|tar\.gz)/; }'`
- fi
- OOK=`echo $NEW | grep 'ds[0-9].[0-9][0-9][0-9][0-9]'`
- ISTAR=`echo $i | grep '.tar.gz$'`
- if [ -n "$OOK" ]; then
- NEW=`echo $NEW | sed 's/[0-9][0-9]$//'`
- fi
- if [ -n "$NEW" -a -d "$NEW" ]; then
- echo "$NEW ($COUNT of $TOTAL) skipping."
- elif [ -n "$NEW" -a -n "$OLD" ]; then
- echo -n "$NEW ($COUNT of $TOTAL) unpacking..."
- sleep 1;
- if [ -n "$ISTAR" ] ; then
- if [ "$NEW" == "ds1.01" ] ; then
- mkdir ds1.1pre
- cd ds1.1pre
- tar xf ../../archive/ds1.1pre.tar.gz
- cd ..
- else
- tar xf ../archive/$i
- fi
- elif [ "$NEW" == "ds2.00r23" ]; then
- mkdir "$OLD"
- cd "$OLD"
- unzip -qq -a ../../archive/$i -x *.o
- unzip -qq ../../archive/$i *.o
- cd ..
- elif [ "$NEW" == "ds2.01r15" -o "$NEW" == "ds2.01r16" -o "$NEW" == "ds2.01r17" -o "$NEW" == "ds2.01r01" ]; then
- unzip -qq -a ../archive/$i -x *.o
- unzip -qq ../archive/$i *.o
- mv "ds2.1" "$OLD"
- elif [ "$NEW" == "ds2.05a13" ]; then
- unzip -qq -a ../archive/$i -x *.o
- unzip -qq ../archive/$i *.o
- mv "ds2.5a13c" "$OLD"
- else
- unzip -qq -a ../archive/$i -x *.o
- unzip -qq ../archive/$i *.o
- fi
- if [ "$OLD" != "$NEW" ]; then
- mv "$OLD" "$NEW"
- fi
- if [ -n "$ISTAR" ]; then
- echo -n " hunting..."
- LINKY=`find $NEW -type l`
- if [ -n "$LINKY" ]; then
- echo -n " dereferencing..."
- tar -hcf - "$NEW" | tar -xf - -C unlinked
- mv "$NEW" linked/
- mv "unlinked/$NEW" ./
- fi
- fi
- echo -n " permisioning..."
- find "$NEW" -type d | xargs chmod 755
- find "$NEW" -type f | xargs chmod 644
- for j in `find "$NEW" -type f | xargs file -nNk | grep -i 'executable' | awk -F: '{print $1}'`; do
- chmod 755 "$j"
- done
- echo -n " unemptying..."
- RECENT=`find "$NEW" -type f -printf '%TY-%Tm-%Td %TT %p\n' | grep -v .git | colrm 20 | sort -r | head -1`
- touch -d "$RECENT" "$NEW"
- for j in `find "$NEW" -type d -empty`; do
- touch -d "$RECENT" "$j/.gitignore"
- done
- echo -n " stamping..."
- echo -en "$NEW\t$RECENT\n" >"$NEW/VERSION"
- touch -d "$RECENT" "$NEW/VERSION"
- echo " done."
- fi
- done
- rm -rf linked unlinked
- cd ../deadsouls
- echo "--- Creating git repository ---"
- FILES=`ls -d1 ../open/ds* | awk -F/ '{print $NF}'`
- COUNT=0
- TOTAL=`echo $FILES | wc -w`
- for i in $FILES; do
- COUNT=$[ $COUNT + 1 ]
- echo -n "$i ($COUNT of $TOTAL) versioning..."
- if [ -f "$i/VERSION" ]; then
- RECENT=`cat "$i/VERSION" | cut -f 2-`
- else
- RECENT=`find "../open/$i" -type f -printf '%TY-%Tm-%Td %TT %p\n' | grep -v .git | colrm 20 | sort -r | head -1`
- fi
- ISALPHA=`echo $i | perl -ne '{ printf("ds%d.%02da%02d\n", $1, $2, $3) if /ds(\d)\.(\d+)a(\d+)/; }'`
- # ISFULL=`echo $i | perl -ne '{ printf("ds%d.%02d\n", $1, $2) if /ds(\d)\.(\d+)$/; }'`
- if [ -z "$ISALPHA" ]; then
- git checkout master >>../git_checkin.log 2>>../git_error.log
- git ls-files -z | xargs -0 rm -f
- find . -maxdepth 1 -type d -print0 | grep -z '^./[a-zA-Z0-9_]' | xargs -0 rm -rf
- cp -rp ../open/$i/* .
- # rm -rf v22* fluffos*
- #RECENT=`find "../open/$i" -type f -printf '%TY-%Tm-%Td %TT %p\n' | grep -v .git | colrm 20 | sort -r | head -1`
- export GIT_AUTHOR_DATE="$RECENT"
- export GIT_COMMITTER_DATE="$RECENT"
- git add -A >>../git_checkin.log 2>>../git_error.log
- git commit -m $i >>../git_checkin.log 2>>../git_error.log
- git tag $i >>../git_checkin.log 2>>../git_error.log
- fi
- git checkout alpha >>../git_checkin.log 2>>../git_error.log
- if [ $? -eq 1 ]; then
- git checkout -b alpha >>../git_checkin.log 2>>../git_error.log
- fi
- git ls-files -z | xargs -0 rm -f
- find . -maxdepth 1 -type d -print0 | grep -z '^./[a-zA-Z0-9_]' | xargs -0 rm -rf
- cp -rp ../open/$i/* .
- # rm -rf v22* fluffos*
- #RECENT=`find "../open/$i" -type f -printf '%TY-%Tm-%Td %TT %p\n' | grep -v .git | colrm 20 | sort -r | head -1`
- export GIT_AUTHOR_DATE="$RECENT"
- export GIT_COMMITTER_DATE="$RECENT"
- git add -A >>../git_checkin.log 2>>../git_error.log
- git commit -m $i >>../git_checkin.log 2>>../git_error.log
- if [ -n "$ISALPHA" ]; then
- git tag $i >>../git_checkin.log 2>>../git_error.log
- fi
- echo " done."
- done
- git checkout master >>../git_checkin.log 2>>../git_error.log
- cd ..
- if [ -f git_error.log -a ! -s git_error.log ]; then
- rm git_error.log
- fi
- # If that looks like it worked properly...
- # git config --global user.name "Dread Quixadhal"
- # git config --global user.email [email protected]
- # git remote add origin [email protected]:quixadhal/deadsouls.git
- # git push --all
- # git push --tags
Advertisement
Add Comment
Please, Sign In to add comment