ffc 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 35c8b3d8fb277ab78a5be75866307c6f2e25305e
4
- data.tar.gz: 578acf312a8d7768ce31d831b4d28db67b784a3f
3
+ metadata.gz: defe1a3fab20213b90eb9cfd222a90534a3eb3a1
4
+ data.tar.gz: c1c99152708b698445ce851972ee4520ff27e903
5
5
  SHA512:
6
- metadata.gz: 5268f2197e7880929760fba4d546f0d1014b62cd9d3cde03699c3cdf92c82a220be5466a4086bb81411a2f05a3f1a9546a3af23a1bc99f6292ced69595a3e3d7
7
- data.tar.gz: fcc18b031f5b8b73ff400fcfd6670dab4dfa73cb08d319ccc019fe903f74f24619e909ec3bbc87672fe5575091c4e1e26d271950004a8892c9848144768b53de
6
+ metadata.gz: 317405d557a0c30dd38fb972b12bcacab1001eb9182ec2e9ee83a4a7b36a6bdb8715556d14d51dd5dac015056dabde273fcf10dba567774e490847e43127259a
7
+ data.tar.gz: 76f0cf01ecfbaad2b29991f3dea7b7b1d4b8a4609a2a5900b57effdd06e88826ad444c9dcb1d2c76eb57a7bb0c15626dc2abfcaa9de07c402ce70cbb34f10f25
data/.coveralls.yml ADDED
@@ -0,0 +1 @@
1
+ repo_token: XikFUXoviVzpmFkaeGTjReAR6hDeQfBIP
data/.gitignore CHANGED
@@ -13,4 +13,4 @@
13
13
 
14
14
  /vendor/bundle
15
15
  .DS_Store
16
-
16
+ .#*
data/.travis.yml CHANGED
@@ -2,4 +2,13 @@ sudo: false
2
2
  language: ruby
3
3
  rvm:
4
4
  - 2.4.0
5
+ - 2.2
6
+ - 2.1
7
+ - 2.0
5
8
  before_install: gem install bundler -v 1.14.4
9
+ script:
10
+ - bundle exec rspec
11
+ branches:
12
+ only:
13
+ - master
14
+
data/README.md CHANGED
@@ -1,4 +1,8 @@
1
1
  # FFC
2
+ [![Gem Version](https://badge.fury.io/rb/ffc.svg)](https://badge.fury.io/rb/ffc)
3
+ [![Build Status](https://travis-ci.org/6br/ffc.svg?branch=master)](https://travis-ci.org/6br/ffc)
4
+ [![Stories in Ready](https://badge.waffle.io/6br/ffc.svg?label=ready&title=Ready)](http://waffle.io/6br/ffc)
5
+ [![Code Climate](https://codeclimate.com/github/6br/ffc/badges/gpa.svg)](https://codeclimate.com/github/6br/ffc)
2
6
 
3
7
  File Formats Conversion Tool
4
8
 
@@ -12,6 +16,11 @@ Install it yourself as:
12
16
 
13
17
  ## Examples
14
18
 
19
+ To compile programs:
20
+
21
+ $ ffc convert sample.c a.out
22
+ $ ffc c sample.c a.out
23
+
15
24
  To convert markdown file to HTML file:
16
25
 
17
26
  $ ffc convert a.md a.html
data/ffc.gemspec CHANGED
@@ -32,6 +32,8 @@ Gem::Specification.new do |spec|
32
32
  spec.add_development_dependency "bundler", "~> 1.14"
33
33
  spec.add_development_dependency "rake", "~> 10.0"
34
34
  spec.add_development_dependency "rspec", "~> 3.0"
35
+ spec.add_development_dependency "coveralls"
36
+ spec.add_development_dependency "codeclimate-test-reporter"
35
37
  spec.add_runtime_dependency "thor"
36
38
  spec.add_runtime_dependency "tty-prompt"
37
39
  spec.add_runtime_dependency "config"
data/lib/db.bin CHANGED
Binary file
data/lib/ffc.rb CHANGED
@@ -67,16 +67,21 @@ module Conv
67
67
  items << ConvItem.new(input: ["sam"], output: ["bam"], command: "samtools view -bS {input} > {output}", substitute: "{}", package: "samtools", output_buffer: :stdout)
68
68
  items << ConvItem.new(input: ["bam"], output: ["bai"], command: "samtools index {input}", substitute: "{}", package: "samtools")
69
69
  items << ConvItem.new(input: ["fa"], output: ["fai"], command: "samtools faidx {input}", substitute: "{}", package: "samtools")
70
+ items << ConvItem.new(input: ["fasta"], output: ["fai"], command: "samtools faidx {input}", substitute: "{}", package: "samtools")
71
+ #items << ConvItem.new(input: ["fa", "vcf.gz"], output: ["fa"], command: "bcftools consensus {input} {input} > {output}", substitute: "{}", package: "bcftools")
72
+ #items << ConvItem.new(input: ["fasta", "vcf.gz"], output: ["fa"], command: "bcftools consensus {input} {input} > {output}", substitute: "{}", package: "bcftools")
70
73
  items << ConvItem.new(input: ["bam"], output: ["fasta"], command: "samtools fasta {input} > {output}", substitute: "{}", package: "samtools")
71
74
  items << ConvItem.new(input: ["bam"], output: ["fastq"], command: "samtools fastq {input} > {output}", substitute: "{}", package: "samtools")
72
75
  items << ConvItem.new(input: ["sam"], output: ["gtf"], command: "cufflinks {input}", substitute: "{}", package: "cufflinks")
73
76
  items << ConvItem.new(input: ["bam"], output: ["gtf"], command: "cufflinks {input}", substitute: "{}", package: "cufflinks")
74
77
  items << ConvItem.new(input: ["vcf"], output: ["vcf.gz"], command: "bgzip -c {input} > {output}", substitute: "{}", package: "samtools")
75
78
  items << ConvItem.new(input: ["mid"], output: ["wav"], command: "timidity {input} -Ow -o {output}", substitute: "{}", package: "tmidity")
79
+ items << ConvItem.new(input: ["midi"], output: ["wav"], command: "timidity {input} -Ow -o {output}", substitute: "{}", package: "tmidity")
76
80
  items << ConvItem.new(input: ["sam", "gtf"], output: ["txt"], command: "htseq-count {input} {input} > {output}", substitute: "{}", package: "htseq", pacman: "pip install")
77
81
  items << ConvItem.new(input: ["bam", "gtf"], output: ["txt"], command: "htseq-count -f bam {input} {input} > {output}", substitute: "{}", package: "htseq", pacman: "pip install")
78
- ["png", "pdf", "ps", "jpg"].each do |i|
82
+ ["png", "pdf", "ps", "jpg", "svg"].each do |i|
79
83
  items << ConvItem.new(input: ["dot"], output: [i], command: "dot -T#{i} {input} > {output}", substitute: "{}", package: "graphviz")
84
+ items << ConvItem.new(input: ["dot"], output: [i], command: "neato -T#{i} {input} > {output}", substitute: "{}", package: "graphviz")
80
85
  end
81
86
  ["png", "jpg", "tif", "bmp", "gif"].permutation(2).each do |i, j|
82
87
  items << ConvItem.new(input: [i], output: [j], command: "convert {input} {output}", substitute: "{}", package: "imagemagick")
@@ -84,16 +89,49 @@ module Conv
84
89
  items << ConvItem.new(input: ["wav"], output: ["mp3"], command: "lame {input} {output}", substitute: "{}", package: "lame")
85
90
  items << ConvItem.new(input: ["wav"], output: ["mp3"], command: "avconv -i {input} {output}", substitute: "{}", package: "libav")
86
91
  items << ConvItem.new(input: ["md"], output: ["html"], command: "python -m markdown {input} > {output}", substitute: "{}", package: "markdown", pacman: "pip install")
92
+ items << ConvItem.new(input: ["markdown"], output: ["html"], command: "python -m markdown {input} > {output}", substitute: "{}", package: "markdown", pacman: "pip install")
87
93
  items << ConvItem.new(input: ["md"], output: ["html"], command: "pandoc -f markdown_github {input} > {output}", substitute: "{}", package: "pandoc")
94
+ items << ConvItem.new(input: ["markdown"], output: ["html"], command: "pandoc -f markdown_github {input} > {output}", substitute: "{}", package: "pandoc")
95
+
96
+ # Compile without options.
97
+ items << ConvItem.new(input: ["c"], output: ["o"], command: "gcc -c -o {output} {input}", package: "gcc", lang: "c")
98
+ items << ConvItem.new(input: ["c"], output: ["out"], command: "gcc -o {output} {input}", package: "gcc", lang: "c")
99
+ items << ConvItem.new(input: ["c"], output: ["o"], command: "clang -c -o {output} {input}", package: "clang", lang:"c")
100
+ items << ConvItem.new(input: ["c"], output: ["out"], command: "clang -o {output} {input}", package: "clang", lang:"c")
101
+ items << ConvItem.new(input: ["cpp"], output: ["o"], command: "g++ -c -o {output} {input}", package: "g++", lang: "c++")
102
+ items << ConvItem.new(input: ["cpp"], output: ["out"], command: "g++ -o {output} {input}", package: "g++", lang: "c++")
103
+ items << ConvItem.new(input: ["cpp"], output: ["o"], command: "clang++ -c -o {output} {input}", package: "clang", lang: "c++")
104
+ items << ConvItem.new(input: ["cpp"], output: ["out"], command: "clang++ -o {output} {input}", package: "clang", lang: "c++")
105
+ items << ConvItem.new(input: ["cc"], output: ["o"], command: "g++ -c -o {output} {input}", package: "g++", lang: "c++")
106
+ items << ConvItem.new(input: ["cc"], output: ["out"], command: "g++ -o {output} {input}", package: "g++", lang: "c++")
107
+ items << ConvItem.new(input: ["cc"], output: ["o"], command: "clang++ -c -o {output} {input}", package: "clang", lang: "c++")
108
+ items << ConvItem.new(input: ["cc"], output: ["out"], command: "clang++ -o {output} {input}", package: "clang", lang: "c++")
109
+
110
+ items << ConvItem.new(input: ["rs"], output: ["out"], command: "rustc -o {output} {input}", package: "rust", lang: "rust", warning: "Use cargo")
111
+ items << ConvItem.new(input: ["hs"], output: ["out"], command: "ghc -o {output} {input}", package: "ghc", lang: "haskell", warning: "Use cabal / stack")
112
+ items << ConvItem.new(input: ["d"], output: ["out"], command: "gdc -o {output} {input}", package: "gdc", lang: "d")
113
+ items << ConvItem.new(input: ["cr"], output: ["out"], command: "crystal build -o {output} {input}", package: "crystal", lang: "crystal")
114
+ items << ConvItem.new(input: ["cr"], output: ["out"], command: "mlton -output {output} {input}", package: "mlton", lang: "standard ML")
115
+ items << ConvItem.new(input: ["swift"], output: ["out"], command: "swiftc -o {output} {input}", package: "swift", lang: "swift")
116
+ items << ConvItem.new(input: ["go"], output: ["out"], command: "go build -o {output} {input}", package: "go", lang: "golang")
117
+
118
+ # https://github.com/jashkenas/coffeescript/wiki/list-of-languages-that-compile-to-js
119
+ items << ConvItem.new(input: ["ts"], output: ["js"], command: "tsc {input}", package: "typescript", lang: "typescript", pacman: "npm install -g")
120
+ items << ConvItem.new(input: ["coffee"], output: ["js"], command: "coffee {input}", package: "coffee-script", lang: "coffee-script", pacman: "npm install -g")
121
+ items << ConvItem.new(input: ["rb"], output: ["js"], command: "opal -c {input} > {output}", lang: "opal", package: "opal", pacman: "gem install")
122
+ items << ConvItem.new(input: ["lua"], output: ["out"], command: "luac -o {output} {input}", package: "lua", lang: "lua")
123
+ items << ConvItem.new(input: ["lua"], output: ["out"], command: "luajit -b {input} {output}", package: "luajit", lang: "lua")
124
+
88
125
  items
89
126
  end
90
127
  end
91
128
 
92
129
  class ConvItem
93
- attr_accessor :input, :output, :command, :package, :substitute, :last_access, :pacman, :output_buffer, :input_path, :output_path
130
+ attr_accessor :input, :output, :command, :package, :substitute, :last_access, :pacman, :output_buffer, :input_path, :output_path, :type, :lang, :warning
94
131
 
95
132
  def initialize **params
96
133
  Config.load_and_set_settings(Dir.home + ".conv")
134
+ @type |= :convert
97
135
  @package_manager = Settings.package_manager
98
136
  params.each{|k,v| self.send("#{k}=", v) if self.methods.include?(k)}
99
137
  end
@@ -127,7 +165,7 @@ module Conv
127
165
  return self.output.to_s + " " + self.cmd(@input_path, @output_path) + " (" + self.package + ")"
128
166
  end
129
167
 
130
- def run!(inputs, output)
168
+ def run!(inputs, output, arguments="")
131
169
  raise "Error -- no input file" unless inputs.all?{ |t| Pathname(t).exist?}
132
170
  status, stdout, stderr = systemu self.cmd(inputs, output)
133
171
 
data/lib/ffc/cli.rb CHANGED
@@ -19,6 +19,7 @@ module Conv
19
19
  option :quiet, type: :boolean, aliases: '-q', desc: "Run quietly."
20
20
  option :dryrun, type: :boolean, aliases: '-d', desc: "Do not execute command."
21
21
  option :package_manager, type: :array, aliases: '-p', desc: "Set Package manager prefix such as 'brew install'"
22
+ #option :arguments, type: :string, aliases: '-a', desc: "Set arguments to provide a certain command such as '-O2'"
22
23
  def convert(*inputs, output) # Define commands as a method.
23
24
  prompt = TTY::Prompt.new(interrupt: :exit)
24
25
  items = Conv.new.find_item(inputs, output, input_format=input_format, output_format=output_format, package_manager: options[:package_manager])
@@ -33,7 +34,7 @@ module Conv
33
34
  end
34
35
  prompt.ok candidate.cmd(inputs, output) unless options[:quiet]
35
36
  return if !options[:overwrite] && !ask_overwrite(output) || options[:dryrun]
36
- status, stdout, stderr = candidate.run!(inputs, output)
37
+ status, stdout, stderr = candidate.run!(inputs, output, options[:arguments])
37
38
  prompt.ok stdout
38
39
  prompt.error stderr
39
40
  if status != 0
data/lib/ffc/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Conv
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ffc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - 6br
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-03-02 00:00:00.000000000 Z
11
+ date: 2017-03-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,6 +52,34 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: coveralls
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: codeclimate-test-reporter
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
55
83
  - !ruby/object:Gem::Dependency
56
84
  name: thor
57
85
  requirement: !ruby/object:Gem::Requirement
@@ -116,6 +144,7 @@ executables:
116
144
  extensions: []
117
145
  extra_rdoc_files: []
118
146
  files:
147
+ - ".coveralls.yml"
119
148
  - ".gitignore"
120
149
  - ".rspec"
121
150
  - ".travis.yml"