Commit e7ef24cf authored by David Findlay's avatar David Findlay
Browse files

Initial commit

parents
# Extracted from https://github.com/ulrich/macaron-factory/blob/master/.gitignore
# Ignore all dotfiles...
.*
# except for .gitignore
!.gitignore
# Ignore Play! working directory #
db
eclipse
lib
log
logs
modules
precompiled
project/project
project/target
target
tmp
test-result
server.pid
*.iml
*.eml
activator-*.sbt
Copyright 2013 Typesafe, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
angular-seed-play
=================
This project illustrates how [WebJars](http://www.webjars.org/) can be used along with
[requirejs](http://requirejs.org/) in relation to the popular
[angular-seed](https://github.com/angular/angular-seed) project.
The project is available as a [Typesafe Activator Template](http://typesafe.com/activator/template/angular-seed-play).
package au.org.mastersswimmingqld.ppmg.controllers;
import play.*;
import play.mvc.*;
/**
* Created by david on 8/09/2016.
*/
public class Application extends Controller {
public static Result index() {
return (ok(views.html.Index.render()));
}
}
package au.org.mastersswimmingqld.ppmg.enums;
/**
* Created by david on 10/09/2016.
*/
public enum Course {
SCM ("Short Course", "SC", 25, Unit.Metres),
LCM ("Long Course", "LC", 50, Unit.Metres);
private final String name;
private final String abbr;
private final int distance;
private final Unit unit;
Course(String name, String abbr, int distance, Unit unit) {
this.name = name;
this.abbr = abbr;
this.distance = distance;
this.unit = unit;
}
String getName() {
return name;
}
String getAbbr() {
return abbr;
}
int getDistance() {
return distance;
}
Unit getUnit() {
return unit;
}
}
package au.org.mastersswimmingqld.ppmg.enums;
/**
* Created by david on 10/09/2016.
*/
public enum Stroke {
FS ("Freestyle", "Free"),
BR ("Breaststroke", "Breast"),
BS ("Backstroke", "Back"),
FL ("Butterfly", "Fly");
private final String longName;
private final String shortName;
Stroke(String longName, String shortName) {
this.longName = longName;
this.shortName = shortName;
}
public String getLongName() {
return longName;
}
public String getShortName() {
return shortName;
}
}
package au.org.mastersswimmingqld.ppmg.enums;
public enum Unit {
Metres ("Metres", "m"),
Feet ("Feet", "ft"),
Yards ("Yards", "y");
private final String name;
private final String abbr;
Unit (String name, String abbr) {
this.name = name;
this.abbr = abbr;
}
String getAbbr() {
return abbr;
}
String getName() {
return name;
}
}
package au.org.mastersswimmingqld.ppmg.models;
import java.util.Date;
import java.util.List;
public class Athlete {
private long id;
private String firstname;
private String middlenames;
private String lastname;
private String number;
private Date dob;
private List<Team> teams;
}
package au.org.mastersswimmingqld.ppmg.models;
import java.util.List;
/**
* Created by david on 10/09/2016.
*/
public class Entry {
private long id;
private long meet;
private long team;
private long athlete;
List<EntryEvent> events;
}
package au.org.mastersswimmingqld.ppmg.models;
import java.util.List;
/**
* Created by david on 10/09/2016.
*/
public class EntryEvent {
private long id;
private long entryId;
private long eventId;
private float seedtime;
private List<Result> time;
}
package au.org.mastersswimmingqld.ppmg.models;
import au.org.mastersswimmingqld.ppmg.enums.Course;
import au.org.mastersswimmingqld.ppmg.enums.Stroke;
public class Event {
private long id;
private Course course;
private Stroke stroke;
private int distance;
private int legs;
private String program;
private String name;
private long session;
}
package au.org.mastersswimmingqld.ppmg.models;
import java.util.Map;
/**
* Created by david on 10/09/2016.
*/
public class Heat {
private long id;
private long meetId;
private long eventId;
private int number;
private Map<Integer, EntryEvent> entrants;
}
package au.org.mastersswimmingqld.ppmg.models;
import java.util.Date;
import java.util.List;
/**
* Created by david on 9/09/2016.
*/
public class Meet {
private long id;
private String name;
private Date start;
private Date end;
List<Session> sessions;
List<Event> events;
}
package au.org.mastersswimmingqld.ppmg.models;
/**
* Created by david on 10/09/2016.
*/
public class Result {
private long id;
private boolean split;
private int distance;
private float seconds;
}
package au.org.mastersswimmingqld.ppmg.models;
import java.time.ZonedDateTime;
import java.util.List;
/**
* Created by david on 10/09/2016.
*/
public class Session {
private long id;
private long meet;
private List<Event> events;
private ZonedDateTime start;
private ZonedDateTime end;
private String program;
private String name;
}
package au.org.mastersswimmingqld.ppmg.models;
import java.util.List;
public class Team {
private long id;
private String name;
private String code;
private String shortname;
private List<Athlete> members;
}
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>My AngularJS App</title>
<link rel="shortcut icon" type="image/png" href="@routes.Assets.versioned("img/favicon.png")">
<link rel="stylesheet" href="@routes.Assets.versioned("css/app.css")">
<script data-main="@routes.Assets.versioned("js/main.js")" src="@routes.Assets.versioned("lib/requirejs/require.js")"></script>
</head>
<body>
<ul class="menu">
<li><a href="#/view1">view1</a></li>
<li><a href="#/view2">view2</a></li>
</ul>
<div ng-view></div>
<div>Angular seed app: v<span app-version></span></div>
</body>
</html>
\ No newline at end of file
#!/usr/bin/env bash
### ------------------------------- ###
### Helper methods for BASH scripts ###
### ------------------------------- ###
realpath () {
(
TARGET_FILE="$1"
FIX_CYGPATH="$2"
cd "$(dirname "$TARGET_FILE")"
TARGET_FILE=$(basename "$TARGET_FILE")
COUNT=0
while [ -L "$TARGET_FILE" -a $COUNT -lt 100 ]
do
TARGET_FILE=$(readlink "$TARGET_FILE")
cd "$(dirname "$TARGET_FILE")"
TARGET_FILE=$(basename "$TARGET_FILE")
COUNT=$(($COUNT + 1))
done
# make sure we grab the actual windows path, instead of cygwin's path.
if [[ "x$FIX_CYGPATH" != "x" ]]; then
echo "$(cygwinpath "$(pwd -P)/$TARGET_FILE")"
else
echo "$(pwd -P)/$TARGET_FILE"
fi
)
}
# Uses uname to detect if we're in the odd cygwin environment.
is_cygwin() {
local os=$(uname -s)
case "$os" in
CYGWIN*) return 0 ;;
*) return 1 ;;
esac
}
# TODO - Use nicer bash-isms here.
CYGWIN_FLAG=$(if is_cygwin; then echo true; else echo false; fi)
# This can fix cygwin style /cygdrive paths so we get the
# windows style paths.
cygwinpath() {
local file="$1"
if [[ "$CYGWIN_FLAG" == "true" ]]; then
echo $(cygpath -w $file)
else
echo $file
fi
}
# Make something URI friendly
make_url() {
url="$1"
local nospaces=${url// /%20}
if is_cygwin; then
echo "/${nospaces//\\//}"
else
echo "$nospaces"
fi
}
declare -a residual_args
declare -a java_args
declare -a scalac_args
declare -a sbt_commands
declare java_cmd=java
declare java_version
declare -r real_script_path="$(realpath "$0")"
declare -r sbt_home="$(realpath "$(dirname "$(dirname "$real_script_path")")")"
declare -r sbt_bin_dir="$(dirname "$real_script_path")"
declare -r app_version="1.3.10"
declare -r script_name=activator
declare -r java_opts=( "${ACTIVATOR_OPTS[@]}" "${SBT_OPTS[@]}" "${JAVA_OPTS[@]}" "${java_opts[@]}" )
userhome="$HOME"
if is_cygwin; then
# cygwin sets home to something f-d up, set to real windows homedir
userhome="$USERPROFILE"
fi
declare -r activator_user_home_dir="${userhome}/.activator"
declare -r java_opts_config_home="${activator_user_home_dir}/activatorconfig.txt"
declare -r java_opts_config_version="${activator_user_home_dir}/${app_version}/activatorconfig.txt"
echoerr () {
echo 1>&2 "$@"
}
vlog () {
[[ $verbose || $debug ]] && echoerr "$@"
}
dlog () {
[[ $debug ]] && echoerr "$@"
}
jar_file () {
echo "$(cygwinpath "${sbt_home}/libexec/activator-launch-${app_version}.jar")"
}
acquire_sbt_jar () {
sbt_jar="$(jar_file)"
if [[ ! -f "$sbt_jar" ]]; then
echoerr "Could not find launcher jar: $sbt_jar"
exit 2
fi
}
execRunner () {
# print the arguments one to a line, quoting any containing spaces
[[ $verbose || $debug ]] && echo "# Executing command line:" && {
for arg; do
if printf "%s\n" "$arg" | grep -q ' '; then
printf "\"%s\"\n" "$arg"
else
printf "%s\n" "$arg"
fi
done
echo ""
}
# THis used to be exec, but we loose the ability to re-hook stty then
# for cygwin... Maybe we should flag the feature here...
"$@"
}
addJava () {
dlog "[addJava] arg = '$1'"
java_args=( "${java_args[@]}" "$1" )
}
addSbt () {
dlog "[addSbt] arg = '$1'"
sbt_commands=( "${sbt_commands[@]}" "$1" )
}
addResidual () {
dlog "[residual] arg = '$1'"
residual_args=( "${residual_args[@]}" "$1" )
}
addDebugger () {
addJava "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=$1"
}
get_mem_opts () {
# if we detect any of these settings in ${JAVA_OPTS} we need to NOT output our settings.
# The reason is the Xms/Xmx, if they don't line up, cause errors.
if [[ "${JAVA_OPTS}" == *-Xmx* ]] || [[ "${JAVA_OPTS}" == *-Xms* ]] || [[ "${JAVA_OPTS}" == *-XX:MaxPermSize* ]] || [[ "${JAVA_OPTS}" == *-XX:MaxMetaspaceSize* ]] || [[ "${JAVA_OPTS}" == *-XX:ReservedCodeCacheSize* ]]; then
echo ""
else
# a ham-fisted attempt to move some memory settings in concert
# so they need not be messed around with individually.
local mem=${1:-1024}
local codecache=$(( $mem / 8 ))
(( $codecache > 128 )) || codecache=128
(( $codecache < 512 )) || codecache=512
local class_metadata_size=$(( $codecache * 2 ))
local class_metadata_opt=$([[ "$java_version" < "1.8" ]] && echo "MaxPermSize" || echo "MaxMetaspaceSize")
echo "-Xms${mem}m -Xmx${mem}m -XX:ReservedCodeCacheSize=${codecache}m -XX:${class_metadata_opt}=${class_metadata_size}m"
fi
}
require_arg () {
local type="$1"
local opt="$2"
local arg="$3"
if [[ -z "$arg" ]] || [[ "${arg:0:1}" == "-" ]]; then
echo "$opt requires <$type> argument"
exit 1
fi
}
is_function_defined() {
declare -f "$1" > /dev/null
}
# If we're *not* running in a terminal, and we don't have any arguments, then we need to add the 'ui' parameter
detect_terminal_for_ui() {
[[ ! -t 0 ]] && [[ "${#residual_args}" == "0" ]] && {
addResidual "ui"
}
# SPECIAL TEST FOR MAC
[[ "$(uname)" == "Darwin" ]] && [[ "$HOME" == "$PWD" ]] && [[ "${#residual_args}" == "0" ]] && {
echo "Detected MAC OSX launched script...."
echo "Swapping to UI"
addResidual "ui"
}
}
process_args () {
while [[ $# -gt 0 ]]; do
case "$1" in
-h|-help) usage; exit 1 ;;
-v|-verbose) verbose=1 && shift ;;
-d|-debug) debug=1 && shift ;;
-ivy) require_arg path "$1" "$2" && addJava "-Dsbt.ivy.home=$2" && shift 2 ;;
-mem) require_arg integer "$1" "$2" && sbt_mem="$2" && shift 2 ;;
-jvm-debug) require_arg port "$1" "$2" && addDebugger $2 && shift 2 ;;
-batch) exec </dev/null && shift ;;
-sbt-jar) require_arg path "$1" "$2" && sbt_jar="$2" && shift 2 ;;
-sbt-version) require_arg version "$1" "$2" && sbt_version="$2" && shift 2 ;;
-java-home) require_arg path "$1" "$2" && java_cmd="$2/bin/java" && shift 2 ;;
-D*) addJava "$1" && shift ;;
-J*) addJava "${1:2}" && shift ;;
*) addResidual "$1" && shift ;;
esac
done
is_function_defined process_my_args && {
myargs=("${residual_args[@]}")
residual_args=()
process_my_args "${myargs[@]}"
}
java_version=$("$java_cmd" -Xmx512M -version 2>&1 | awk -F '"' '/version/ {print $2}')
vlog "[process_args] java_version = '$java_version'"
}
# Detect that we have java installed.
checkJava() {
local required_version="$1"
# Now check to see if it's a good enough version
if [[ "$java_version" == "" ]]; then
echo
echo No java installations was detected.
echo Please go to http://www.java.com/getjava/ and download
echo
exit 1
elif [[ ! "$java_version" > "$required_version" ]]; then
echo
echo The java installation you have is not up to date
echo $script_name requires at least version $required_version+, you have
echo version $java_version
echo
echo Please go to http://www.java.com/getjava/ and download
echo a valid Java Runtime and install before running $script_name.
echo
exit 1
fi
}
run() {
# no jar? download it.
[[ -f "$sbt_jar" ]] || acquire_sbt_jar "$sbt_version" || {
# still no jar? uh-oh.
echo "Download failed. Obtain the sbt-launch.jar manually and place it at $sbt_jar"
exit 1
}
# process the combined args, then reset "$@" to the residuals
process_args "$@"