Skip to content

Commit

Permalink
Configured for GitHub Releases and Travis CI.
Browse files Browse the repository at this point in the history
  • Loading branch information
mittsh committed Nov 29, 2014
1 parent 5b4f882 commit 1ca109c
Show file tree
Hide file tree
Showing 8 changed files with 132 additions and 763 deletions.
3 changes: 3 additions & 0 deletions .gitignore
@@ -0,0 +1,3 @@
.DS_Store
node_modules/
build/
19 changes: 19 additions & 0 deletions .travis.yml
@@ -0,0 +1,19 @@
language: node_js
node_js:
- '0.10'
before_install:
- npm install coffee-script
before_script:
- ./node_modules/.bin/cake archive
script:
- ./node_modules/.bin/cake test
deploy:
provider: releases
api_key:
secure: by9x9mMPf7QcZEu1XsCCpTqM8CUgVs5+KZfmMNCE/bGuAn94pSdcKADiZFuQhRyJBiXT8V7yUOdeEtkgyhVNLfceoqStkWhFXWT1iILfiOzOrHsH2sjSfBFfvD2zAoAy7JBeqdiPbBsvuZfrdYS5QmZ654A6mHokeUnM0t42ePs=
file: build/ObjCNSURLConnectionCodeGenerator.zip
skip_cleanup: true
on:
tags: true
all_branches: true
repo: LuckyMarmot/Paw-ObjCNSURLConnectionCodeGenerator
94 changes: 87 additions & 7 deletions Cakefile
@@ -1,19 +1,99 @@
{print} = require 'sys'
{spawn} = require 'child_process'
{ncp} = require 'ncp'
mkdirp = require 'mkdirp'
fs = require 'fs'

file = 'ObjCNSURLConnectionCodeGenerator.coffee'
identifier = 'com.luckymarmot.PawExtensions.ObjCNSURLConnectionCodeGenerator'

task 'build', ->
coffee = spawn 'coffee', ['-c', file]
extensions_dir = "#{ process.env.HOME }/Library/Containers/com.luckymarmot.Paw/Data/Library/Application Support/com.luckymarmot.Paw/Extensions/"
build_root_dir = "build"
build_dir = "#{ build_root_dir }/#{ identifier }"

# compile CoffeeScript
build_coffee = (callback) ->
coffee = spawn 'coffee', ['-c', '-o', build_dir, file]
coffee.stderr.on 'data', (data) ->
process.stderr.write data.toString()
coffee.stdout.on 'data', (data) ->
print data.toString()
process.stdout.write data.toString()
coffee.on 'exit', (code) ->
if code is 0
console.log '>>> Build successful'
callback?()
else
console.error "Build failed with error: #{ code }"

# copy files to build directory
build_copy = () ->
fs.writeFileSync "#{ build_dir }/README.md", fs.readFileSync("./README.md")
fs.writeFileSync "#{ build_dir }/LICENSE", fs.readFileSync("./LICENSE")
fs.writeFileSync "#{ build_dir }/objc.mustache", fs.readFileSync("./objc.mustache")
fs.writeFileSync "#{ build_dir }/mustache.js", fs.readFileSync("./node_modules/mustache/mustache.js")
fs.writeFileSync "#{ build_dir }/URI.js", fs.readFileSync("./lib/URI.js")

# build: build CoffeeScript and copy files to build directory
build = (callback) ->
# mkdir build dir
mkdirp build_dir, (err) ->
if err
console.error err
else
console.log '!!! Build failed'
build_coffee () ->
build_copy()
callback?()

# install: copy files to Extensions directory
install = (callback) ->
ncp build_dir, "#{ extensions_dir }/#{ identifier }", (err) ->
if err
console.error err
else
callback?()

# archive: create a zip archive from the build
archive = (callback) ->
zip_file = "#{ identifier.split('.').pop() }.zip"

# go to build dir
process.chdir "#{ build_root_dir }/"

# delete any previous zip
if fs.existsSync zip_file
fs.unlinkSync zip_file

# zip
zip = spawn 'zip', ["-r", zip_file, "#{ identifier }/"]
zip.stderr.on 'data', (data) ->
process.stderr.write data.toString()
zip.stdout.on 'data', (data) ->
process.stdout.write data.toString()
zip.on 'exit', (code) ->
if code is 0
callback?()
else
console.error "zip returned with error code: #{ code }"

task 'build', ->
build()

task 'test', ->
build () ->
# no test to run

task 'install', ->
build () ->
install()

task 'archive', ->
build () ->
archive()

task 'watch', ->
spawn 'coffee', ['--watch', '--compile', file]
# find all files in directory
for filename in fs.readdirSync '.'
# only watch non-hidden files
if not filename.match(/^\./) and fs.lstatSync("./#{ filename }").isFile()
fs.watchFile "./#{ filename }", {persistent:true, interval:500}, (_event, _filename) ->
# when a file is changed, build and install
build () ->
install()
178 changes: 0 additions & 178 deletions ObjCNSURLConnectionCodeGenerator.js

This file was deleted.

7 changes: 7 additions & 0 deletions README.md
@@ -1,3 +1,5 @@
[![Build Status](https://travis-ci.org/LuckyMarmot/Paw-ObjCNSURLConnectionCodeGenerator.svg?branch=master)](https://travis-ci.org/LuckyMarmot/Paw-ObjCNSURLConnectionCodeGenerator)

#Objective-C + NSURLConnection Code Generator (Paw Extension)

This a Paw Extension that generates code for Objective-C using the `NSURLConnection` library.
Expand All @@ -8,6 +10,11 @@ This Paw Extension is released under the [MIT License](LICENSE). Feel free to fo

Copyright © 2014 Paw Inc.

##Contributors

See [Contributors](https://github.com/LuckyMarmot/Paw-ObjCNSURLConnectionCodeGenerator/graphs/contributors).

##Credits

* [Mustache.js](https://github.com/janl/mustache.js/), also released under the MIT License
* [URI.js](http://medialize.github.io/URI.js/), also released under the MIT License
File renamed without changes.

0 comments on commit 1ca109c

Please sign in to comment.