Application targets for the dn-m project.
dn-m / helper Goto Github PK
View Code? Open in Web Editor NEWCommand line interface for managing dn-m frameworks
Command line interface for managing dn-m frameworks
dn-m
+-- dn-m # CLI
+-- ruby
| +-- scripts
Options:
help
(shows options / commands)init
--platform
: [all | macOS | iOS]
= all
--type
: [[f | framework] | [a | app]]
= framework
--demo
(makes demo app targets for frameworks)update
[-f | -frameworks]
: Update frameworks[-c | -config]
: Update configurationSee the Carthage command line tool implementation of Commandant.
It looks like just the iOS
paths are being generated for both platforms.
For the xcodeproj
dependency, we will run bundle install
from rubygems
.
For this, we will have to include the Gemfile
with the product.
Currently, running update
both calls to carthage
to download dependencies, and injects them into the project.
However, there should be a way to just inject the frameworks that are currently present (in the case that some custom carthage
action was taken).
Xcode doesn't seem to like the code signing build configuration settings I am giving it.
Currently trying:
'EXPANDED_CODE_SIGN_IDENTITY' => "",
'CODE_SIGNING_REQUIRED' => "NO",
'CODE_SIGNING_ALLOWED' => "NO"
The Bundle Identifier
is not set yet in any target.
$(Framework)
$(Framework)Tests
If Carthage build
has ever been run locally, a version of the primary framework target lingers in the Carthage/build
directory.
This is the directory which is searched to inject paths into the PBXShellScriptPhase
.
Add a condition that the primary framework target is not copied into the carthage
script phase.
Update frameworks in current project:
carthage update
run script
phases of test targetsdn-m init
-platform
(iOS
macOS
)-framework
(create framework target)
--demo
(create demo application targets in .xcodeproj
)-app
(create application target)Teach update
that there need to be frameworks to update.
Old version:
jazzy \
--swift-version 2.2 \ # Update to 3
--clean \
--author James\ Bean \
--author_url http://jamesbean.info \
--github_url https://github.com/dn-m/$FRAMEWORK \
--module-version $VERSION \
--module $FRAMEWORK \
--root-url https://dn-m.github.io \
--output $SITE_DIR/$FRAMEWORK \
--skip-undocumented \
--hide-documentation-coverage \
--theme $SITE_DIR/dependencies/templates/bean
The bundle is not compiled correctly if testing a Mac target with nested frameworks if the Runpath Search Paths
does not also include $(SRCROOT)/Carthage/Build/Mac
Because this is only macOS, SPM is available for use.
This enables use of Commandant
and Result
as Package
dependencies. The sources of these are currently injected directly into this codebase, as dylib
s (frameworks) are not possible with command line tools.
This is not a real point of configuration on the macOS platform.
Therefore, this build config setting just shows up as an awkward 'USER DEFINED'.
.jazzy.yaml
fileconfig --jazzy
optionAfter git init
.
system("git remote add origin https://github.com/dn-m/#{name}")
git tag ...
git push origin tag ...
carthage build --no-skip-current
carthage archive
If exists demo applications for frameworks, add these to .travis.yml
for smoke testing.
Implement a script to be run upon downloading / cloning .zip
product.
This script will:
xcodeproj
dependencydn-m
& dn-m-xcodeproj.rb
to /usr/local/bin
Connecting Swift
-> Bash
-> Ruby
is becoming so convoluted that there's really no reason not to just write a single ruby
script to do this.
Add to .travis.yml
(in dn-m config
)
global:
secure: HzHlU2k0TOepFV+LU12XuPjFcca8LuWrIxW/xB0S432EPdW+GHC6hpvNQq7mcJC9VAikNMcQy3ExE9jjjNAlyXZ26rxOmhIe/mkB2lVaKxGpYlahArkBjJdBp7wgfen0EQHEAx4ClxfNmoPD+DuZ2WSeYT4qnwnynpGY2tcjfM01pEOYLFXGDmmKFunkn1i9Z5bb0hWxWMffBDFd5M2bikwDqC1c/yZxEmGp8fUWtood0OnoMFh7dKq4B+0R/OMWVGg+lJjbJVU4/syY8EhnSTDQmJ6ufI6iQYyBrNtxi75VRdoh6vq8sdyhQjmP4jTY149xuURbI+GSiJLgKhy5rLKkGqNxYwhgZSc0P8q/7GcUpPavTfh9CWiFd5SSvY7Uw5bLyFzUk5c2llDJb+z/uUruFJKRsdrntY9VZpYfKvy0cfaZNwBLCWH4qSxyMXXYgdRmID7fPP35S1aIZO2UnItCpmhp4JB17tr9WSViwp2tk5hv0dEhYiZWnQz84jQDhLnjT4oGUc+byQMCMQhNP6gxbx4Srw/B/Pv+776Iu1PClLmOyLpKdCoAdSpo+PVkaoKcO4LB8lwSQzmQ66y0JD3++Y8mfancalNZ2W6N/Tlj/0XW4aa6YkPMJWLXGQxORAlZySH8+YecYSGeGSAPI628hC51frRFb1JxzqdqbWk=
Then:
- gem install jazzy
- git config credential.helper "store --file=.git/credentials"
- echo "https://${GH_TOKEN}:@github.com" > .git/credentials
- git clone https://github.com/dn-m/dn-m.github.io
- jazzy
- cp -r docs dn-m.github.io/$project_name
- cd dn-m.github.io
- git add .
- git commit -m "Update docs"
- git push origin master
For each component of the config
command, add a separate option:
--travis
--git
--readme
--carthage
dn-m.github.io
repojazzy
settingsCartfile
into better format (JSON / YAML)In the case of nesting frameworks into other frameworks, only the Carthage Run Script Phase
looks like it's necessary.
For application targets, though, we need to add a path to the Embed Frameworks Build Phase
for each embedded framework.
Currently, these files are generated line-by-line within the dn-m config
script.
Really, each of these have 0...1
variables.
Ultimately, we can use something like mustache to do this.
We currently have FMWK
and BNDL
Info.plist
files, but still need to establish what the application-type target Info.plist
is.
Perhaps this is actually stored somewhere in Xcodeproj
...
gem 'jazzy'
gem 'nokogiri'
gem 'redcarpet'
gem 'rouge'
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.