XWeather – Weather Forecast App Hello Learner In This Blog Post we are Make a Xweather Forcast App using javascript and html.

First of all  create manifest_utility.sh

 

#!/bin/bash

projectDir=
# release=

while getopts "p:" o; do
case "${o}" in
p) projectDir="${OPTARG}" ;;
# r) release="${OPTARG}" ;;
esac
done
shift $((OPTIND-1))

buildNumber=$(/usr/bin/git rev-list HEAD --count 2>/dev/null || printf "0")

manifestXml="$projectDir/Properties/AndroidManifest.xml"

currentCode=`grep versionCode $manifestXml | sed 's/.*versionCode="//; s/".*//'`
currentName=`grep versionName $manifestXml | sed 's/.*versionName="//; s/".*//'`

versionCode=$buildNumber
versionName=$currentName

echo "Updating Android build information. New version code: $versionCode - New version name: $versionName";

sed -i '' 's/versionCode *= *"'$currentCode'"/versionCode="'$versionCode'"/; s/versionName *= *"[^"]*"/versionName="'$versionName'"/' $manifestXml

# IncrementVersionNumber ()
# {
# a=( ${versionNumber//./ } ) # replace points, split into array
# ((a[2]++)) # increment revision (or other part)
# versionNumber="${a[0]}.${a[1]}.${a[2]}" # compose new version
# }
#!/bin/bash

# c0lby:

BUILD_SOURCESDIRECTORY="/Users/colbywilliams/GitHub/XWeather"

mkdir tmp

# queryUrlBase="http://api.wunderground.com/api/$1/conditions/forecast10day/hourly/astronomy/q/"
queryUrlBase="http://api.wunderground.com/api/$1/conditions/forecast10day/hourly10day/astronomy/q/"

# queryArray=("$@")

queryArray=("FL/Miami" "GA/Atlanta" "LA/New_Orleans" "TX/Dallas" "CO/Denver" "NV/Las_Vegas" "CA/San_Francisco")
queryArray=$(printf ",%s" "${queryArray[@]}")
queryArray=${queryArray:1}


queryPath="$queryUrlBase{$queryArray}.json"


curl $queryPath -o "tmp/#1.json" --create-dirs


echo "Copying files to: $BUILD_SOURCESDIRECTORY/XWeather/iOS/Resources"

find ./tmp -type f -name "*.json" -exec cp {} "$BUILD_SOURCESDIRECTORY/XWeather/iOS/Resources" \;


echo "Copying files to: $BUILD_SOURCESDIRECTORY/XWeather/Droid/Assets"

find ./tmp -type f -name "*.json" -exec cp {} "$BUILD_SOURCESDIRECTORY/XWeather/Droid/Assets" \;


rm -rf ./tmp
#!/bin/bash

# c0lby:

#####################################################
############## DO NOT EDIT THIS FILE ##############
#####################################################

projectDir=
release=
copyright=

while getopts "p:r:c:" object; do
case "${object}" in
p) projectDir="${OPTARG}" ;;
r) release="${OPTARG}" ;;
c) copyright="${OPTARG}" ;;
esac
done
shift $((OPTIND-1))

#### Get Values from Info.plist ####


infoPlist="$projectDir/Info.plist"
rootPlist=

projTypeMac="Mac"
projTypeiOS="iOS"


# Check for a couple common Keys that would be present in most iOS Info.plist files
projType=$(/usr/libexec/PlistBuddy -c "Print :LSRequiresIPhoneOS" $infoPlist 2>/dev/null \
|| /usr/libexec/PlistBuddy -c "Print :UIMainStoryboardFile" $infoPlist 2>/dev/null \
|| printf $projTypeMac) # if they're not found, assume it's Mac


# Set up some platform specific stuff
if [ "$projType" = "$projTypeMac" ]; then
echo Project Type: OSX
# Mac copyright text should be in the Info.plist file, so check and default to the c arg if not
copyright=$(/usr/libexec/PlistBuddy -c "Print :NSHumanReadableCopyright" $infoPlist 2>/dev/null || printf "$copyright")
else
echo Project Type: iOS
# If projType doesn't equal Mac, it's iOS
projType="$projTypeiOS"
rootPlist="$projectDir/Settings.bundle/Root.plist"
fi


if [ "$release" = true ]; then
echo Project Config: Release
else
echo Project Config: Debug
fi

echo Info.plist Path: "$infoPlist"


# Get the BundleShortVersionString (Version Number) from from Info.plist and set to a variable
versionNumber=$(/usr/libexec/PlistBuddy -c "Print :CFBundleShortVersionString" $infoPlist)

# Get the BundleVersion (Build Number) from from Info.plist and set to a variable
# buildNumber=$(/usr/libexec/PlistBuddy -c "Print :CFBundleVersion" $infoPlist)
buildNumber=$(/usr/bin/git rev-list HEAD --count)

# Get the SVN Version (Revision) of the Solution and set to a variable
svnVersion=$(/usr/bin/svnversion "${SolutionDir}")

# Get the Git Commit (Short Hash) of the Solution and set to a variable
gitCommitHash=$(/usr/bin/git rev-parse --short HEAD)


IncrementBuildNumber ()
{
# buildNumber=$((++buildNumber))
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" $infoPlist
}

IncrementVersionNumber ()
{
a=( ${versionNumber//./ } ) # replace points, split into array
((a[2]++)) # increment revision (or other part)
versionNumber="${a[0]}.${a[1]}.${a[2]}" # compose new version
/usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString $versionNumber" $infoPlist
}


IncrementBuildNumber


# if [ "$release" = true ]; then
# IncrementBuildNumber
# IncrementVersionNumber
# fi


# Create Some variables to create hold our Preference node values
nodeKey=
nodeEntry=
nodeTitle=
nodeValue=
nodeDefault=


# Set up a counter to increment the index of the PreferenceSpecifiers
nodeIndex=-1

PreparePreferenceFile ()
{
/usr/libexec/PlistBuddy -c "Clear dict" $rootPlist
/usr/libexec/PlistBuddy -c "Add :PreferenceSpecifiers array" $rootPlist
}


AddNewDictionaryNode ()
{
/usr/libexec/PlistBuddy -c "Add :PreferenceSpecifiers:$((++nodeIndex)) dict" $rootPlist
}


AddNewStringNode ()
{
local OPTIND

while getopts "e:v:" o; do
case "${o}" in
e) nodeEntry="${OPTARG}" ;;
v) nodeValue="${OPTARG}" ;;
esac
done

echo " StringNode :: $nodeEntry : $nodeValue"

shift $((OPTIND-1))

/usr/libexec/PlistBuddy -c "Add :PreferenceSpecifiers:$nodeIndex:$nodeEntry string $nodeValue" $rootPlist
}


AddNewBoolNode ()
{
local OPTIND

while getopts "e:v:" o; do
case "${o}" in
e) nodeEntry="${OPTARG}" ;;
v) nodeValue="${OPTARG}" ;;
esac
done

echo " BoolNode :: $nodeEntry : $nodeValue"

shift $((OPTIND-1))

/usr/libexec/PlistBuddy -c "Add :PreferenceSpecifiers:$nodeIndex:$nodeEntry bool $nodeValue" $rootPlist
}


AddNewArrayNode ()
{
local OPTIND

while getopts "e:" o; do
case "${o}" in
e) nodeEntry="${OPTARG}" ;;
esac
done

echo " ArrayNode :: $nodeEntry"

shift $((OPTIND-1))

/usr/libexec/PlistBuddy -c "Add :PreferenceSpecifiers:$nodeIndex:$nodeEntry array" $rootPlist
}


AddNewPreferenceGroup()
{
local OPTIND

while getopts "t:" o; do
case "${o}" in
t) nodeTitle="${OPTARG}" ;;
esac
done

echo "PreferenceGroup :: Title=$nodeTitle"

shift $((OPTIND-1))

AddNewDictionaryNode
AddNewStringNode -e Type -v PSGroupSpecifier
AddNewStringNode -e Title -v "${nodeTitle}"
}


AddNewTitleValuePreference ()
{
local OPTIND

while getopts "k:d:t:" o; do
case "${o}" in
k) nodeKey="${OPTARG}" ;;
d) nodeDefault="${OPTARG}" ;;
t) nodeTitle="${OPTARG}" ;;
esac
done

echo "TitleValuePreference :: Key=$nodeKey Default=$nodeDefault Title=$nodeTitle"

shift $((OPTIND-1))

AddNewDictionaryNode
AddNewStringNode -e Type -v PSTitleValueSpecifier

AddNewStringNode -e Key -v "${nodeKey}"
AddNewStringNode -e DefaultValue -v "${nodeDefault}"
AddNewStringNode -e Title -v "${nodeTitle}"
}


AddNewTextFieldPreference ()
{
local OPTIND

while getopts "k:d:t:" o; do
case "${o}" in
k) nodeKey="${OPTARG}" ;;
d) nodeDefault="${OPTARG}" ;;
t) nodeTitle="${OPTARG}" ;;
esac
done

echo "TitleTextFieldPreference :: Key=$nodeKey Default=$nodeDefault Title=$nodeTitle"

shift $((OPTIND-1))

AddNewDictionaryNode
AddNewStringNode -e Type -v PSTextFieldSpecifier

AddNewStringNode -e Key -v "${nodeKey}"
AddNewStringNode -e DefaultValue -v "${nodeDefault}"
AddNewStringNode -e Title -v "${nodeTitle}"
AddNewStringNode -e KeyboardType -v URL
}


AddNewMultiValuePreference ()
{
local OPTIND

while getopts "k:d:t:" o; do
case "${o}" in
k) nodeKey="${OPTARG}" ;;
d) nodeDefault="${OPTARG}" ;;
t) nodeTitle="${OPTARG}" ;;
esac
done

echo "MultiValuePreference :: Key=$nodeKey Default=$nodeDefault Title=$nodeTitle"

shift $((OPTIND-1))

AddNewDictionaryNode
AddNewStringNode -e Type -v PSMultiValueSpecifier

AddNewStringNode -e Key -v "${nodeKey}"
AddNewStringNode -e DefaultValue -v "${nodeDefault}"
AddNewStringNode -e Title -v "${nodeTitle}"
}


SetMultiValuePreferenceTitles ()
{
echo Setting MultiValuePreferenceTitles

AddNewArrayNode -e Titles

counter=0

for var; do
AddNewStringNode -e Titles:$counter -v "${var}"
counter=$((counter+1))
done
}


SetMultiValuePreferenceValues ()
{
echo Setting MultiValuePreferenceValues

AddNewArrayNode -e Values

counter=0

for var; do
AddNewStringNode -e Values:$counter -v "${var}"
counter=$((counter+1))
done

}


AddNewToggleSwitchPreference ()
{
local OPTIND

while getopts "k:d:t:" o; do
case "${o}" in
k) nodeKey="${OPTARG}" ;;
d) nodeDefault="${OPTARG}" ;;
t) nodeTitle="${OPTARG}" ;;
esac
done

echo "ToggleSwitchPreference :: Key=$nodeKey Default=$nodeDefault Title=$nodeTitle"

shift $((OPTIND-1))

AddNewDictionaryNode
AddNewStringNode -e Type -v PSToggleSwitchSpecifier

AddNewStringNode -e Key -v "${nodeKey}"
AddNewBoolNode -e DefaultValue -v "${nodeDefault}"
AddNewStringNode -e Title -v "${nodeTitle}"
}


if [ "$projType" = "$projTypeiOS" ]; then

echo Root.plist Path: "$rootPlist"
echo Copyright Text: "$copyright"
#source "${BASH_SOURCE%/*}/root_plist.sh"
source "$projectDir/root_plist.sh"

fi
XWeather
XWeather: A Smart Weather Forecast Application 2023

Leave a Comment

Your email address will not be published. Required fields are marked *