From 8c688df49b8fbc64bb6bc3e3aa8c4ea1d70ed441 Mon Sep 17 00:00:00 2001 From: Jakub Jankiewicz Date: Sun, 25 Feb 2018 16:16:52 +0100 Subject: [PATCH] add version script --- Makefile | 2 +- dist/lips.js | 2 +- dist/lips.min.js | 2 +- templates/Makefile | 2 +- version | 10 ++++++++++ 5 files changed, 14 insertions(+), 4 deletions(-) create mode 100755 version diff --git a/Makefile b/Makefile index 68ab6cb43..518cbe9d0 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ .PHONY: publish test coveralls lint -VERSION=DEV +VERSION=0.1.0 DATE=`date -uR` GIT=git diff --git a/dist/lips.js b/dist/lips.js index f608dbc92..8be72345c 100644 --- a/dist/lips.js +++ b/dist/lips.js @@ -4,7 +4,7 @@ * Copyright (c) 2018 Jakub Jankiewicz * Released under the MIT license * - * build: Sun, 25 Feb 2018 11:44:14 +0000 + * build: Sun, 25 Feb 2018 15:13:13 +0000 */ "use strict"; /* global define, module, setTimeout, jQuery */ diff --git a/dist/lips.min.js b/dist/lips.min.js index 3a1ab999b..529937f8b 100644 --- a/dist/lips.min.js +++ b/dist/lips.min.js @@ -4,6 +4,6 @@ * Copyright (c) 2018 Jakub Jankiewicz * Released under the MIT license * - * build: Sun, 25 Feb 2018 11:44:14 +0000 + * build: Sun, 25 Feb 2018 15:13:13 +0000 */ "use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(n){return typeof n}:function(n){return n&&typeof Symbol==="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n};function _toConsumableArray(n){if(Array.isArray(n)){for(var r=0,e=Array(n.length);r1){var d=r.pop();p=r[r.length-1];p.push(d);if(p instanceof Array&&p[0]instanceof u&&o.includes(p[0].name)&&r.length>1){r.pop();if(r[r.length-1].length===0){r[r.length-1]=p}else{r[r.length-1].push(p)}}}if(s===0&&r.length){e.push(r.pop())}}else{h=false;var v=t(n);if(i){v=[a[i],v];i=false}if(p instanceof c){var y=p;while(true){if(y.cdr===l){y.cdr=v;break}else{y=y.cdr}}}else if(!r.length){e.push(v)}else{p.push(v)}}});if(r.length){throw new Error("Unbalanced parenthesis 2")}return e.map(function(n){if(n instanceof Array){return c.fromArray(n)}return n})}function u(n){this.name=n}u.is=function(n,r){return n instanceof u&&typeof r==="string"&&n.name===r};u.prototype.toJSON=u.prototype.toString=function(){return this.name};function c(n,r){this.car=n;this.cdr=r}c.prototype.clone=function(){var n;if(this.cdr===l){n=l}else{n=this.cdr.clone()}return new c(this.car,n)};c.prototype.toArray=function(){if(this.cdr===l&&this.car===l){return[]}var n=[];if(this.car instanceof c){n.push(this.car.toArray())}else{n.push(this.car)}if(this.cdr instanceof c){n=n.concat(this.cdr.toArray())}return n};c.fromArray=function(n){if(n instanceof c){return n}if(n.length&&!n instanceof Array){n=[].concat(_toConsumableArray(n))}if(n.length===0){return new c(l,l)}else{var r;if(n[0]instanceof Array){r=c.fromArray(n[0])}else{r=n[0]}if(n.length===1){return new c(r,l)}else{return new c(r,c.fromArray(n.slice(1)))}}};c.prototype.transform=function(n){var r=[];function e(t){if(t instanceof c){if(t.replace){delete t.replace;return t}var i=n(t.car);if(i instanceof c){i=e(i);r.push(i)}var f=n(t.cdr);if(f instanceof c){f=e(f);r.push(f)}return new c(i,f)}return t}return e(this)};c.prototype.toString=function(){var n=["("];if(typeof this.car==="string"){n.push(JSON.stringify(this.car))}else if(typeof this.car!=="undefined"){n.push(this.car)}if(this.cdr instanceof c){n.push(" ");n.push(this.cdr.toString().replace(/^\(|\)$/g,""))}else if(typeof this.cdr!=="undefined"&&this.cdr!==l){n=n.concat([" . ",this.cdr])}n.push(")");return n.join("")};c.prototype.append=function(n){var r=this;while(true){if(r instanceof c&&r.cdr!==l){r=r.cdr}else{break}}r.cdr=n;return this};function s(){}s.prototype.toString=function(){return"nil"};var l=new s;function h(n){this.fn=n}h.prototype.invoke=function(n,r){return this.fn.call(r,n)};function p(n,r){this.env=n;this.parent=r}p.prototype.get=function(n){if(n instanceof u){if(typeof this.env[n.name]!=="undefined"){return this.env[n.name]}}else if(typeof n==="string"){if(typeof this.env[n]!=="undefined"){return this.env[n]}}if(this.parent instanceof p){return this.parent.get(n)}else if(n instanceof u){if(typeof window[n.name]!=="undefined"){return window[n.name]}}else if(typeof n==="string"){if(typeof window[n]!=="undefined"){return window[n]}}};p.prototype.set=function(n,r){this.env[n]=r};function d(n){this.value=n}function v(n){return new h(function(r){var e=this;var t=this.get("list->array")(r.car);var i=new p({},this);t.forEach(function(r){i.set(r.car,m(r.cdr.car,n?i:e))});var f=new c(new u("begin"),r.cdr);return new d(m(f,i))})}var y=new p({nil:l,window:window,true:true,false:false,stdout:{write:function n(){var r;(r=console).log.apply(r,arguments)}},stdin:{read:function n(){return new Promise(function(n){n(prompt(""))})}},cons:function n(r,e){return new c(r,e)},car:function n(r){if(r instanceof c){return r.car}},cdr:function n(r){if(r instanceof c){return r.cdr}},"set-car":function n(r,e){r.car=e},"set-cdr":function n(r,e){r.cdr=e},assoc:function n(r,e){var t=r;var i=e instanceof u?e.name:e;while(true){var f=t.car.car;if(f instanceof u&&f.name===i||f.name===i){return t.car}else{t=t.cdr}}},while:new h(function(n){var r=this;var e=new c(new u("begin"),n.cdr);return new Promise(function(t){var i;(function f(){function a(n){if(n){var a=m(e,r);if(a instanceof Promise){a.then(function(n){i=n;f()})}else{i=a;f()}}else{t(i)}}var o=m(n.car,r);if(o instanceof Promise){o.then(a)}else{a(o)}})()})}),if:new h(function(n){var r=this;var e=function e(t){if(t){var i=m(n.cdr.car,r);if(typeof i==="undefined"){return}return i}else if(n.cdr.cdr.car instanceof c){var f=m(n.cdr.cdr.car,r);if(typeof f==="undefined"){return false}return f}else{return false}};var t=m(n.car,this);if(t instanceof Promise){return t.then(e)}else{return e(t)}}),"let*":v(true),let:v(false),begin:new h(function(n){var r=this;var e=this.get("list->array")(n);return e.reduce(function(n,e){return m(e,r)},0)}),timer:new h(function(n){var r=this;return new Promise(function(e){setTimeout(function(){e(new d(m(n.cdr,r)))},n.car)})}),define:new h(function(n){if(n.car instanceof c&&n.car.car instanceof u){var r=new c(new u("define"),new c(n.car.car,new c(new c(new u("lambda"),new c(n.car.cdr,n.cdr)))));return r}var e=n.cdr.car;if(e instanceof c){e=m(e,this)}if(n.car instanceof u){this.env[n.car.name]=e}}),set:function n(r,e,t){r[e]=t},eval:function n(r){var e=this;if(r instanceof c){return m(r,this)}if(r instanceof Array){var t;r.forEach(function(n){t=m(n,e)});return t}},lambda:new h(function(r){var e=this;return function(){var t=new p({},e);var i=r.car;var f=0;var a;while(true){if(i.car!==l){if(typeof(arguments.length<=f?n:arguments[f])==="undefined"){a=l}else{a=arguments.length<=f?n:arguments[f]}t.env[i.car.name]=a}if(i.cdr===l){break}f++;i=i.cdr}return m(r.cdr.car,t)}}),defmacro:new h(function(n){if(n.car.car instanceof u){this.env[n.car.car.name]=new h(function(r){var e=new p({},this);var t=n.car.cdr;var i=r;while(true){if(t.car!==l&&i.car!==l){e.env[t.car.name]=i.car}if(t.cdr===l){break}i=i.cdr;t=t.cdr}return m(n.cdr.car,e)})}}),quote:new h(function(n){return new d(n.car)}),quasiquote:new h(function(n){var r=this;function e(n){if(n instanceof c){var t;if(u.is(n.car.car,"unquote-splicing")){t=m(n.car.cdr.car,r);if(!t instanceof c){throw new Error("Value of unquote-splicing need"+" to be pair")}if(n.cdr instanceof c){if(t instanceof c){t.cdr.append(e(n.cdr))}else{t=new c(t,e(n.cdr))}}return t}if(u.is(n.car,"unquote-splicing")){t=m(n.cdr.car,r);if(!t instanceof c){throw new Error("Value of unquote-splicing"+" need to be pair")}return t}if(u.is(n.car,"unquote")){return m(n.cdr.car,r)}var i=n.car;if(i instanceof c){i=e(i)}var f=n.cdr;if(f instanceof c){f=e(f)}return new c(i,f)}return n}return new d(e(n.car))}),clone:function n(r){return r.clone()},append:function n(r,e){return this.get("append!")(r.clone(),e)},"append!":function n(r,e){var t=r;while(true){if(t.cdr===l){t.cdr=e;break}t=t.cdr}return r},list:function n(){return c.fromArray([].slice.call(arguments))},concat:function n(){return[].join.call(arguments,"")},string:function n(r){if(typeof jQuery!=="undefined"&&r instanceof jQuery.fn.init){return"<#jQuery>"}if(typeof r==="undefined"){return"<#undefined>"}if(typeof r==="function"){return"<#function>"}if(typeof r!=="string"){return r.toString()}return r},env:function r(e){e=e||this;var t=Object.keys(e.env);var i;if(t.length){i=c.fromArray(t)}else{i=l}if(e.parent!==n){return this.get("env").call(this,e.parent).append(i)}return i},".":function n(r,e){var t=e instanceof u?e.name:e;var i=r[t];if(typeof i==="function"){return i.bind(r)}return i},read:function n(r){var e=this;if(typeof r==="string"){return o(f(r))}return this.get("stdin").read().then(function(n){return e.get("read").call(e,n)})},print:function n(){var r,e=this;for(var t=arguments.length,i=Array(t),f=0;flist":function n(r){return c.fromArray(r)},"list->array":function n(r){var e=[];var t=r;while(true){if(t instanceof c){e.push(t.car);t=t.cdr}else{break}}return e},filter:function n(r,e){return c.fromArray(this.get("list->array")(e).filter(r))},odd:function n(r){return r%2===1},even:function n(r){return r%2===0},apply:function n(r,e){var t=this.get("list->array")(e);return r.apply(null,t)},map:function n(r,e){var t=this.get("list->array")(e).map(r);if(t.length){return c.fromArray(t)}else{return l}},reduce:function n(r,e){var t=this.get("list->array")(e);return t.reduce(function(n,e){return r(n,e)},l)},"*":function n(){for(var r=arguments.length,e=Array(r),t=0;t":function n(r,e){return r>e},"<":function n(r,e){return r=":function n(r,e){return r>=e},or:new h(function(n){var r=this.get("list->array")(n);var e=this;return new Promise(function(n){var t;(function i(){function f(r){t=r;if(t){n(r)}i()}var a=r.shift();if(typeof a==="undefined"){if(t){n(t)}else{n(false)}}else{var o=m(a,e);if(o instanceof Promise){o.then(f)}else{f(o)}}})()})}),and:new h(function(n){var r=this.get("list->array")(n);var e=this;return new Promise(function(n){var t;(function i(){function f(r){t=r;if(!t){n(false)}i()}var a=r.shift();if(typeof a==="undefined"){if(t){n(t)}else{n(false)}}else{var o=m(a,e);if(o instanceof Promise){o.then(f)}else{f(o)}}})()})}),"++":new h(function(n){var r=this.get(n.car)+1;this.set(n.car,r);return r}),"--":new h(function(n){var r=this.get(n.car)-1;this.set(n.car,r);return r})});function w(n){if(n.length===1){return n[0]}else{var r=[];var e=w(n.slice(1));for(var t=0;t Makefile package.json: templates/package.json .$(VERSION) - $(TEST) "$(VERSION)" != DEV && $(SED) -e "s/{{VER}}/"$(VERSION)"/" templates/package.json > package.json || true + $(SED) -e "s/{{VER}}/"$(VERSION)"/" templates/package.json > package.json || true README.md: templates/README.md $(GIT) branch | grep '* devel' > /dev/null && $(SED) -e "s/{{VER}}/DEV/g" -e "s/{{BRANCH}}/$(BRANCH)/g" -e "s/{{CHECKSUM}}/$(SPEC_CHECKSUM)/" < templates/README.md > README.md || $(SED) -e "s/{{VER}}/$(VERSION)/g" -e "s/{{BRANCH}}/$(BRANCH)/g" -e "s/{{CHECKSUM}}/$(SPEC_CHECKSUM)/" < templates/README.md > README.md diff --git a/version b/version new file mode 100755 index 000000000..c0677b4b6 --- /dev/null +++ b/version @@ -0,0 +1,10 @@ +#!/bin/bash + +# Display current version or update version if used with version as argument + +VERSION=`grep VERSION= Makefile | sed -e 's/VERSION=\(.*\)/\1/'` +if [ -z "$1" ]; then + echo $VERSION +elif [ "$1" != "$VERSION" ]; then + sed -e "s/{{VERSION}}/"$1"/" templates/Makefile > Makefile +fi