Welcome to mirror list, hosted at ThFree Co, Russian Federation.

Gruntfile.js - github.com/sualko/cloud_piwik.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 06be669939e3131847bbe080a4ddeb0e9671aaf8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
/* global module:false */
module.exports = function(grunt) {

   grunt.initConfig({
      meta: {
         app: grunt.file.readJSON('package.json'),
         banner: grunt.file.read('banner.js')
      },
      jshint: {
         options: {
            jshintrc: '.jshintrc'
         },
         gruntfile: {
            src: 'Gruntfile.js'
         },
         files: ['js/*.js', '!js/piwik.js']
      },
      jsbeautifier: {
         files: ['Gruntfile.js', 'js/*.js', '!js/piwik.js'],
         options: {
            config: '.jsbeautifyrc'
         }
      },
      clean: ['build/'],
      copy: {
         main: {
            files: [{
               expand: true,
               src: ['appinfo/**', 'css/**', 'js/**', 'templates/**', 'img/**', 'lib/**', 'LICENSE'],
               dest: 'build/'
            }]
         }
      },
      usebanner: {
         dist: {
            options: {
               position: 'top',
               banner: '<%= meta.banner %>'
            },
            files: {
               src: ['build/js/*.js', '!build/js/piwik.js']
            }
         }
      },
      replace: {
         info: {
            src: ['build/appinfo/info.xml', 'appinfo/info.xml'],
            overwrite: true,
            replacements: [{
               from: /<version>[\d.]+<\/version>/,
               to: "<version><%= meta.app.version %></version>"
            }]
         },
         version: {
            src: ['build/appinfo/version', 'appinfo/version'],
            overwrite: true,
            replacements: [{
               from: /[\d.]+/,
               to: "<%= meta.app.version %>"
            }]
         }
      },
      uglify: {
         main: {
            options: {
               mangle: false,
               sourceMap: true,
               preserveComments: 'some'
            },
            files: {
               'build/js/settings/admin.min.js': ['js/settings/admin.js'],
            }
         }
      },
      compress: {
         main: {
            options: {
               archive: "archives/cloud_piwik-<%= meta.app.version %>.tar.gz",
               mode: 'tgz'
            },
            files: [{
               src: ['**'],
               expand: true,
               dest: 'piwik/',
               cwd: 'build/'
            }]
         }
      },
      exec: {
         createNextcloudSignature: {
            command: 'openssl dgst -sha512 -sign ' +
               '~/.nextcloud/certificates/piwik.key ' +
               'archives/cloud_piwik-<%= meta.app.version %>.tar.gz | openssl base64 > ' +
               'archives/cloud_piwik-<%= meta.app.version %>.tar.gz.ncsig'
         },
         createGPGSignature: {
            command: 'gpg --yes --detach-sign "archives/cloud_piwik-<%= meta.app.version %>.tar.gz"'
         },
         createGPGArmorSignature: {
            command: 'gpg --yes --detach-sign --armor "archives/cloud_piwik-<%= meta.app.version %>.tar.gz"'
         }
      }
   });

   grunt.loadNpmTasks('grunt-contrib-jshint');
   grunt.loadNpmTasks('grunt-contrib-copy');
   grunt.loadNpmTasks('grunt-contrib-clean');
   grunt.loadNpmTasks('grunt-contrib-uglify');
   grunt.loadNpmTasks('grunt-contrib-compress');
   grunt.loadNpmTasks('grunt-jsbeautifier');
   grunt.loadNpmTasks('grunt-banner');
   grunt.loadNpmTasks('grunt-text-replace');
   grunt.loadNpmTasks('grunt-exec');

   grunt.registerTask('default', ['jshint', 'jsbeautifier']);

   grunt.registerTask('build', ['jshint', 'jsbeautifier', 'clean', 'copy', 'usebanner']);
   grunt.registerTask('build:release', ['build', 'replace', 'uglify', 'compress']);

   grunt.registerTask('sign:release', ['exec:createNextcloudSignature', 'exec:createGPGSignature', 'exec:createGPGArmorSignature']);
};