From 0057e9245b605afdc71aa45121a1868a2485eb41 Mon Sep 17 00:00:00 2001
From: Alexandre Bourlier <alexandre@happy-dev.fr>
Date: Tue, 1 May 2018 06:18:20 +0200
Subject: [PATCH] Deploy process cleaned up

---
 .gitignore                     |  1 +
 README.md                      |  1 -
 config-sample.php              |  8 ++++++++
 deploy.sh                      |  9 +++++++++
 index.php                      | 24 +++++++++---------------
 src/html/dependencies-dev.php  | 15 +++++++++++++++
 src/html/dependencies-prod.php | 15 +++++++++++++++
 src/{ => server}/models.py     |  0
 src/server/urls.py             | 30 ++++++++++++++++++++++++++++++
 9 files changed, 87 insertions(+), 16 deletions(-)
 create mode 100644 config-sample.php
 create mode 100755 deploy.sh
 create mode 100644 src/html/dependencies-dev.php
 create mode 100644 src/html/dependencies-prod.php
 rename src/{ => server}/models.py (100%)
 create mode 100644 src/server/urls.py

diff --git a/.gitignore b/.gitignore
index 3fcea8c9..1eb686b8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,4 +10,5 @@ dist/html/*
 
 # Files
 index.html
+config.php
 issues.md
diff --git a/README.md b/README.md
index b5259952..1faf661d 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,6 @@ HD app is the magic tool that allows the Happy Dev network to thrive in a decent
 ## Install (Ubuntu)
   * `git clone --recurse-submodules https://git.happy-dev.fr/happy-dev/hd-app.git`
   * `cd hd-app`
-  * `apt install npm`
   * `npm install -g grunt-cli`
   * `npm install`
 
diff --git a/config-sample.php b/config-sample.php
new file mode 100644
index 00000000..9e8c1d0e
--- /dev/null
+++ b/config-sample.php
@@ -0,0 +1,8 @@
+<?php
+  $dn   = getenv("DN");// Domain Name of the app
+  $sdn  = getenv("SDN");// Server Domain Name
+
+  if ($dn === NULL) {
+    $dn   = 'http://hd-app.local';
+    $sdn  = 'http://localhost:8000';
+  }
diff --git a/deploy.sh b/deploy.sh
new file mode 100755
index 00000000..4b044c04
--- /dev/null
+++ b/deploy.sh
@@ -0,0 +1,9 @@
+#!/bin/bash
+export DN="http://app.happy-dev.fr"
+export SDN="http://hd-ldp.happy-dev.fr"
+php index.php > index.html
+grunt 
+ssh happy-dev_alex@ssh-happy-dev.alwaysdata.net "cd hd-app; rm -Rf ./*; mkdir -p src/fonts; mkdir -p dist/css;"
+scp -r index.html happy-dev_alex@ssh-happy-dev.alwaysdata.net:~/hd-app/
+scp -r dist/css/ happy-dev_alex@ssh-happy-dev.alwaysdata.net:~/hd-app/dist/
+scp -r src/fonts/ happy-dev_alex@ssh-happy-dev.alwaysdata.net:~/hd-app/src/
diff --git a/index.php b/index.php
index 6abe3972..c2dd5149 100644
--- a/index.php
+++ b/index.php
@@ -1,7 +1,7 @@
 <?php
   // Some useful variables
   $v  = rand();// Used to avoid abusive caching by the browser 
-  $dn = 'http://'. $_SERVER['HTTP_HOST'];
+  require_once("config.php");// Use "config-sample.php" to create your own
 ?>
 <!DOCTYPE html>
 <html lang="fr">
@@ -12,20 +12,14 @@
 
     <title>Happy Dev App</title>
 
-    <!-- Stylesheets -->
-    <link rel="stylesheet" href="<?php echo $dn; ?>/node_modules/bootstrap/dist/css/bootstrap.min.css" />
-    <link rel="stylesheet" href="<?php echo $dn; ?>/dist/css/hd-app.css?v=<?php echo $v ?>" />
-    <link rel="stylesheet" href="<?php echo $dn; ?>/node_modules/font-awesome/css/font-awesome.min.css" />
-
-    <!-- Javascript -->
-    <script type="text/javascript" src="<?php echo $dn; ?>/node_modules/jquery/dist/jquery.min.js"></script>
-    <script type="text/javascript" src="<?php echo $dn; ?>/node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
-    <script type="text/javascript" src="<?php echo $dn; ?>/dist/lib/webcomponentsjs/webcomponents-loader.js"></script>
-
-    <!-- Web components -->
-    <link rel="import" href="<?php echo $dn; ?>/dist/lib/ldp-display/ldp-display.html?v=<?php echo $v ?>" />
-    <link rel="import" href="<?php echo $dn; ?>/dist/lib/ldp-display/ldp-router.html?v=<?php echo $v ?>" />
-    <link rel="import" href="<?php echo $dn; ?>/dist/lib/xmpp-chat-component/chat-window-component.html?v=<?php echo $v ?>">
+    <?php 
+    // Prod/Dev setup
+    if ($dn == 'http://app.happy-dev.fr') {
+      require_once("src/html/dependencies-prod.php");
+    } else {
+      require_once("src/html/dependencies-dev.php");
+    }
+    ?>
   </head>
 
   <body>
diff --git a/src/html/dependencies-dev.php b/src/html/dependencies-dev.php
new file mode 100644
index 00000000..d4447155
--- /dev/null
+++ b/src/html/dependencies-dev.php
@@ -0,0 +1,15 @@
+    <!-- Stylesheets -->
+    <link rel="stylesheet" href="<?php echo $dn; ?>/node_modules/bootstrap/dist/css/bootstrap.min.css" />
+    <link rel="stylesheet" href="<?php echo $dn; ?>/dist/css/hd-app.css?v=<?php echo $v ?>" />
+    <link rel="stylesheet" href="<?php echo $dn; ?>/node_modules/font-awesome/css/font-awesome.min.css" />
+
+    <!-- Javascript -->
+    <script type="text/javascript" src="<?php echo $dn; ?>/node_modules/jquery/dist/jquery.min.js"></script>
+    <script type="text/javascript" src="<?php echo $dn; ?>/node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
+    <script type="text/javascript" src="<?php echo $dn; ?>/dist/lib/webcomponentsjs/webcomponents-loader.js"></script>
+
+    <!-- Web components -->
+    <link rel="import" href="<?php echo $dn; ?>/dist/lib/ldp-display/ldp-display.html?v=<?php echo $v ?>" />
+    <link rel="import" href="<?php echo $dn; ?>/dist/lib/ldp-display/ldp-router.html?v=<?php echo $v ?>" />
+    <link rel="import" href="<?php echo $dn; ?>/dist/lib/xmpp-chat-component/chat-window-component.html?v=<?php echo $v ?>">
+
diff --git a/src/html/dependencies-prod.php b/src/html/dependencies-prod.php
new file mode 100644
index 00000000..20bbd3ea
--- /dev/null
+++ b/src/html/dependencies-prod.php
@@ -0,0 +1,15 @@
+    <!-- Stylesheets -->
+    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" integrity="sha384-9gVQ4dYFwwWSjIDZnLEWnxCjeSWFphJiwGPXr1jddIhOegiu1FwO5qRGvFXOdJZ4" crossorigin="anonymous">
+    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.0.10/css/all.css" integrity="sha384-+d0P83n9kaQMCwj8F4RJB66tzIwOKmrdb46+porD/OvrJ+37WqIM7UoBtwHO6Nlg" crossorigin="anonymous">
+    <link rel="stylesheet" href="<?php echo $dn; ?>/dist/css/hd-app.css?v=<?php echo $v ?>" />
+
+    <!-- Javascript -->
+    <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
+    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js" integrity="sha384-cs/chFZiN24E4KMATLdqdvsezGxaGsi4hLGOzlXwp5UZB1LY//20VyM2taTB4QvJ" crossorigin="anonymous"></script>
+    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js" integrity="sha384-uefMccjFJAIv6A+rW+L4AHf99KvxDjWSu1z9VI8SKNVmz4sk7buKt/6v9KI65qnm" crossorigin="anonymous"></script>
+    <script src="https://cdnjs.cloudflare.com/ajax/libs/webcomponentsjs/1.2.0/webcomponents-loader.js" integrity="sha256-fUVqCtpScUF69qkFkeuHmcShr2N2UleRQJhRG4etHds=" crossorigin="anonymous"></script>
+
+    <!-- Web components -->
+    <link rel="import" href="https://cdn.happy-dev.fr/ldp-display/ldp-display.html?v=<?php echo $v ?>" />
+    <link rel="import" href="https://cdn.happy-dev.fr/ldp-display/ldp-router.html?v=<?php echo $v ?>" />
+    <link rel="import" href="https://cdn.happy-dev.fr/xmpp-chat-component/chat-window-component.html?v=<?php echo $v ?>">
diff --git a/src/models.py b/src/server/models.py
similarity index 100%
rename from src/models.py
rename to src/server/models.py
diff --git a/src/server/urls.py b/src/server/urls.py
new file mode 100644
index 00000000..4164c20f
--- /dev/null
+++ b/src/server/urls.py
@@ -0,0 +1,30 @@
+"""hdappserver URL Configuration
+
+The `urlpatterns` list routes URLs to views. For more information please see:
+    https://docs.djangoproject.com/en/1.11/topics/http/urls/
+Examples:
+Function views
+    1. Add an import:  from my_app import views
+    2. Add a URL to urlpatterns:  url(r'^$', views.home, name='home')
+Class-based views
+    1. Add an import:  from other_app.views import Home
+    2. Add a URL to urlpatterns:  url(r'^$', Home.as_view(), name='home')
+Including another URLconf
+    1. Import the include() function: from django.conf.urls import url, include
+    2. Add a URL to urlpatterns:  url(r'^blog/', include('blog.urls'))
+"""
+from django.conf.urls import url, include
+from django.contrib import admin
+from djangoldp.views import LDPViewSet
+from .models import Member, Skill, Project, Client, Cell, Channel
+
+urlpatterns = [
+    url(r'^admin/', admin.site.urls),
+    url(r'^members/', LDPViewSet.urls(model=Member, nested_field="skills")),
+    url(r'^skills/', LDPViewSet.urls(model=Skill)),
+    url(r'^projects/', LDPViewSet.urls(model=Project, nested_field="team")),
+    url(r'^clients/', LDPViewSet.urls(model=Client)),
+    url(r'^cells/', LDPViewSet.urls(model=Cell)),
+    url(r'^channels/', LDPViewSet.urls(model=Channel, nested_field="members")),
+]
+
-- 
GitLab