Skip to content

Commit

Permalink
Merge pull request #71 from pkrll/dev/updater
Browse files Browse the repository at this point in the history
Implemented remote updates
  • Loading branch information
pkrll authored Jun 20, 2018
2 parents ed70d56 + 69b9651 commit 7cc1b91
Show file tree
Hide file tree
Showing 44 changed files with 1,210 additions and 104 deletions.
100 changes: 68 additions & 32 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,80 +1,116 @@
.PHONY: all install start stop server client devclient devserver major minor patch clean
.PHONY: all install build start stop server devserver client devclient updater major minor patch clean

ENV = production
SERVICE = null

all: install start
all: install build start

install: client/package.json server/package.json
cd client && npm install && npm run build
cd server && npm install && npm run setup
install:
ifeq ($(SERVICE), client)
npm run install_client
else ifeq ($(SERVICE), server)
npm run install_server
else
npm run install
endif

build:
ifeq ($(SERVICE), client)
npm run build
else ifeq ($(SERVICE), server)
npm run setup
else
npm run build
npm run setup
endif

start:
cd server && pm2 start process.json
pm2 start process.json --watch

restart:
pm2 restart process.json

stop:
cd server && pm2 stop process.json
pm2 stop process.json --watch 0

server:
ifeq ($(ENV), dev)
cd server && NODE_ENV=development npm run dev
NODE_ENV=development npm run dev_server
else
cd server && NODE_ENV=production npm run dev
NODE_ENV=production npm run dev_server
endif

devserver:
make ENV=dev server

client:
ifeq ($(ENV), dev)
cd client && npm run dev
npm run dev_client
else
cd client && npm run build
npm run build
endif

devclient:
make ENV=dev client

updater:
cd updater && pm2 start process.json

update:
git pull

major:
ifeq ($(SERVICE), client)
cd client && npm run major
git add client/package.json
ifeq ($(SERVICE), $(filter $(SERVICE),client server))
npm run major service=$(SERVICE)
git add $(SERVICE)/package.json
git commit -S -m "Incremented major version"
else ifeq ($(SERVICE), server)
cd server && npm run major
git add server/package.json
else ifeq ($(SERVICE), app)
npm run major service=$(SERVICE)
git add package.json
git commit -S -m "Incremented major version"
else ifeq ($(SERVICE), all)
npm run major
git add package.json server/package.json client/package.json
git commit -S -m "Incremented major version"
else
@echo "ERROR:\tCould not increment major version."
@echo "USAGE:\tmake SERVICE=client/server major"
@echo "USAGE:\tmake SERVICE=[client|server|app|all] major"
endif

minor:
ifeq ($(SERVICE), client)
cd client && npm run minor
git add client/package.json
ifeq ($(SERVICE), $(filter $(SERVICE),client server))
npm run minor service=$(SERVICE)
git add $(SERVICE)/package.json
git commit -S -m "Incremented minor version"
else ifeq ($(SERVICE), server)
cd server && npm run minor
git add server/package.json
else ifeq ($(SERVICE), app)
npm run minor service=$(SERVICE)
git add package.json
git commit -S -m "Incremented minor version"
else ifeq ($(SERVICE), all)
npm run minor
git add package.json server/package.json client/package.json
git commit -S -m "Incremented minor version"
else
@echo "ERROR:\tCould not increment minor version."
@echo "USAGE:\tmake SERVICE=client/server minor"
@echo "USAGE:\tmake SERVICE=[client|server|app|all] minor"
endif

patch:
ifeq ($(SERVICE), client)
cd client && npm run patch
git add client/package.json
ifeq ($(SERVICE), $(filter $(SERVICE),client server))
npm run patch service=$(SERVICE)
git add $(SERVICE)/package.json
git commit -S -m "Incremented patch version"
else ifeq ($(SERVICE), server)
cd server && npm run patch
git add server/package.json
else ifeq ($(SERVICE), app)
npm run patch service=$(SERVICE)
git add package.json
git commit -S -m "Incremented patch version"
else ifeq ($(SERVICE), all)
npm run patch
git add package.json server/package.json client/package.json
git commit -S -m "Incremented patch version"
else
@echo "ERROR:\tCould not increment patch version."
@echo "USAGE:\tmake SERVICE=client/server patch"
@echo "USAGE:\tmake SERVICE=[client|server|app|all] patch"
endif

clean:
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ Built with NodeJS & Express 4 and Vue 2 & Webpack.
- [x] Delete files
- [x] Create folders
- [x] Check temperature, CPU, memory and disk usage.
- [ ] Interface to update Raspy remotely

## Prerequisites

Expand Down
29 changes: 29 additions & 0 deletions build/colors.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
module.exports = function () {

this.colors = {
black: "\x1b[30m",
red: "\x1b[31m",
green: "\x1b[32m",
yellow: "\x1b[33m",
blue: "\x1b[34m",
magenta: "\x1b[35m",
cyan: "\x1b[36m",
normal: "\x1b[0m"
};

this.styles = {
reset: "\x1b[0m",
bright: "\x1b[1m",
dim: "\x1b[2m",
underscore: "\x1b[4m",
blink: "\x1b[5m",
reverse: "\x1b[7m",
hidden: "\x1b[8m"
};

this.print = function (output, color = this.colors.normal, style = this.styles.reset) {
console.log("%s%s%s\x1b[0m", style, color, output);
};

return this;
};
116 changes: 116 additions & 0 deletions build/increment-version.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
'use strict'
let terminal = require('./colors.js')();

let semindex = 2;
let incrBuild = true;
let rsetBuild = false;
let rsetPatch = false;
let rsetMinor = false;

let service = {
default: "package.json",
server: "server/package.json",
client: "client/package.json"
};

let argv = process.argv.slice(2);
if (argv.length > 0 && argv.includes('-h')) {
terminal.print("Usage: node " + process.argv[1] + " [arguments]", terminal.colors.cyan);
terminal.print("\nCommands:", terminal.colors.yellow, terminal.styles.bright);
terminal.print(" service The service: [ client | server ]", terminal.colors.green);
terminal.print("\nOptions:", terminal.colors.yellow, terminal.styles.bright);
terminal.print(" --version The version number to increment [ major | minor | patch | build ]", terminal.colors.green);
terminal.print(" --skip-build Do not increment the build number", terminal.colors.green);
terminal.print(" --reset-build Reset the build version number", terminal.colors.green);
terminal.print(" --reset-patch Reset the patch version number", terminal.colors.green);
terminal.print(" --reset-minor Reset the minor version number", terminal.colors.green);
process.exit(0);
}

var fs = require('fs');

for (let index in argv) {
let value = argv[index];

if (value.includes("service=")) {
value = value.split("=");

if (value.length < 2) { continue; }

switch (value[1]) {
case 'server':
delete service.default;
delete service.client;
break;
case 'client':
delete service.default;
delete service.server;
break;
case 'app':
delete service.server;
delete service.client;
break;
default:
break;
}
} else if (value.includes("--version=")) {
value = value.split("=");
if (value.length > 1) {
if (value[1] == 'major') semindex = 0;
else if (value[1] == 'minor') semindex = 1;
else if (value[1] == 'patch') semindex = 2;
else if (value[1] == 'build') semindex = -1;
} else if (value == '--skip-build') {
incrBuild = false;
} else if (value == '--reset-build') {
rsetBuild = true;
} else if (value == '--reset-patch') {
rsetPatch = true;
} else if (value == '--reset-minor') {
rsetMinor = true;
}
}
}

for (let key in service) {
incrementBuild(service[key]);
}

function incrementBuild(filePath) {
fs.readFile(filePath, function(err, data) {
if (err) throw err;

let content = JSON.parse(data);
let version = content.version.split('+');

if (version.length > 0) {
let semver = version[0].split('.');

if (semindex >= 0) {
if (semindex != 2 && rsetPatch) {
semver[2] = 0;
} else if (semindex != 1 && rsetMinor) {
semver[1] = 0;
}

terminal.print(filePath + ": Incrementing version number ...", terminal.colors.magenta, terminal.styles.dim);
semver[semindex] = parseInt(semver[semindex]) + 1;
version[0] = semver.join('.');
}

if (incrBuild) {
terminal.print(filePath + ": Incrementing build number ...", terminal.colors.magenta, terminal.styles.dim);
version[1] = (parseInt("0x"+version[1]) + 1).toString(16);
} else if (rsetBuild) {
version[1] = 0;
}
}

content.version = version.join('+');

fs.writeFile(filePath, JSON.stringify(content, null, 2), function(err) {
if(err) throw err;
terminal.print(filePath + ": Version set to " + content.version, terminal.colors.green, terminal.styles.bright);
})
});
}
2 changes: 1 addition & 1 deletion client/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<title>Raspy</title>
<link href="https://fonts.googleapis.com/css?family=Exo+2|Hind|Karla|Rubik|Varela+Round" rel="stylesheet">
</head>
<body>
<body class="body">
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
Expand Down
4 changes: 3 additions & 1 deletion client/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "raspy",
"version": "0.16.1+45",
"version": "0.17.1+72",
"description": "Client for the Raspy Rest API server.",
"author": "Ardalan Samimi <ardalan@saturnfive.se>",
"private": true,
Expand All @@ -20,7 +20,9 @@
"axios": "^0.18.0",
"downloadjs": "^1.4.7",
"vue": "^2.5.2",
"vue-markdown": "^2.2.4",
"vue-router": "^3.0.1",
"vue-socket.io": "^2.1.1-b",
"webpack-shell-plugin": "^0.5.0"
},
"devDependencies": {
Expand Down
4 changes: 2 additions & 2 deletions client/src/App.vue
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<template>
<div id="app">
<app-header v-if="this.$root.isLoggedIn"></app-header>
<app-header v-if="this.$root.isLoggedIn && !this.$root.fullScreen"></app-header>
<router-view class="container"/>
<app-footer></app-footer>
<app-footer v-if="!this.$root.fullScreen"></app-footer>
</div>
</template>

Expand Down
4 changes: 3 additions & 1 deletion client/src/components/Browser/File.vue
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,8 @@
</nav>

<component v-bind:is="middleComponent"
v-bind:file="file">
v-bind:file="file"
v-bind:content="text">
</component>

<component v-bind:is="bottomComponent"
Expand Down Expand Up @@ -114,6 +115,7 @@ export default {
middleComponent: 'Spinner',
bottomComponent: '',
file: undefined,
text: 'Loading...'
}
},
created: function () {
Expand Down
23 changes: 23 additions & 0 deletions client/src/components/Common/Content.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<template>
<section class="wrapper">
<div class="content">
{{content}}
</div>
</section>
</template>

<script>
export default {
name: 'Content',
props: ['content']
}
</script>

<style scoped>
.content {
font-size: 5vw;
text-align: center;
}
</style>
Loading

0 comments on commit 7cc1b91

Please sign in to comment.