Skip to content

Instantly share code, notes, and snippets.

View okonon's full-sized avatar
🇺🇦

OK okonon

🇺🇦
  • Sevastopol, Ukraine
View GitHub Profile

Opening and closing an SSH tunnel in a shell script the smart way

I recently had the following problem:

  • From an unattended shell script (called by Jenkins), run a command-line tool that accesses the MySQL database on another host.
  • That tool doesn't know that the database is on another host, plus the MySQL port on that host is firewalled and not accessible from other machines.

We didn't want to open the MySQL port to the network, but it's possible to SSH from the Jenkins machine to the MySQL machine. So, basically you would do something like

ssh -L 3306:localhost:3306 remotehost

@okonon
okonon / .env
Created August 4, 2017 15:37 — forked from joshdholtz/.env
Integrate fastlane into your Ionic/Cordova build process
FASTLANE_TEAM_ID = <your team id>
FASTLANE_USER = <your user email>
PRODUCE_APP_IDENTIFIER = com.fastlanescreencast.FastlaneScreencast
CERT_APP_IDENTIFIER = com.fastlanescreencast.FastlaneScreencast
SIGH_APP_IDENTIFIER = com.fastlanescreencast.FastlaneScreencast
ANDROID_KEYSTORE_KEYSTORE_NAME = FastlaneScreencast.keystore
ANDROID_KEYSTORE_ALIAS_NAME = fastlanescreencast
ANDROID_KEYSTORE_PASSWORD = supersecret
@okonon
okonon / README.md
Created July 5, 2017 20:25 — forked from escapedcat/README.md
Tutorial: Cordova iOS build with fastlane, match and Jenkins

Cordova CI with Jenkins for iOS apps

Inspired by CI server on Mac OS for iOS using GitLab and Fastlane by @v_shevchyk we decided to write down our approach. This will be extended and improved over time.

So you want to deploy your Cordova app, but you hate opening xcode manually to archive and export and sign and cry? Try this. By this we mean we try to explain how to create the following CI (Jenkins) setup:

  • Build Cordova app
  • Create & sign your ipa file
  • Upload to HockeyApp (for Enterprise distribution)
@okonon
okonon / Appfile.rb
Created May 6, 2017 17:56 — forked from ravishtiwari/Appfile.rb
Ionic Build IPA with Fastlane tool
app_identifier "com.yourorganization.mytodoapp" # The bundle identifier of your app
apple_id "<You Apple Id>" # Your Apple email address
# You can uncomment any of the lines below and add your own
# team selection in case you're in multiple teams
# team_name "CAMobileApp"
# team_id "Q2CBPJ58CA"
# you can even provide different app identifiers, Apple IDs and team names per lane:
# https://github.com/KrauseFx/fastlane/blob/master/docs/Appfile.md
@okonon
okonon / upload-to-appstore.sh
Created September 28, 2016 02:53 — forked from jedi4ever/upload-to-appstore.sh
Command upload App/Ipa to the iTunes Connect App Store
#!/bin/bash
set -ex
# This scripts allows you to upload a binary to the iTunes Connect Store and do it for a specific app_id
# Because when you have multiple apps in status for download, xcodebuild upload will complain that multiple apps are in wait status
# Requires application loader to be installed
# See https://developer.apple.com/library/ios/documentation/LanguagesUtilities/Conceptual/iTunesConnect_Guide/Chapters/SubmittingTheApp.html
# Itunes Connect username & password
USER=bla
@okonon
okonon / gist:6a668c50deba4b2491256ac4aec07a60
Created August 4, 2016 20:06 — forked from tonymtz/gist:d75101d9bdf764c890ef
Uninstall nodejs from OSX Yosemite
# first:
lsbom -f -l -s -pf /var/db/receipts/org.nodejs.pkg.bom | while read f; do sudo rm /usr/local/${f}; done
sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*
# To recap, the best way (I've found) to completely uninstall node + npm is to do the following:
# go to /usr/local/lib and delete any node and node_modules
cd /usr/local/lib
sudo rm -rf node*
#!/usr/bin/env node
// This plugin replaces text in a file with the app version from config.xml.
var wwwFileToReplace = "js/build.js";
var fs = require('fs');
var path = require('path');
var rootdir = process.argv[2];
Step 1: Add some npm packages to your devDependencies section in package.json:
"gulp-usemin": "^0.3.8",
"gulp-util": "^2.2.14",
"run-sequence": "^1.0.2",
"shelljs": "^0.3.0"
Step 2: Import them in gulpfile.js:
var sh = require('shelljs');

Grunt and Cordova 3

The advantages of using Grunt with Cordova:

  1. It simplifies working with the cordova cli.
  2. It provides a mechanism to copy platform customization to the platforms directory without having to commit the generated plugins and platforms directories to version control.
  3. It provides a way to watch resources and automatically run cordova commands.

Stack Overflow: .gitignore for PhoneGap/Cordova 3.0 projects - what should I commit?