diff --git a/Gruntfile.js b/Gruntfile.js index 3dfa69460..2e9321922 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -3,6 +3,26 @@ module.exports = function(grunt) { // Project Configuration grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), + 'string-replace': { + dist: { + files: { + 'cordova/config.xml': ['config-templates/config.xml'], + 'cordova/wp/Package.appxmanifest': ['config-templates/Package.appxmanifest'], + 'cordova/wp/Properties/WMAppManifest.xml': ['config-templates/WMAppManifest.xml'], + 'webkitbuilds/.desktop': ['config-templates/.desktop'], + 'webkitbuilds/setup-win.iss': ['config-templates/setup-win.iss'] + }, + options: { + replacements: [{ + pattern: /%APP-VERSION%/g, + replacement: '<%= pkg.version %>' + }, { + pattern: /%ANDROID-VERSION-CODE%/g, + replacement: '<%= pkg.androidVersionCode %>' + }] + } + } + }, exec: { version: { command: 'node ./util/version.js' @@ -212,6 +232,7 @@ module.exports = function(grunt) { grunt.loadNpmTasks('grunt-karma-coveralls'); grunt.loadNpmTasks('grunt-node-webkit-builder'); grunt.loadNpmTasks('grunt-contrib-compress'); + grunt.loadNpmTasks('grunt-string-replace'); grunt.registerTask('default', ['nggettext_compile', 'exec:version', 'exec:coinbase', 'browserify', 'concat', 'copy:icons']); grunt.registerTask('prod', ['default', 'uglify']); @@ -220,4 +241,5 @@ module.exports = function(grunt) { grunt.registerTask('test-coveralls', ['karma:prod', 'coveralls']); grunt.registerTask('desktop', ['prod', 'nodewebkit', 'copy:linux', 'compress:linux']); grunt.registerTask('osx', ['prod', 'nodewebkit', 'exec:osx']); + grunt.registerTask('release', ['string-replace:dist']); }; diff --git a/config-templates/.desktop b/config-templates/.desktop new file mode 100644 index 000000000..37eb84045 --- /dev/null +++ b/config-templates/.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +Type=Application +Version=%APP-VERSION% +Name=Copay +Comment=A multisignature wallet +Exec=copay +Icon=icon-256.png +Terminal=false +Categories=Finance +X-Ubuntu-Touch=true +X-Ubuntu-StageHint=SideStage + diff --git a/config-templates/Package.appxmanifest b/config-templates/Package.appxmanifest new file mode 100644 index 000000000..73c99e641 --- /dev/null +++ b/config-templates/Package.appxmanifest @@ -0,0 +1,41 @@ + + + + + + Copay Bitcoin Wallet + BitPay Inc. + Assets\StoreLogo.png + + + 6.3.1 + 6.3.1 + + + + + + + + + + + + + + + + + + + + + + + + AgHostSvcs.dll + + + + + diff --git a/config-templates/WMAppManifest.xml b/config-templates/WMAppManifest.xml new file mode 100644 index 000000000..f24c3c106 --- /dev/null +++ b/config-templates/WMAppManifest.xml @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + Assets\icon@2.png + + + + + + + + + + + + + Assets\200x200@1.png + 0 + Assets\200x200@2.png + Copay Bitcoin Wallet + + + + + + + + false + + + + + + + + + + diff --git a/config-templates/config.xml b/config-templates/config.xml new file mode 100644 index 000000000..d778216d8 --- /dev/null +++ b/config-templates/config.xml @@ -0,0 +1,73 @@ + + + Copay + + A secure bitcoin wallet for friends and companies. + + + BitPay Inc. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config-templates/setup-win.iss b/config-templates/setup-win.iss new file mode 100755 index 000000000..fa123be28 --- /dev/null +++ b/config-templates/setup-win.iss @@ -0,0 +1,47 @@ +; Script generated by the Inno Setup Script Wizard. +; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! + +#define MyAppName "Copay" +#define MyAppVersion "%APP-VERSION%" +#define MyAppPublisher "BitPay" +#define MyAppURL "https://copay.io" +#define MyAppExeName "Copay.exe" + +[Setup] +AppId={{804636ee-b017-4cad-8719-e58ac97ffa5c} +AppName={#MyAppName} +AppVersion={#MyAppVersion} +;AppVerName={#MyAppName} {#MyAppVersion} +AppPublisher={#MyAppPublisher} +AppPublisherURL={#MyAppURL} +AppSupportURL={#MyAppURL} +AppUpdatesURL={#MyAppURL} +DefaultDirName={pf}\{#MyAppName} +DefaultGroupName={#MyAppName} +OutputBaseFilename=Copay-win +OutputDir=./ +Compression=lzma +SolidCompression=yes + +[Languages] +Name: "english"; MessagesFile: "compiler:Default.isl" +Name: "french"; MessagesFile: "compiler:Languages\French.isl" +Name: "japanese"; MessagesFile: "compiler:Languages\Japanese.isl" +Name: "spanish"; MessagesFile: "compiler:Languages\Spanish.isl" + +[Tasks] +Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked + +[Files] +Source: "Copay\win64\copay.exe"; DestDir: "{app}"; Flags: ignoreversion +Source: "Copay\win64\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs +Source: "../public/img/icons/favicon.ico"; DestDir: "{app}"; DestName: "icon.ico"; Flags: ignoreversion +; NOTE: Don't use "Flags: ignoreversion" on any shared system files + +[Icons] +Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; WorkingDir: "{app}"; IconFilename: "{app}/icon.ico" +Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; IconFilename: "{app}/icon.ico"; Tasks: desktopicon + +[Run] +Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent + diff --git a/package.json b/package.json index 3bed81299..3100e0b67 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,7 @@ "description": "A multisignature wallet", "author": "BitPay", "version": "1.11.0", + "androidVersionCode": "81", "keywords": [ "wallet", "copay", @@ -69,6 +70,7 @@ "grunt-karma": "^0.10.1", "grunt-karma-coveralls": "^2.5.3", "grunt-node-webkit-builder": "^1.0.2", + "grunt-string-replace": "^1.2.1", "karma": "^0.12.31", "karma-cli": "0.0.4", "karma-coverage": "^0.2.7",