slowlane 0.0.1.alpha

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 4da5cf0bb5f1067cab8ebc8ef1bb464409da21f2
4
+ data.tar.gz: bbd56b8f4170cba7a4ae99b091a77b411b17b6e7
5
+ SHA512:
6
+ metadata.gz: e3b6ecdfa0c0a8b8ad0c8e8ef6989fa57af9caf53e526791abbc8149a538134f9b5b755596dc3d639387bbe1489ed89ac62954972a1843a7a68b60f7c0f60994
7
+ data.tar.gz: 2cbfd8dff057a46dadc63c40cf9b34f39fc3da39179ac3a42af23631ccee341c2f6a22a61c75a9a5d36402af953deaeb433a7abcfcdea1690951a15d7ce24b3a
data/.gitignore ADDED
@@ -0,0 +1,4 @@
1
+ trial/
2
+ *.env
3
+ .ruby-*
4
+ Gemfile.lock
data/Gemfile ADDED
@@ -0,0 +1,2 @@
1
+ source "https://rubygems.org"
2
+ gemspec
data/README.md ADDED
@@ -0,0 +1,21 @@
1
+ # Slowlane
2
+ ## Description
3
+ > The philosophy is never to be clever but the user in control and ask him to clarify rather than making a clever choice.
4
+
5
+ it's like [fastlane tools](https://fastlane.tools) but without the magic.
6
+
7
+ ## Why ?
8
+
9
+ Fastlane is great but it makes a lot of assumptions:
10
+ - hey let's sync all your provisioning profiles
11
+ - when you add a device, let's add it to all provisioning profiles by default
12
+ - let's use a fastfile
13
+ - let's store your user:password in your keychain
14
+ - ....
15
+
16
+ Don't get us wrong, we think fastlane is **great** , but we are one of those who don't like suprises.
17
+
18
+ We leverage 'spaceship' library and will continue to work on that to have a shared
19
+
20
+ ## Status
21
+ Real alpha , as we are still exploring the spaceship api
data/Rakefile ADDED
@@ -0,0 +1,5 @@
1
+ require 'rubygems'
2
+ require 'bundler'
3
+ require 'bundler/setup'
4
+ Bundler::GemHelper.install_tasks
5
+
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rubygems'
4
+ require "thor"
5
+ require_relative '../lib/slowlane/itunes/app.rb'
6
+ require_relative '../lib/slowlane/itunes/team.rb'
7
+
8
+ class SlowlaneItunes < Thor
9
+
10
+ class_option :username , :default => '<username>' , :required => true, :desc => 'username [SLOWLANE_USERNAME]'
11
+ class_option :password , :default => '<password>' , :required => true, :desc => 'password [SLOWLANE_PASSWORD]'
12
+ class_option :team , :default => '<team>' , :required => false, :desc => 'team [SLOWLANE_TEAM]'
13
+
14
+ desc "app SUBCOMMAND ...ARGS", "manage apps"
15
+ subcommand "app", Slowlane::Itunes::App
16
+
17
+ desc "team SUBCOMMAND ...ARGS", "manage teams"
18
+ subcommand "team", Slowlane::Itunes::Team
19
+
20
+ end
21
+
22
+ SlowlaneItunes.start(ARGV)
@@ -0,0 +1,32 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rubygems'
4
+ require "thor"
5
+ require_relative '../lib/slowlane/portal/team.rb'
6
+ require_relative '../lib/slowlane/portal/app.rb'
7
+ require_relative '../lib/slowlane/portal/profile.rb'
8
+ require_relative '../lib/slowlane/portal/device.rb'
9
+
10
+ class SlowlanePortal < Thor
11
+
12
+ class_option :username , :default => '<username>' , :required => true, :desc => 'username [SLOWLANE_USERNAME]'
13
+ class_option :password , :default => '<password>' , :required => true, :desc => 'password [SLOWLANE_PASSWORD]'
14
+ class_option :team , :default => '<team>' , :required => false, :desc => 'team [SLOWLANE_TEAM]'
15
+
16
+ desc "profile SUBCOMMAND ...ARGS", "manage provisioning profiles"
17
+ option :filter ,:desc => 'pattern to filter'
18
+ subcommand "profile", Slowlane::Portal::Profile
19
+
20
+ desc "device SUBCOMMAND ...ARGS", "manage devices"
21
+ option :filter ,:desc => 'pattern to filter'
22
+ subcommand "device", Slowlane::Portal::Device
23
+
24
+ desc "app SUBCOMMAND ...ARGS", "manage apps"
25
+ option :filter ,:desc => 'pattern to filter'
26
+ subcommand "app", Slowlane::Portal::App
27
+
28
+ desc "team SUBCOMMAND ...ARGS", "manage teams"
29
+ subcommand "team", Slowlane::Portal::Team
30
+ end
31
+
32
+ SlowlanePortal.start(ARGV)
@@ -0,0 +1,33 @@
1
+ require_relative './util.rb'
2
+ require "spaceship"
3
+
4
+ module Slowlane
5
+ module Itunes
6
+ class App < Thor
7
+
8
+ desc "list", "List apps"
9
+ class_option :team , :default => '<team>' , :required => true
10
+ def list()
11
+
12
+ c=Utils.credentials(options)
13
+ Spaceship::Tunes.login(c.username,c.password)
14
+
15
+ t=Utils.team(options)
16
+ Spaceship::Tunes.client.team_id=t
17
+
18
+
19
+ Spaceship::Tunes::Application.all.collect do |app|
20
+ require 'pp'
21
+ pp app
22
+ #pp app.details
23
+ #pp app.live_version
24
+ pp app.edit_version
25
+ pp app.edit_version.candidate_builds unless app.edit_version.nil?
26
+ end
27
+
28
+ end
29
+
30
+ end
31
+
32
+ end
33
+ end
@@ -0,0 +1,25 @@
1
+ require 'spaceship'
2
+ require_relative './util.rb'
3
+
4
+ module Slowlane
5
+ module Itunes
6
+ class Team < Thor
7
+
8
+ desc "list", "List apps"
9
+ def list()
10
+ require "spaceship"
11
+
12
+ c=Utils.credentials(options)
13
+ Spaceship::Tunes.login(c.username,c.password)
14
+
15
+ Spaceship::Tunes.client.teams.each do |team|
16
+ require 'pp'
17
+ pp team
18
+ #puts "#{team['teamId']}|#{team['type']}|#{team['name']}"
19
+ end
20
+
21
+ end
22
+
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,47 @@
1
+ require 'ostruct'
2
+
3
+ class Utils
4
+ def self.credentials(options)
5
+
6
+ credentials = OpenStruct.new
7
+
8
+ if ENV['SLOWLANE_USERNAME']
9
+ credentials.username=ENV['SLOWLANE_USERNAME']
10
+ else
11
+ if options[:username] == '<username>'
12
+ puts "username is required"
13
+ exit(-1)
14
+ else
15
+ credentials.username=options[:username]
16
+ end
17
+ end
18
+
19
+ if ENV['SLOWLANE_PASSWORD']
20
+ credentials.password=ENV['SLOWLANE_PASSWORD']
21
+ else
22
+ if options[:password] == '<password>'
23
+ puts "password is required"
24
+ exit(-1)
25
+ else
26
+ credentials.password=options[:username]
27
+ end
28
+ end
29
+ return credentials
30
+ end
31
+
32
+ def self.team(options)
33
+
34
+ if ENV['SLOWLANE_TEAM']
35
+ team=ENV['SLOWLANE_TEAM']
36
+ else
37
+ if options[:team] == '<team>'
38
+ puts "team is required"
39
+ exit(-1)
40
+ else
41
+ team=options[:team]
42
+ end
43
+ end
44
+ return team
45
+ end
46
+
47
+ end
@@ -0,0 +1,35 @@
1
+ require_relative './util.rb'
2
+ require "spaceship"
3
+
4
+ module Slowlane
5
+ module Portal
6
+ class App < Thor
7
+
8
+ desc "list", "List apps"
9
+ class_option :team , :default => '<team>' , :required => true
10
+ def list()
11
+
12
+ c=Utils.credentials(options)
13
+ Spaceship::Portal.login(c.username,c.password)
14
+
15
+ t=Utils.team(options)
16
+ Spaceship::Portal.client.team_id=t
17
+
18
+ Spaceship::Portal.app.all.find_all do |app|
19
+ require 'pp'
20
+ detail=[]
21
+ detail << app.app_id
22
+ detail << app.platform
23
+ detail << app.prefix
24
+ detail << app.is_wildcard
25
+ detail << app.bundle_id
26
+ detail << app.name
27
+ puts detail.join("|")
28
+ end
29
+
30
+
31
+ end
32
+
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,39 @@
1
+ require_relative './util.rb'
2
+ require "spaceship"
3
+
4
+ module Slowlane
5
+ module Portal
6
+ class Device < Thor
7
+
8
+ desc "list", "List devices"
9
+ def list()
10
+
11
+ c=Utils.credentials(options)
12
+ Spaceship::Portal.login(c.username,c.password)
13
+
14
+ t=Utils.team(options)
15
+ Spaceship::Portal.client.team_id=t
16
+
17
+ Spaceship::Portal.device.all.find_all do |device|
18
+ puts "#{device.id}|#{device.udid}|#{device.name}"
19
+ end
20
+
21
+ end
22
+
23
+ desc "add", "Add a device <udid> <description>"
24
+ def add(udid, description)
25
+
26
+ c=Utils.credentials(options)
27
+ Spaceship::Portal.login(c.username,c.password)
28
+
29
+ t=Utils.team(options)
30
+ Spaceship::Portal.client.team_id=t
31
+
32
+ newdevice = Spaceship::Portal.device.create!(name: "#{description}", udid: "#{udid}")
33
+ require 'pp'
34
+ pp newdevice
35
+
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,37 @@
1
+ require_relative './util.rb'
2
+ require "spaceship"
3
+
4
+
5
+ module Slowlane
6
+ module Portal
7
+ class Profile < Thor
8
+
9
+ desc "add_device","add_device <bundle_id> <device>"
10
+ def add_device(bundle_id,device)
11
+ puts bundle_id
12
+ puts device
13
+ end
14
+
15
+ desc "list", "List profiles"
16
+ def list()
17
+
18
+ c=Utils.credentials(options)
19
+ Spaceship::Portal.login(c.username,c.password)
20
+
21
+ t=Utils.team(options)
22
+ Spaceship::Portal.client.team_id=t
23
+
24
+ Spaceship::Portal.provisioning_profile.all.find_all do |profile|
25
+ unless options[:filter].nil?
26
+ if profile.name =~ /#{options[:filter]}/
27
+ puts "#{profile.uuid}|#{profile.id}|#{profile.distribution_method}|#{profile.name}"
28
+ end
29
+ else
30
+ puts "#{profile.uuid}|#{profile.id}|#{profile.distribution_method}|#{profile.name}"
31
+ end
32
+
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,22 @@
1
+ require_relative './util.rb'
2
+
3
+ module Slowlane
4
+ module Portal
5
+ class Team < Thor
6
+
7
+ desc "list", "List apps"
8
+ def list()
9
+ require "spaceship"
10
+
11
+ c=Utils.credentials(options)
12
+ Spaceship::Portal.login(c.username,c.password)
13
+
14
+ Spaceship::Portal.client.teams.each do |team|
15
+ puts "#{team['teamId']}|#{team['type']}|#{team['name']}"
16
+ end
17
+
18
+ end
19
+
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,47 @@
1
+ require 'ostruct'
2
+
3
+ class Utils
4
+ def self.credentials(options)
5
+
6
+ credentials = OpenStruct.new
7
+
8
+ if ENV['SLOWLANE_USERNAME']
9
+ credentials.username=ENV['SLOWLANE_USERNAME']
10
+ else
11
+ if options[:username] == '<username>'
12
+ puts "username is required"
13
+ exit(-1)
14
+ else
15
+ credentials.username=options[:username]
16
+ end
17
+ end
18
+
19
+ if ENV['SLOWLANE_PASSWORD']
20
+ credentials.password=ENV['SLOWLANE_PASSWORD']
21
+ else
22
+ if options[:password] == '<password>'
23
+ puts "password is required"
24
+ exit(-1)
25
+ else
26
+ credentials.password=options[:username]
27
+ end
28
+ end
29
+ return credentials
30
+ end
31
+
32
+ def self.team(options)
33
+
34
+ if ENV['SLOWLANE_TEAM']
35
+ team=ENV['SLOWLANE_TEAM']
36
+ else
37
+ if options[:team] == '<team>'
38
+ puts "team is required"
39
+ exit(-1)
40
+ else
41
+ team=options[:team]
42
+ end
43
+ end
44
+ return team
45
+ end
46
+
47
+ end
data/slowlane.gemspec ADDED
@@ -0,0 +1,24 @@
1
+ #require File.expand_path("../lib/slowlane/version", __FILE__)
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = "slowlane"
5
+ s.version = "0.0.1.alpha"
6
+ s.platform = Gem::Platform::RUBY
7
+ s.license = 'MIT'
8
+ s.authors = ["Patrick Debois"]
9
+ s.email = ["patrick.debois@jedi.be"]
10
+ s.homepage = "http://github.com/jedi4ever/slowlane/"
11
+ s.summary = %q{Fastlane without the magic - managing ios deployment}
12
+ s.description = %q{Cli version without supprises}
13
+
14
+ s.required_rubygems_version = ">= 2.0.6"
15
+ s.rubyforge_project = "slowlane"
16
+
17
+ s.add_dependency "thor"
18
+ s.add_dependency "spaceship"
19
+
20
+ s.files = `git ls-files`.split("\n")
21
+ s.executables = `git ls-files`.split("\n").map { |f| f =~ /^bin\/(.*)/ ? $1 : nil }.compact
22
+ s.require_path = 'lib'
23
+
24
+ end
metadata ADDED
@@ -0,0 +1,89 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: slowlane
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1.alpha
5
+ platform: ruby
6
+ authors:
7
+ - Patrick Debois
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-05-05 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: thor
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: spaceship
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ description: Cli version without supprises
42
+ email:
43
+ - patrick.debois@jedi.be
44
+ executables:
45
+ - slowlane-itunes
46
+ - slowlane-portal
47
+ extensions: []
48
+ extra_rdoc_files: []
49
+ files:
50
+ - .gitignore
51
+ - Gemfile
52
+ - README.md
53
+ - Rakefile
54
+ - bin/slowlane-itunes
55
+ - bin/slowlane-portal
56
+ - lib/slowlane/itunes/app.rb
57
+ - lib/slowlane/itunes/team.rb
58
+ - lib/slowlane/itunes/util.rb
59
+ - lib/slowlane/portal/app.rb
60
+ - lib/slowlane/portal/device.rb
61
+ - lib/slowlane/portal/profile.rb
62
+ - lib/slowlane/portal/team.rb
63
+ - lib/slowlane/portal/util.rb
64
+ - slowlane.gemspec
65
+ homepage: http://github.com/jedi4ever/slowlane/
66
+ licenses:
67
+ - MIT
68
+ metadata: {}
69
+ post_install_message:
70
+ rdoc_options: []
71
+ require_paths:
72
+ - lib
73
+ required_ruby_version: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ required_rubygems_version: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: 2.0.6
83
+ requirements: []
84
+ rubyforge_project: slowlane
85
+ rubygems_version: 2.2.2
86
+ signing_key:
87
+ specification_version: 4
88
+ summary: Fastlane without the magic - managing ios deployment
89
+ test_files: []