refactor build scripts

This commit is contained in:
Matias Alejo Garcia 2016-08-10 17:35:40 -03:00
commit 23f7f56f3f
No known key found for this signature in database
GPG key ID: 02470DB551277AB3
110 changed files with 512 additions and 954 deletions

11
app-template/.desktop Normal file
View file

@ -0,0 +1,11 @@
[Desktop Entry]
Type=Application
Version=*VERSION*
Name=*NAMECASENOSPACE*
Comment=*DESCRIPTION*
Exec=*NAMENOSPACE*
Icon=icon-256.png
Terminal=false
Categories=Finance
X-Ubuntu-Touch=true
X-Ubuntu-StageHint=SideStage

44
app-template/Makefile Normal file
View file

@ -0,0 +1,44 @@
.PHONY: ios android wp
WORKDIR=project-
all:
clean:
rm -Rf $(WORKDIR)*
$(WORKDIR)android $(WORKDIR)ios $(WORKDIR)wp: config.xml
cordova create $@ com.bitpay.*NAMENOSPACE* *NAMECASENOSPACE* || echo "Project Path Existed"
cp ProjectMakefile $@/Makefile
cp -af ../public/** $@/www
sed "s/<\!-- PLACEHOLDER: CORDOVA SRIPT -->/<script type='text\/javascript' charset='utf-8' src='cordova.js'><\/script>/g" ../public/index.html > $@/www/index.html
cp config.xml $@/config.xml
make -C $@ $(subst $(WORKDIR),, $@)
ios: $(WORKDIR)ios
make -C $(WORKDIR)ios build-ios
android: project-android
mkdir -p android/platforms/android/res/xml/
cp android/build-extras.gradle $(WORKDIR)android/platforms/android/build-extras.gradle
cp android/project.properties $(WORKDIR)android/platforms/android/project.properties
cp -R android/res/* $(WORKDIR)android/platforms/android/res
make -C $(WORKDIR)android build-android
wp: build-wp
cp -vf wp/Properties/* $</platforms/wp8/Properties/
cp -vf wp/MainPage.xaml $</platforms/wp8/
cp -vf wp/Package.appxmanifest $</platforms/wp8/
cp -vf wp/Assets/* $</platforms/wp8/Assets/
cp -vf wp/SplashScreenImage.jpg $</platforms/wp8/
cp -vf wp/ApplicationIcon.png $</platforms/wp8/
cp -vf wp/Background.png $</platforms/wp8/
cp -af ../public/** $</www
wp/fix-svg.sh
androidrun:
make -C $(WORKDIR)android run
adb logcat | grep copay.js

View file

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="utf-8"?>
<Package xmlns="http://schemas.microsoft.com/appx/2010/manifest" xmlns:m2="http://schemas.microsoft.com/appx/2013/manifest" xmlns:m3="http://schemas.microsoft.com/appx/2014/manifest" xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest">
<Identity Name="18C7659D.*WINAPPNAME*" Publisher="CN=F89609D1-EB3E-45FD-A58A-C2E3895FCE7B" Version="*VERSION*.0" />
<mp:PhoneIdentity PhoneProductId="5381aa50-9069-11e4-84cc-293caf9cbdc8" PhonePublisherId="F89609D1-EB3E-45FD-A58A-C2E3895FCE7B" />
<Properties>
<DisplayName>*APPDESCRIPTION*</DisplayName>
<PublisherDisplayName>BitPay Inc.</PublisherDisplayName>
<Logo>Assets\StoreLogo.png</Logo>
</Properties>
<Prerequisites>
<OSMinVersion>6.3.1</OSMinVersion>
<OSMaxVersionTested>6.3.1</OSMaxVersionTested>
</Prerequisites>
<Resources>
<Resource Language="x-generate" />
</Resources>
<Applications>
<Application Id="x5381aa50y9069y11e4y84ccy293caf9cbdc8x" Executable="AGHost.exe" EntryPoint="MainPage.xaml">
<m3:VisualElements DisplayName="*APPDESCRIPTION*" Square150x150Logo="Assets\SquareTile150x150.png" Square44x44Logo="Assets\Logo.png" Description="A multisignature Bitcoin Wallet" ForegroundText="light" BackgroundColor="#464646">
<m3:DefaultTile Square71x71Logo="Assets\SquareTile71x71.png">
</m3:DefaultTile>
<m3:SplashScreen Image="SplashScreenImage.jpg" />
</m3:VisualElements>
<Extensions>
<Extension Category="windows.backgroundTasks" EntryPoint="AgHost.BackgroundTask">
<BackgroundTasks>
<Task Type="systemEvent" />
</BackgroundTasks>
</Extension>
</Extensions>
</Application>
</Applications>
<Extensions>
<Extension Category="windows.activatableClass.inProcessServer">
<InProcessServer>
<Path>AgHostSvcs.dll</Path>
<ActivatableClass ActivatableClassId="AgHost.BackgroundTask" ThreadingModel="both" />
</InProcessServer>
</Extension>
</Extensions>
</Package>

View file

@ -0,0 +1,51 @@
.PHONY:plugins ios-platform android-platform wp-platform
plugins:
cordova plugin add cordova-plugin-globalization
cordova plugin add cordova.plugins.diagnostic
cordova plugin add cordova-plugin-splashscreen
cordova plugin add cordova-plugin-statusbar
cordova plugin add https://github.com/cmgustavo/Custom-URL-scheme.git --variable URL_SCHEME=bitcoin --variable SECOND_URL_SCHEME=*NAMENOSPACE*
cordova plugin add cordova-plugin-inappbrowser
cordova plugin add cordova-plugin-x-toast && cordova prepare
cordova plugin add https://github.com/VersoSolutions/CordovaClipboard
cordova plugin add https://github.com/EddyVerbruggen/SocialSharing-PhoneGap-Plugin.git && cordova prepare
cordova plugin add cordova-plugin-spinner-dialog
cordova plugin add cordova-plugin-dialogs
cordova plugin add cordova-plugin-network-information
cordova plugin add cordova-plugin-console
cordova plugin add cordova-plugin-uniquedeviceid
cordova plugin add cordova-plugin-file
cordova plugin add cordova-plugin-touch-id
cordova prepare
cordova plugin add cordova-plugin-transport-security
cordova plugin add cordova-ios-requires-fullscreen
cordova plugin add cordova-plugin-disable-bitcode
rm -rf platforms/android/res/values-es
cordova plugin add cordova-plugin-android-fingerprint-auth
cordova plugin add cordova-plugin-screen-orientation
cordova plugin add ionic-plugin-keyboard
cordova plugin add cordova-plugin-whitelist
ios-platform android-platform wp-platform:
cordova platforms add $(subst -platform,,$@) || echo "Platform already added"
ios: ios-platform plugins
cordova plugin add https://github.com/tjwoon/csZBar.git
cordova plugin add phonegap-plugin-push@1.5.3
android: android-platform plugins
cordova plugin add https://github.com/jrontend/phonegap-plugin-barcodescanner
cordova plugin add phonegap-plugin-push@1.2.3
wp: wp-platform plugins
cordova plugin add https://github.com/jrontend/phonegap-plugin-barcodescanner
build-ios build-android build-wp8:
cordova build $(subst build-,,$@)
run:
cordova run --device

View file

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<Deployment AppPlatformVersion="8.1" xmlns="http://schemas.microsoft.com/windowsphone/2014/deployment">
<DefaultLanguage code="en-US" xmlns="" />
<Languages xmlns="">
<Language code="en-US" />
<Language code="fr" />
<Language code="de" />
<Language code="ja" />
<Language code="es" />
<Language code="ru" />
<Language code="pl" />
<Language code="cs" />
</Languages>
<App Author="Bitpay Inc." BitsPerPixel="32" Description="*DESCRIPTION*" Genre="apps.normal" ProductID="*WPPRODUCTID*" Publisher="*APPDESCRIPTION*" PublisherID="*WPPUBLISHERID*" RuntimeType="Silverlight" Title="*APPDESCRIPTION*" Version="*VERSION*.0" xmlns="" NotificationService="MPN">
<IconPath IsRelative="true" IsResource="false">Assets\icon@2.png</IconPath>
<Capabilities>
<Capability Name="ID_CAP_WEBBROWSERCOMPONENT" />
<Capability Name="ID_CAP_NETWORKING" />
<Capability Name="ID_CAP_ISV_CAMERA" />
<Capability Name="ID_CAP_IDENTITY_DEVICE" />
</Capabilities>
<Tasks>
<DefaultTask Name="_default" NavigationPage="MainPage.xaml" />
</Tasks>
<Tokens>
<PrimaryToken TaskName="_default" TokenID="*NAMECASENOSPACE*Token">
<TemplateFlip>
<SmallImageURI IsRelative="true" IsResource="false">Assets\200x200@1.png</SmallImageURI>
<Count>0</Count>
<BackgroundImageURI IsRelative="true" IsResource="false">Assets\200x200@2.png</BackgroundImageURI>
<Title>*APPDESCRIPTION*</Title>
<BackContent />
<BackBackgroundImageURI />
<BackTitle />
<LargeBackgroundImageURI />
<LargeBackContent />
<LargeBackBackgroundImageURI />
<DeviceLockImageURI />
<HasLarge>false</HasLarge>
</TemplateFlip>
</PrimaryToken>
</Tokens>
<ScreenResolutions>
<ScreenResolution Name="ID_RESOLUTION_WVGA" />
<ScreenResolution Name="ID_RESOLUTION_WXGA" />
<ScreenResolution Name="ID_RESOLUTION_HD720P" />
</ScreenResolutions>
</App>
</Deployment>

120
app-template/apply.js Executable file
View file

@ -0,0 +1,120 @@
#!/usr/bin/env node
'use strict';
//
var templates = {
'package.json': '/',
'Makefile': 'cordova/',
'ProjectMakefile': 'cordova/',
'config.xml': 'cordova/',
'Package.appxmanifest': 'cordova/wp/',
'.desktop': 'webkitbuilds/.desktop',
'setup-win.iss': 'webkitbuilds/setup-win.iss',
// 'bower.json': '/',
};
var configDir = process.argv[2] || 'copay';
var JSONheader = ' { ' + "\n" + ' "//":"PLEASE! Do not edit this file directly",' + "\n" + ' "//":" Modify it at app-template/", ' + "\n";
var MakefileHeader = "# PLEASE! Do not edit this file directly \n# Modify it at app-template/\n";
var fs = require('fs-extra');
var path = require('path');
var configBlob = fs.readFileSync(configDir + '/appConfig.json', 'utf8');
var config = JSON.parse(configBlob, 'utf8');
/////////////////
console.log('Applying ' + config.nameCase + ' template');
Object.keys(templates).forEach(function(k) {
var targetDir = templates[k];
console.log(' # ' + k + ' => ' + targetDir);
var content = fs.readFileSync(k, 'utf8');
if (k.indexOf('.json') > 0) {
content = content.replace('{', JSONheader);
} else if (k.indexOf('Makefile') >= 0) {
content = MakefileHeader + content;
}
Object.keys(config).forEach(function(k) {
if (k.indexOf('_') == 0) return;
var r = new RegExp("\\*" + k.toUpperCase() + "\\*", "g");
content = content.replace(r, config[k]);
});
var r = new RegExp("\\*[A-Z]{3,30}\\*", "g");
var s = content.match(r);
if (s) {
console.log('UNKNOWN VARIABLE', s);
process.exit(1);
}
fs.writeFileSync('../' + targetDir + k, content, 'utf8');
});
/////////////////
console.log('Copying ' + configDir + '/appConfig.json' + ' to root');
configBlob = configBlob.replace('{', JSONheader);
fs.writeFileSync('../appConfig.json', configBlob, 'utf8');
function copyDir(from, to, cb) {
console.log('Copying dir ' + from + ' to');
var files = [];
fs.walk(from)
.on('data', function(item) {
if ((item.stats["mode"] & 0x4000)) {
var tmp = item.path + '/';
var l = tmp.length - from.length;
if (tmp.indexOf(from) == l) return; // #same dir
console.log('[apply.js.81]', l); //TODO
console.log('[apply.js.78]', from); //TODO
// console.log('[apply.js.78]', to); //TODO
console.log('[apply.js.78]', item.path); //TODO
console.log('[apply.js.78]', tmp.indexOf(from)); //TODO
}
if (item.path.indexOf('DS_Store') >= 0) return;
files.push(item.path)
})
.on('end', function() {
files.forEach(function(i) {
console.log(' # ' + i);
fs.copySync(i, to + path.basename(i));
});
return cb();
})
}
copyDir(configDir + '/img/', '../public/img/', function() {
copyDir(configDir + '/androidRes/', '../cordova/android/res/', function() {
copyDir(configDir + '/iosIcons/', '../cordova/ios/icons/', function() {
copyDir(configDir + '/iosSplash/', '../cordova/ios/splash/', function() {
copyDir(configDir + '/wpAssets/', '../cordova/wp/Assets/', function() {
copyDir(configDir + '/wpImg/', '../cordova/wp/', function() {
// TODO WP
console.log("apply.js finished. \n\n");
});
});
});
});
});
});

75
app-template/config.xml Normal file
View file

@ -0,0 +1,75 @@
<?xml version='1.0' encoding='utf-8'?>
<widget id="com.bitpay.*NAMENOSPACE*"
version="*VERSION*"
android-versionCode="*ANDROIDVERSION*"
ios-CFBundleVersion="*VERSION*">
<name>*NAMECASENOSPACE*</name>
<description>
*APPDESCRIPTION*
</description>
<author email="support@bitpay.com" href="*URL*">
BitPay Inc.
</author>
<content src="index.html" />
<access origin="*" />
<preference name="AndroidPersistentFileLocation" value="Internal" />
<preference name="iosPersistentFileLocation" value="Library" />
<preference name="DisallowOverscroll" value="true"/>
<preference name="HideKeyboardFormAccessoryBar" value="true"/>
<preference name="SplashScreen" value="copayscreen" />
<preference name="ShowSplashScreenSpinner" value="false" />
<preference name="AutoHideSplashScreen" value="false" />
<preference name="FadeSplashScreen" value="true" />
<preference name="FadeSplashScreenDuration" value="1" />
<preference name="BackgroundColor" value="#2C3E50" />
<preference name="StatusBarOverlaysWebView" value="false" />
<preference name="StatusBarBackgroundColor" value="#2C3E50" />
<preference name="StatusBarStyle" value="lightcontent" />
<preference name="BackupWebStorage" value="none"/>
<preference name="windows-target-version" value="8.1"/>
<preference name="Orientation" value="default" />
<platform name="android">
<hook type="after_run" src="scripts/afterRun.js" />
</platform>
<platform name="ios">
<!-- iOS 8.0+ -->
<!-- iPad Pro -->
<icon src="../ios/icons/icon-83.5@2x.png" width="167" height="167" />
<!-- iPhone 6 Plus -->
<icon src="../ios/icons/icon-60@3x.png" width="180" height="180" />
<!-- iOS 7.0+ -->
<!-- iPhone / iPod Touch -->
<icon src="../ios/icons/icon-60@2x.png" width="120" height="120" />
<!-- iPad -->
<icon src="../ios/icons/icon-76.png" width="76" height="76" />
<icon src="../ios/icons/icon-76@2x.png" width="152" height="152" />
<!-- iOS 6.1 -->
<!-- Spotlight Icon -->
<icon src="../ios/icons/icon-40.png" width="40" height="40" />
<icon src="../ios/icons/icon-40@2x.png" width="80" height="80" />
<!-- iPhone / iPod Touch -->
<icon src="../ios/icons/icon.png" width="57" height="57" />
<icon src="../ios/icons/icon@2x.png" width="114" height="114" />
<!-- iPad -->
<icon src="../ios/icons/icon-72.png" width="72" height="72" />
<icon src="../ios/icons/icon-72@2x.png" width="144" height="144" />
<!-- iPhone Spotlight and Settings Icon -->
<icon src="../ios/icons/icon-small.png" width="29" height="29" />
<icon src="../ios/icons/icon-small@2x.png" width="58" height="58" />
<icon src="../ios/icons/icon-small@3x.png" width="87" height="87" />
<!-- iPad Spotlight and Settings Icon -->
<icon src="../ios/icons/icon-50.png" width="50" height="50" />
<icon src="../ios/icons/icon-50@2x.png" width="100" height="100" />
<!-- Splash -->
<splash src="../ios/splash/Default~iphone.png" width="320" height="480"/>
<splash src="../ios/splash/Default@2x~iphone.png" width="640" height="960"/>
<splash src="../ios/splash/Default-Portrait~ipad.png" width="768" height="1024"/>
<splash src="../ios/splash/Default-Portrait@2x~ipad.png" width="1536" height="2048"/>
<splash src="../ios/splash/Default-568h@2x~iphone.png" width="640" height="1136"/>
<splash src="../ios/splash/Default-667h.png" width="750" height="1334"/>
<splash src="../ios/splash/Default-736h.png" width="1242" height="2208"/>
</platform>
</widget>

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View file

@ -0,0 +1,50 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Capa_1" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="-222 391.9 150 65.9"
enable-background="new -222 391.9 150 65.9" xml:space="preserve">
<title>download 3</title>
<desc>Created with Sketch.</desc>
<g id="Login" sketch:type="MSPage">
<g id="Tour-1" transform="translate(-244.000000, -476.000000)" sketch:type="MSArtboardGroup">
<g id="download-3" transform="translate(244.000000, 476.000000)" sketch:type="MSLayerGroup">
<path id="Shape_4_" sketch:type="MSShapeGroup" fill="#2C3E50" d="M-75.1,399.7c-1.1,0.1-2.2,0.4-3.4,0.7c-0.4,0.1-0.7,0.4-1,0.7
c-0.3,0.3-0.6,0.6-0.8,0.8c-0.2,0.2-0.4,0.6-0.6,1.2c-0.2,0.6-0.4,1-0.5,1.3c-0.1,0.3-0.3,0.9-0.5,1.7c-0.2,0.8-0.4,1.5-0.5,1.9
c-0.9,3.2-2.4,6.4-4.5,9.7c-2,3.3-3.8,5-5.3,5.2c-0.8,0.1-1.3-0.6-1.4-2c-0.3-2.7,0.3-6.1,1.6-10.2c1.4-4.1,2.8-7,4.4-8.7
c0.2-0.3,0.3-0.5,0.3-0.7c0-0.2-0.1-0.2-0.3-0.2c-2.2,0.2-4,0.7-5.2,1.4c-1.2,0.7-2.3,2-3.4,4.1c-0.8,1.6-1.4,3.5-2,5.9
c-2.8,6.8-5.4,10.3-7.7,10.6c-0.8,0.1-1.2-0.4-1.3-1.5c-0.2-2.1,0.4-5.6,2-10.4c1.5-4.8,2.9-7.9,4.2-9.1l-0.6,0.1l-3.2,0.3
c-0.8,0.1-1.7,0.5-2.6,1.4c-0.9,0.8-1.5,1.7-1.9,2.8c-0.5-1.3-1.4-2.2-2.7-2.7c-1.3-0.5-2.6-0.7-3.9-0.5c-2.9,0.3-5.4,1.7-7.6,4
c-2.2,2.4-3.8,5.2-4.7,8.3c0,0.1,0,0.1-0.1,0.2c-0.1,0.3-0.3,0.7-0.5,1.1c-1.1,2.4-1.9,4-2.5,5c-1.1,1.8-2.5,3.5-4.2,5.1
s-3.3,2.5-5.1,2.7l-0.5,0.1c2.6-2.2,4.7-5,6.3-8.6c1.7-3.6,2.3-7,2-10.2c-0.4-3.9-2-5.6-4.9-5.3c-3,0.3-6.2,3.3-9.6,8.9
c1.7-4.4,3.1-7.1,4.2-8.1l-1.9,0.2c-2.5,0.3-4.2,1-5.1,2.1c-0.4,0.6-1.1,2.3-1.9,5c-0.3,1-0.7,2.4-1.2,4.3
c-1.5,3.4-3.3,5.2-5.3,5.5c-1.2,0.1-2.1-0.2-2.9-1c0.6-2.3,0.9-4.5,0.6-6.5c-0.6-5.3-3.4-7.7-8.4-7.1c-3,0.3-5.6,1.6-7.8,3.9
c-1.3,1.4-2.4,2.9-3.3,4.5c0,0,0,0,0-0.1c-2,3.8-5.6,10.4-10,14.2c-4.4,3.8-8.8,5.9-13.1,6.4c-6.9,0.7-10.7-2.6-11.5-10.1
c-0.5-4.8,0.2-9.7,2.2-14.7c2-5,4.9-9.1,8.7-12.5c3.8-3.4,7.8-5.3,12.2-5.8c3.3-0.4,5,0.7,5.3,3.1c0.2,1.6-0.4,3-1.7,4.3
c-1.3,1.3-2.7,2-4.4,2.2c-0.6,0.1-1.1,0-1.6-0.1c-0.4,0.8-0.6,1.5-0.5,2.1c0.1,0.6,0.4,1.1,1.1,1.5c0.6,0.3,1.4,0.5,2.4,0.4
c2-0.2,3.8-1,5.6-2.4s2.8-2.9,3.3-4.8c0.2-1,0.3-1.8,0.2-2.6c-0.2-2.1-1.4-3.6-3.7-4.7s-5.3-1.4-9.2-1c-3.9,0.4-7.7,1.9-11.5,4.4
c-3.8,2.5-6.8,5.6-9.1,9.1c-2.3,3.5-4,7.3-5.2,11.3c-1.2,4-1.5,7.7-1.2,11.2c1,9.2,6.5,13.3,16.4,12.2c4.3-0.5,8.4-1.7,12.3-3.8
c3.9-2.1,7.1-4.7,9.5-7.8c0.4-0.5,0.7-1,1.1-1.4c0,0.4,0,0.7,0.1,1.1c0.3,2.6,1.2,4.5,2.6,5.6c1.5,1.1,3.3,1.6,5.4,1.4
c3.3-0.4,5.9-1.5,7.8-3.4c1.9-1.9,3.5-4.5,4.7-7.6c1.1,0.7,2.4,1,3.8,0.8c1.2-0.1,2.5-0.8,3.7-1.9c-0.6,2.5-1.3,5.5-2.1,8.8
c-2.3,9.8-3.9,15.5-4.9,17.3l3-0.3c0.8-0.1,1.5-0.3,2.1-0.5c0.5-0.3,1-0.8,1.3-1.6c0.4-0.8,0.8-2.5,1.4-5l2.4-11.4
c0.7,2,3.1,2.8,7.2,2.4c4.1-0.4,7.4-2.1,10.1-5c1.7-1.8,3.2-3.9,4.6-6.5c0,1,0,2,0.1,3c0.4,3.9,2,5.6,4.9,5.3
c4.1-0.4,8.1-5.2,12-14.2c-0.6,2.6-0.8,5.2-0.5,7.8c0.4,3.5,1.7,5.1,4,4.9c2.9-0.3,6.1-3.7,9.6-10.3c-0.2,1.6-0.2,2.9-0.1,3.9
c0.2,1.8,0.6,3,1.4,3.9c0.8,0.8,1.7,1.2,2.8,1.1s2.1-0.4,2.9-0.7c0.8-0.3,1.9-1.2,3.2-2.6c1.3-1.4,2.8-3.4,4.6-6.1l-2.6,10
c-1.7,6.3-4.2,9.7-7.6,10.1c-0.9,0.1-1.6-0.1-2.3-0.5c-0.6-0.4-1-1-1.1-1.8c-0.2-1.5,0.1-2.4,0.9-2.8c-0.3-0.4-0.7-0.7-1.2-1
s-1.2-0.4-1.9-0.3c-0.7,0.1-1.4,0.5-1.8,1.3c-0.5,0.8-0.7,1.7-0.6,2.6c0.2,1.8,1.1,3,2.7,3.6c1.6,0.7,3.4,0.9,5.6,0.6
c2.1-0.2,4.2-1,6.1-2.2c2-1.3,3.5-2.8,4.8-4.7c1.2-1.9,2.2-4.3,2.9-7.4c0.3-1,0.6-2.4,1-4.3c0.4-1.9,0.7-3,0.8-3.5
c0.1-0.5,0.4-1.8,1-4.1c0.5-2.3,1.2-4.7,2-7.5c1-3.3,2.1-5.4,3.4-6.4L-75.1,399.7L-75.1,399.7z M-164.2,414.5
c-1.1,0.1-1.9,0.5-2.4,1.3c-0.5,0.7-0.8,1.7-0.6,2.8c0.2,1.9,1.1,3.3,2.7,4.4c-0.8,2.4-1.9,4.7-3.2,6.8c-1.3,2.1-2.9,3.2-4.7,3.4
c-2.2,0.1-3.5-1.1-3.7-3.6c-0.3-2.5,0.2-5.4,1.4-8.7c2.2-5.9,4.7-9,7.7-9.4c1.9-0.2,3,0.8,3.4,3L-164.2,414.5L-164.2,414.5z
M-148,430.7c-1.2,0.1-1.9-0.8-2.2-2.8s0.5-4.6,2.1-7.9c1.6-3.3,3.2-5.7,4.8-7.3c1-1,1.9-1.5,2.8-1.6c0.3,0,0.4,0,0.6,0
c0.7,0.1,1,0.7,1.2,1.7c0.3,2.4-0.7,6-2.8,10.6C-143.7,428.1-145.8,430.5-148,430.7L-148,430.7z M-114.3,416.7
c-1,2-2.1,3.7-3.5,5.2c-1.3,1.5-2.6,2.4-3.7,2.5c-1,0.1-1.6-0.5-1.7-1.8c-0.3-3,0.6-6.6,2.8-10.7c2.2-4.1,4.7-6.3,7.5-6.6
c1.6-0.2,2.6,0.4,3.2,1.7C-110.6,409.1-112.2,412.3-114.3,416.7L-114.3,416.7z"/>
<path id="Shape_5_" sketch:type="MSShapeGroup" fill="#2C3E50" d="M-161.8,439.1c-14.4,2.5-28.3,5.9-38,9.9
c-4.1,1.7-5.1,5-3.8,8.1c16.6-7.5,24.8-9.7,36.9-12.7c2.1-0.5,3.9-2.1,4.6-4.2C-162,439.9-161.9,439.5-161.8,439.1L-161.8,439.1z
"/>
<path id="Shape_6_" sketch:type="MSShapeGroup" fill="#2C3E50" d="M-107.8,437.5c0.4-1.8-0.1-1.9-1.9-2.1
c-10.1-1.5-21.1-1.4-34.4,1.5c-2.2,0.5-4.1,2-4.4,4.3C-148.6,441.2-131.9,435.7-107.8,437.5L-107.8,437.5L-107.8,437.5z"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1,011 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 225 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 515 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 561 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 427 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 409 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 KiB

96
app-template/package.json Normal file
View file

@ -0,0 +1,96 @@
{
"name": "*NAMENOSPACE*",
"description": "*DESCRIPTION*",
"author": "BitPay",
"version": "*VERSION*",
"keywords": [
"wallet",
"copay",
"multisignature",
"bitcoin",
"bitcore"
],
"main": "public/index.html",
"window": {
"title": "Copay - A multisignature bitcoin wallet",
"icon": "./public/img/icons/icon-256.png",
"toolbar": false,
"show": true,
"visible": true,
"resizable": true,
"frame": true,
"width": 800,
"height": 600,
"position": "center",
"fullscreen": false
},
"webkit": {
"page-cache": false,
"java": false,
"plugin": false
},
"dom_storage_quota": 200,
"id": "jid1-x7bV5evAaI1P9Q",
"homepage": "https://github.com/bitpay/copay",
"license": "MIT",
"repository": {
"url": "git://github.com/bitpay/copay.git",
"type": "git"
},
"bugs": {
"url": "https://github.com/bitpay/copay/issues"
},
"dependencies": {
"bitcore-wallet-client": "2.11.0",
"coveralls": "^2.11.9",
"express": "^4.11.2",
"fs": "0.0.2",
"shelljs": "^0.3.0"
},
"scripts": {
"preinstall": "bower install && cd app-template && ./apply.js",
"postinstall": "npm run build",
"build": "grunt",
"start": "node app.js",
"test": "./node_modules/.bin/grunt test-coveralls",
"clean": "git clean -dfx"
},
"devDependencies": {
"grunt-angular-gettext": "^2.2.3",
"fs-extra": "^0.30.0",
"grunt-browserify": "^5.0.0",
"grunt-cli": "^1.2.0",
"grunt-contrib-compress": "^1.3.0",
"grunt-contrib-concat": "^1.0.1",
"grunt-contrib-copy": "^1.0.0",
"grunt-contrib-uglify": "^2.0.0",
"grunt-contrib-watch": "^1.0.0",
"grunt-exec": "^1.0.0",
"grunt-karma": "^2.0.0",
"grunt-karma-coveralls": "^2.5.4",
"grunt-nw-builder": "^2.0.3",
"grunt-sass": "^1.2.0",
"adm-zip": "^0.4.7",
"angular": "1.4.6",
"angular-mocks": "1.4.10",
"bhttp": "^1.2.1",
"bower": "^1.7.9",
"chai": "^3.5.0",
"cordova": "5.4.1",
"cordova-android": "5.1.1",
"karma": "^0.13.22",
"karma-chai": "^0.1.0",
"karma-chrome-launcher": "^1.0.1",
"karma-cli": "^1.0.0",
"karma-coverage": "^1.0.0",
"karma-mocha": "^1.0.1",
"karma-mocha-reporter": "^2.0.3",
"karma-phantomjs-launcher": "^1.0.0",
"karma-sinon": "^1.0.5",
"load-grunt-tasks": "^3.5.0",
"mocha": "^2.4.5",
"phantomjs-prebuilt": "^2.1.7",
"xcode": "^0.8.2"
}
}

57
app-template/setup-win.iss Executable file
View file

@ -0,0 +1,57 @@
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
#define MyAppName "*NAMENOSPACE*"
#define MyAppVersion "*VERSION*"
#define MyAppPublisher "BitPay"
#define MyAppURL "*URL*"
#define MyAppExeName "*NAMECASENOSPACE.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=*NAMECASENOSPACE*-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: "*NAMECASENOSPACE*\win64\*NAMENOSPACE*.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "*NAMECASENOSPACE*\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
[Registry]
Root: HKCR; Subkey: "bitcoin"; ValueType: "string"; ValueData: "URL:Bitcoin Custom Protocol"; Flags: uninsdeletekey
Root: HKCR; Subkey: "bitcoin"; ValueType: "string"; ValueName: "URL Protocol"; ValueData: ""
Root: HKCR; Subkey: "bitcoin\DefaultIcon"; ValueType: "string"; ValueData: "{app}\{#MyAppExeName},0"
Root: HKCR; Subkey: "bitcoin\shell\open\command"; ValueType: "string"; ValueData: """{app}\{#MyAppExeName}"" ""%1"""
Root: HKCR; Subkey: "*NAMENOSPACE*"; ValueType: "string"; ValueData: "URL:*NAMECASENOSPACE* Custom Protocol"; Flags: uninsdeletekey
Root: HKCR; Subkey: "*NAMENOSPACE*"; ValueType: "string"; ValueName: "URL Protocol"; ValueData: ""
Root: HKCR; Subkey: "*NAMENOSPACE*\DefaultIcon"; ValueType: "string"; ValueData: "{app}\{#MyAppExeName},0"
Root: HKCR; Subkey: "*NAMENOSPACE*\shell\open\command"; ValueType: "string"; ValueData: """{app}\{#MyAppExeName}"" ""%1"""