reemo 0.2.0.pre.SNAPSHOT
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +11 -0
- data/Gemfile +9 -0
- data/Gemfile.lock +28 -0
- data/README.md +24 -0
- data/Rakefile +2 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/exe/reemo +5 -0
- data/lib/reemo.rb +159 -0
- data/lib/reemo/version.rb +3 -0
- data/reemo.gemspec +40 -0
- data/sample_workspaces/gcc-project1/.gitignore +1 -0
- data/sample_workspaces/gcc-project1/main.c +18 -0
- data/sample_workspaces/gcc-project1/reemo.yaml +11 -0
- data/sample_workspaces/haskell-stack-project1/.gitignore +4 -0
- data/sample_workspaces/haskell-stack-project1/ChangeLog.md +3 -0
- data/sample_workspaces/haskell-stack-project1/LICENSE +30 -0
- data/sample_workspaces/haskell-stack-project1/README.md +1 -0
- data/sample_workspaces/haskell-stack-project1/Setup.hs +2 -0
- data/sample_workspaces/haskell-stack-project1/app/Main.hs +17 -0
- data/sample_workspaces/haskell-stack-project1/package.yaml +44 -0
- data/sample_workspaces/haskell-stack-project1/reemo.yaml +8 -0
- data/sample_workspaces/haskell-stack-project1/stack.yaml +66 -0
- data/sample_workspaces/haskell-stack-project1/test/Spec.hs +2 -0
- data/sample_workspaces/rust-cargo-project1/.gitignore +2 -0
- data/sample_workspaces/rust-cargo-project1/.reemoignore +2 -0
- data/sample_workspaces/rust-cargo-project1/Cargo.lock +4 -0
- data/sample_workspaces/rust-cargo-project1/Cargo.toml +6 -0
- data/sample_workspaces/rust-cargo-project1/reemo.yaml +7 -0
- data/sample_workspaces/rust-cargo-project1/src/main.rs +13 -0
- metadata +158 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: fb743b129f0abfd0ad88cedd537950dcd533b085
|
4
|
+
data.tar.gz: 31e5edcf24516a92d98f33574ce7b970c6bbf983
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: bae107dd092a6252b7f46aaaa6e15e675222449fbd16385a67edd8fae425e6c33ca069a7e21491e8028870b32b613d01410f7dc1a89589012ffdefddddbabc4f
|
7
|
+
data.tar.gz: ca954566528c7473055a196af2b7441fed72991560db9eff2b07898d813099d10cd27fea6ff0157b815a75019d5bc3c13acb928ef7cc8ae2f601427a6369e1cb
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
reemo (0.2.0.pre.SNAPSHOT)
|
5
|
+
buff-ignore
|
6
|
+
minitar
|
7
|
+
multipart-post
|
8
|
+
thor
|
9
|
+
|
10
|
+
GEM
|
11
|
+
remote: https://rubygems.org/
|
12
|
+
specs:
|
13
|
+
buff-ignore (1.2.0)
|
14
|
+
minitar (0.6.1)
|
15
|
+
multipart-post (2.0.0)
|
16
|
+
rake (10.5.0)
|
17
|
+
thor (0.20.0)
|
18
|
+
|
19
|
+
PLATFORMS
|
20
|
+
ruby
|
21
|
+
|
22
|
+
DEPENDENCIES
|
23
|
+
bundler (~> 1.16)
|
24
|
+
rake (~> 10.0)
|
25
|
+
reemo!
|
26
|
+
|
27
|
+
BUNDLED WITH
|
28
|
+
1.16.1
|
data/README.md
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
# Reemo CLI
|
2
|
+
|
3
|
+
## Usage
|
4
|
+
|
5
|
+
|
6
|
+
## Installation
|
7
|
+
|
8
|
+
```bash
|
9
|
+
cd <this repo>
|
10
|
+
bundle install
|
11
|
+
```
|
12
|
+
|
13
|
+
## Server Configuration
|
14
|
+
|
15
|
+
```bash
|
16
|
+
bundle exec reemo server-config --host=hogehoge.io --http-port=4567 --ssh-port=2222
|
17
|
+
```
|
18
|
+
|
19
|
+
## Run
|
20
|
+
|
21
|
+
```bash
|
22
|
+
cd sample_workspaces/gcc-project1/
|
23
|
+
bundle exec reemo run
|
24
|
+
```
|
data/Rakefile
ADDED
data/bin/console
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "bundler/setup"
|
4
|
+
require "reemo"
|
5
|
+
|
6
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
+
# with your gem easier. You can also use a different console, if you like.
|
8
|
+
|
9
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
+
# require "pry"
|
11
|
+
# Pry.start
|
12
|
+
|
13
|
+
require "irb"
|
14
|
+
IRB.start(__FILE__)
|
data/bin/setup
ADDED
data/exe/reemo
ADDED
data/lib/reemo.rb
ADDED
@@ -0,0 +1,159 @@
|
|
1
|
+
require "reemo/version"
|
2
|
+
|
3
|
+
require 'zlib'
|
4
|
+
require 'minitar'
|
5
|
+
require 'net/http/post/multipart'
|
6
|
+
require 'buff/ignore'
|
7
|
+
require 'open-uri'
|
8
|
+
require 'tempfile'
|
9
|
+
require 'thor'
|
10
|
+
require 'fileutils'
|
11
|
+
require 'yaml'
|
12
|
+
|
13
|
+
CONFIG_DIR_PATH = ".reemo"
|
14
|
+
OLD_SESSION_ID_FILE_PATH = File.join(CONFIG_DIR_PATH, "session_id")
|
15
|
+
IGNORE_FILE_NAME = '.reemoignore'
|
16
|
+
OUTPUT_DIR_PATH = "output"
|
17
|
+
GLOBAL_CONFIG_DIR_PATH = File.join(ENV["HOME"], ".config", "reemo-cli")
|
18
|
+
GLOBAL_CONFIG_YAML_PATH = File.join(GLOBAL_CONFIG_DIR_PATH, "config.yaml")
|
19
|
+
|
20
|
+
module Reemo
|
21
|
+
class CLI < Thor
|
22
|
+
|
23
|
+
# (from: http://secret-garden.hatenablog.com/entry/2015/05/27/193313)
|
24
|
+
map "run" => :run_
|
25
|
+
|
26
|
+
desc "sever-config", "Configure a server setting"
|
27
|
+
option :host, :required => true, :type => :string
|
28
|
+
option :http_port, :required => true, :type => :numeric
|
29
|
+
option :ssh_port, :required => true, :type => :numeric
|
30
|
+
def server_config()
|
31
|
+
host = options[:host]
|
32
|
+
http_port = options[:http_port]
|
33
|
+
ssh_port = options[:ssh_port]
|
34
|
+
|
35
|
+
# If global config directory doesn't exist yet
|
36
|
+
if !Dir.exists?(GLOBAL_CONFIG_DIR_PATH)
|
37
|
+
# Make the directory
|
38
|
+
FileUtils.makedirs(GLOBAL_CONFIG_DIR_PATH)
|
39
|
+
end
|
40
|
+
|
41
|
+
# Get config yaml
|
42
|
+
if File.exists?(GLOBAL_CONFIG_YAML_PATH)
|
43
|
+
config_yaml_map = YAML::load_file(GLOBAL_CONFIG_YAML_PATH)
|
44
|
+
else
|
45
|
+
config_yaml_map = {}
|
46
|
+
end
|
47
|
+
|
48
|
+
# Set server config
|
49
|
+
config_yaml_map["server"] = {
|
50
|
+
"host" => host,
|
51
|
+
"http_port" => http_port,
|
52
|
+
"ssh_port" => ssh_port
|
53
|
+
}
|
54
|
+
|
55
|
+
# Write to yaml
|
56
|
+
File.write(GLOBAL_CONFIG_YAML_PATH, YAML::dump(config_yaml_map))
|
57
|
+
|
58
|
+
puts("Server configuration successful!")
|
59
|
+
end
|
60
|
+
|
61
|
+
desc "run", "Run this project in current working directory"
|
62
|
+
def run_()
|
63
|
+
|
64
|
+
# If configure file doesn't exist
|
65
|
+
if !File.exists?(GLOBAL_CONFIG_YAML_PATH)
|
66
|
+
STDERR.puts <<EOS
|
67
|
+
Error: Configure not found
|
68
|
+
You should configure server setting like the following.
|
69
|
+
$ reemo server-config --host=hogehoge.io --http-port=4567 --ssh-port=2222
|
70
|
+
EOS
|
71
|
+
exit(1)
|
72
|
+
end
|
73
|
+
|
74
|
+
config_yaml_map = YAML::load_file(GLOBAL_CONFIG_YAML_PATH)
|
75
|
+
|
76
|
+
# Load server setting from yaml
|
77
|
+
host = config_yaml_map["server"]["host"]
|
78
|
+
http_port = config_yaml_map["server"]["http_port"]
|
79
|
+
ssh_port = config_yaml_map["server"]["ssh_port"]
|
80
|
+
|
81
|
+
url = URI.parse("http://#{host}:#{http_port}/build") # TODO Hard code
|
82
|
+
|
83
|
+
if !Dir.exists?(CONFIG_DIR_PATH)
|
84
|
+
Dir.mkdir(CONFIG_DIR_PATH)
|
85
|
+
end
|
86
|
+
|
87
|
+
# Session ID (This will be filled)
|
88
|
+
session_id = nil
|
89
|
+
|
90
|
+
# Get old session ID
|
91
|
+
old_session_id = File.exists?(OLD_SESSION_ID_FILE_PATH)? File.read(OLD_SESSION_ID_FILE_PATH) : nil
|
92
|
+
|
93
|
+
Tempfile.open(){|tar_gz_f|
|
94
|
+
workspace_tar_gz_path = tar_gz_f.path
|
95
|
+
# Compress workspace to tar.gz
|
96
|
+
Zlib::GzipWriter.open(tar_gz_f){|sgz|
|
97
|
+
Archive::Tar::Minitar::Output.open(sgz){|tar|
|
98
|
+
# Get ignore file path
|
99
|
+
ignore_file_path = IGNORE_FILE_NAME
|
100
|
+
# Get all files
|
101
|
+
all_file_paths = Dir.glob("**/*", File::FNM_DOTMATCH).reject{|e| [".",".."].any?{|s| s== File::basename(e)}}
|
102
|
+
# Ignore file exists or not
|
103
|
+
if File.exists?(ignore_file_path)
|
104
|
+
# Generate ignore
|
105
|
+
ignore = Buff::Ignore::IgnoreFile.new(IGNORE_FILE_NAME)
|
106
|
+
# Create file paths by using ignore
|
107
|
+
file_paths = ignore.apply(all_file_paths)
|
108
|
+
else
|
109
|
+
# File paths are the same as all file paths because of no ignore
|
110
|
+
file_paths = all_file_paths
|
111
|
+
end
|
112
|
+
# Archive files
|
113
|
+
file_paths.each{|entry|
|
114
|
+
Minitar.pack_file(entry, tar)
|
115
|
+
}
|
116
|
+
}
|
117
|
+
}
|
118
|
+
tar_gz_f.close()
|
119
|
+
|
120
|
+
File.open(workspace_tar_gz_path, 'rb') do |f|
|
121
|
+
# p f.read(10000)
|
122
|
+
req = Net::HTTP::Post::Multipart.new(
|
123
|
+
url.path,
|
124
|
+
"file" => UploadIO.new(f, "application/tar+gzip", "dummy.tar.gz"),
|
125
|
+
"old_session_id" => old_session_id
|
126
|
+
)
|
127
|
+
res = Net::HTTP.start(url.host, url.port) do |http|
|
128
|
+
http.request(req)
|
129
|
+
end
|
130
|
+
|
131
|
+
session_id = res.entity
|
132
|
+
end
|
133
|
+
}
|
134
|
+
|
135
|
+
puts("Session ID: #{session_id}")
|
136
|
+
File.write(OLD_SESSION_ID_FILE_PATH, session_id)
|
137
|
+
|
138
|
+
user_name = session_id
|
139
|
+
ssh_command = "ssh -t -p #{ssh_port} #{user_name}@#{host}"
|
140
|
+
system(ssh_command)
|
141
|
+
|
142
|
+
open("http://#{host}:#{http_port}/output?session_id=#{session_id}"){|f|
|
143
|
+
Tempfile.open(){|tmp_out_f|
|
144
|
+
IO.copy_stream(f, tmp_out_f)
|
145
|
+
tmp_out_f.close()
|
146
|
+
|
147
|
+
if !File.empty?(tmp_out_f.path)
|
148
|
+
if !Dir.exists?(OUTPUT_DIR_PATH)
|
149
|
+
Dir.mkdir(OUTPUT_DIR_PATH)
|
150
|
+
end
|
151
|
+
|
152
|
+
# (from: http://www.itmedia.co.jp/help/tips/linux/l0418.html)
|
153
|
+
system("tar xzf #{tmp_out_f.path} -C #{OUTPUT_DIR_PATH}/") # TODO: Not to use system
|
154
|
+
end
|
155
|
+
}
|
156
|
+
}
|
157
|
+
end
|
158
|
+
end
|
159
|
+
end
|
data/reemo.gemspec
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
|
2
|
+
lib = File.expand_path("../lib", __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require "reemo/version"
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "reemo"
|
8
|
+
spec.version = Reemo::VERSION
|
9
|
+
spec.authors = ["Ryo Ota"]
|
10
|
+
spec.email = ["nwtgck@gmail.com"]
|
11
|
+
|
12
|
+
spec.summary = %q{Write a short summary, because RubyGems requires one.}
|
13
|
+
spec.description = %q{Write a longer description or delete this line.}
|
14
|
+
spec.homepage = "https://github.com/nwtgck/reemo-cli-ruby"
|
15
|
+
|
16
|
+
|
17
|
+
spec.add_dependency 'multipart-post'
|
18
|
+
spec.add_dependency 'minitar'
|
19
|
+
spec.add_dependency 'buff-ignore'
|
20
|
+
spec.add_dependency 'thor'
|
21
|
+
|
22
|
+
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
|
23
|
+
# to allow pushing to a single host or delete this section to allow pushing to any host.
|
24
|
+
if spec.respond_to?(:metadata)
|
25
|
+
# spec.metadata["allowed_push_host"] = "Set to 'http://mygemserver.com'"
|
26
|
+
else
|
27
|
+
raise "RubyGems 2.0 or newer is required to protect against " \
|
28
|
+
"public gem pushes."
|
29
|
+
end
|
30
|
+
|
31
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
32
|
+
f.match(%r{^(test|spec|features)/})
|
33
|
+
end
|
34
|
+
spec.bindir = "exe"
|
35
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
36
|
+
spec.require_paths = ["lib"]
|
37
|
+
|
38
|
+
spec.add_development_dependency "bundler", "~> 1.16"
|
39
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
40
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
/.reemo
|
@@ -0,0 +1,18 @@
|
|
1
|
+
#include <stdio.h>
|
2
|
+
|
3
|
+
const int GREETING_LEN = 13;
|
4
|
+
const char * const greetings[] = {
|
5
|
+
"Hello", "Hola", "Bonjour",
|
6
|
+
"Ciao", "こんにちは", "안녕하세요",
|
7
|
+
"Cześć", "Olá", "Здравствуйте",
|
8
|
+
"Chào bạn", "您好", "Hallo",
|
9
|
+
"Hej"
|
10
|
+
};
|
11
|
+
|
12
|
+
int main(){
|
13
|
+
puts("=== Hello from a gcc project! ===");
|
14
|
+
for(int i = 0; i < GREETING_LEN; i++){
|
15
|
+
puts(greetings[i]);
|
16
|
+
}
|
17
|
+
return 0;
|
18
|
+
}
|
@@ -0,0 +1,30 @@
|
|
1
|
+
Copyright Ryo Ota (c) 2017
|
2
|
+
|
3
|
+
All rights reserved.
|
4
|
+
|
5
|
+
Redistribution and use in source and binary forms, with or without
|
6
|
+
modification, are permitted provided that the following conditions are met:
|
7
|
+
|
8
|
+
* Redistributions of source code must retain the above copyright
|
9
|
+
notice, this list of conditions and the following disclaimer.
|
10
|
+
|
11
|
+
* Redistributions in binary form must reproduce the above
|
12
|
+
copyright notice, this list of conditions and the following
|
13
|
+
disclaimer in the documentation and/or other materials provided
|
14
|
+
with the distribution.
|
15
|
+
|
16
|
+
* Neither the name of Ryo Ota nor the names of other
|
17
|
+
contributors may be used to endorse or promote products derived
|
18
|
+
from this software without specific prior written permission.
|
19
|
+
|
20
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
21
|
+
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
22
|
+
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
23
|
+
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
24
|
+
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
25
|
+
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
26
|
+
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
27
|
+
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
28
|
+
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
29
|
+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
30
|
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
@@ -0,0 +1 @@
|
|
1
|
+
# haskell-stack-project1
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Main where
|
2
|
+
|
3
|
+
import Control.Monad
|
4
|
+
|
5
|
+
-- Greetings around world
|
6
|
+
-- (from: https://www.rust-lang.org/)
|
7
|
+
greetings = ["Hello", "Hola", "Bonjour",
|
8
|
+
"Ciao", "こんにちは", "안녕하세요",
|
9
|
+
"Cześć", "Olá", "Здравствуйте",
|
10
|
+
"Chào bạn", "您好", "Hallo",
|
11
|
+
"Hej"]
|
12
|
+
|
13
|
+
main :: IO ()
|
14
|
+
main = do
|
15
|
+
putStrLn "=== Hello from a haskell-stack project! ==="
|
16
|
+
-- Hello world
|
17
|
+
mapM_ putStrLn greetings
|
@@ -0,0 +1,44 @@
|
|
1
|
+
name: haskell-stack-project1
|
2
|
+
version: 0.1.0.0
|
3
|
+
github: "nwtgck/haskell-stack-project1"
|
4
|
+
license: BSD3
|
5
|
+
author: "Ryo Ota"
|
6
|
+
maintainer: "nwtgck@gmail.com"
|
7
|
+
copyright: "2017 Ryo Ota"
|
8
|
+
|
9
|
+
extra-source-files:
|
10
|
+
- README.md
|
11
|
+
- ChangeLog.md
|
12
|
+
|
13
|
+
# Metadata used when publishing your package
|
14
|
+
synopsis: Short description of your package
|
15
|
+
# category: Web
|
16
|
+
|
17
|
+
# To avoid duplicated efforts in documentation and dealing with the
|
18
|
+
# complications of embedding Haddock markup inside cabal files, it is
|
19
|
+
# common to point users to the README.md file.
|
20
|
+
description: Please see the README on Github at <https://github.com/nwtgck/haskell-stack-project1#readme>
|
21
|
+
|
22
|
+
dependencies:
|
23
|
+
- base >= 4.7 && < 5
|
24
|
+
|
25
|
+
|
26
|
+
executables:
|
27
|
+
haskell-stack-project1-exe:
|
28
|
+
main: Main.hs
|
29
|
+
source-dirs: app
|
30
|
+
ghc-options:
|
31
|
+
- -threaded
|
32
|
+
- -rtsopts
|
33
|
+
- -with-rtsopts=-N
|
34
|
+
dependencies: []
|
35
|
+
|
36
|
+
tests:
|
37
|
+
haskell-stack-project1-test:
|
38
|
+
main: Spec.hs
|
39
|
+
source-dirs: test
|
40
|
+
ghc-options:
|
41
|
+
- -threaded
|
42
|
+
- -rtsopts
|
43
|
+
- -with-rtsopts=-N
|
44
|
+
dependencies: []
|
@@ -0,0 +1,66 @@
|
|
1
|
+
# This file was automatically generated by 'stack init'
|
2
|
+
#
|
3
|
+
# Some commonly used options have been documented as comments in this file.
|
4
|
+
# For advanced use and comprehensive documentation of the format, please see:
|
5
|
+
# https://docs.haskellstack.org/en/stable/yaml_configuration/
|
6
|
+
|
7
|
+
# Resolver to choose a 'specific' stackage snapshot or a compiler version.
|
8
|
+
# A snapshot resolver dictates the compiler version and the set of packages
|
9
|
+
# to be used for project dependencies. For example:
|
10
|
+
#
|
11
|
+
# resolver: lts-3.5
|
12
|
+
# resolver: nightly-2015-09-21
|
13
|
+
# resolver: ghc-7.10.2
|
14
|
+
# resolver: ghcjs-0.1.0_ghc-7.10.2
|
15
|
+
# resolver:
|
16
|
+
# name: custom-snapshot
|
17
|
+
# location: "./custom-snapshot.yaml"
|
18
|
+
resolver: lts-9.3
|
19
|
+
|
20
|
+
# User packages to be built.
|
21
|
+
# Various formats can be used as shown in the example below.
|
22
|
+
#
|
23
|
+
# packages:
|
24
|
+
# - some-directory
|
25
|
+
# - https://example.com/foo/bar/baz-0.0.2.tar.gz
|
26
|
+
# - location:
|
27
|
+
# git: https://github.com/commercialhaskell/stack.git
|
28
|
+
# commit: e7b331f14bcffb8367cd58fbfc8b40ec7642100a
|
29
|
+
# - location: https://github.com/commercialhaskell/stack/commit/e7b331f14bcffb8367cd58fbfc8b40ec7642100a
|
30
|
+
# extra-dep: true
|
31
|
+
# subdirs:
|
32
|
+
# - auto-update
|
33
|
+
# - wai
|
34
|
+
#
|
35
|
+
# A package marked 'extra-dep: true' will only be built if demanded by a
|
36
|
+
# non-dependency (i.e. a user package), and its test suites and benchmarks
|
37
|
+
# will not be run. This is useful for tweaking upstream packages.
|
38
|
+
packages:
|
39
|
+
- .
|
40
|
+
# Dependency packages to be pulled from upstream that are not in the resolver
|
41
|
+
# (e.g., acme-missiles-0.3)
|
42
|
+
#extra-deps: []
|
43
|
+
|
44
|
+
# Override default flag values for local packages and extra-deps
|
45
|
+
# flags: {}
|
46
|
+
|
47
|
+
# Extra package databases containing global packages
|
48
|
+
# extra-package-dbs: []
|
49
|
+
|
50
|
+
# Control whether we use the GHC we find on the path
|
51
|
+
# system-ghc: true
|
52
|
+
#
|
53
|
+
# Require a specific version of stack, using version ranges
|
54
|
+
# require-stack-version: -any # Default
|
55
|
+
# require-stack-version: ">=1.6"
|
56
|
+
#
|
57
|
+
# Override the architecture used by stack, especially useful on Windows
|
58
|
+
# arch: i386
|
59
|
+
# arch: x86_64
|
60
|
+
#
|
61
|
+
# Extra directories used by stack for building
|
62
|
+
# extra-include-dirs: [/path/to/dir]
|
63
|
+
# extra-lib-dirs: [/path/to/dir]
|
64
|
+
#
|
65
|
+
# Allow a newer minor version of GHC than the snapshot specifies
|
66
|
+
# compiler-check: newer-minor
|
@@ -0,0 +1,13 @@
|
|
1
|
+
// Hello world
|
2
|
+
// (from: https://www.rust-lang.org/)
|
3
|
+
fn main() {
|
4
|
+
let greetings = ["Hello", "Hola", "Bonjour",
|
5
|
+
"Ciao", "こんにちは", "안녕하세요",
|
6
|
+
"Cześć", "Olá", "Здравствуйте",
|
7
|
+
"Chào bạn", "您好", "Hallo",
|
8
|
+
"Hej"];
|
9
|
+
|
10
|
+
for greeting in greetings.iter() {
|
11
|
+
println!("{}", greeting);
|
12
|
+
}
|
13
|
+
}
|
metadata
ADDED
@@ -0,0 +1,158 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: reemo
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.0.pre.SNAPSHOT
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Ryo Ota
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2018-01-14 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: multipart-post
|
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: minitar
|
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
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: buff-ignore
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: thor
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
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: bundler
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '1.16'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '1.16'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rake
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '10.0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '10.0'
|
97
|
+
description: Write a longer description or delete this line.
|
98
|
+
email:
|
99
|
+
- nwtgck@gmail.com
|
100
|
+
executables:
|
101
|
+
- reemo
|
102
|
+
extensions: []
|
103
|
+
extra_rdoc_files: []
|
104
|
+
files:
|
105
|
+
- ".gitignore"
|
106
|
+
- Gemfile
|
107
|
+
- Gemfile.lock
|
108
|
+
- README.md
|
109
|
+
- Rakefile
|
110
|
+
- bin/console
|
111
|
+
- bin/setup
|
112
|
+
- exe/reemo
|
113
|
+
- lib/reemo.rb
|
114
|
+
- lib/reemo/version.rb
|
115
|
+
- reemo.gemspec
|
116
|
+
- sample_workspaces/gcc-project1/.gitignore
|
117
|
+
- sample_workspaces/gcc-project1/main.c
|
118
|
+
- sample_workspaces/gcc-project1/reemo.yaml
|
119
|
+
- sample_workspaces/haskell-stack-project1/.gitignore
|
120
|
+
- sample_workspaces/haskell-stack-project1/ChangeLog.md
|
121
|
+
- sample_workspaces/haskell-stack-project1/LICENSE
|
122
|
+
- sample_workspaces/haskell-stack-project1/README.md
|
123
|
+
- sample_workspaces/haskell-stack-project1/Setup.hs
|
124
|
+
- sample_workspaces/haskell-stack-project1/app/Main.hs
|
125
|
+
- sample_workspaces/haskell-stack-project1/package.yaml
|
126
|
+
- sample_workspaces/haskell-stack-project1/reemo.yaml
|
127
|
+
- sample_workspaces/haskell-stack-project1/stack.yaml
|
128
|
+
- sample_workspaces/haskell-stack-project1/test/Spec.hs
|
129
|
+
- sample_workspaces/rust-cargo-project1/.gitignore
|
130
|
+
- sample_workspaces/rust-cargo-project1/.reemoignore
|
131
|
+
- sample_workspaces/rust-cargo-project1/Cargo.lock
|
132
|
+
- sample_workspaces/rust-cargo-project1/Cargo.toml
|
133
|
+
- sample_workspaces/rust-cargo-project1/reemo.yaml
|
134
|
+
- sample_workspaces/rust-cargo-project1/src/main.rs
|
135
|
+
homepage: https://github.com/nwtgck/reemo-cli-ruby
|
136
|
+
licenses: []
|
137
|
+
metadata: {}
|
138
|
+
post_install_message:
|
139
|
+
rdoc_options: []
|
140
|
+
require_paths:
|
141
|
+
- lib
|
142
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
143
|
+
requirements:
|
144
|
+
- - ">="
|
145
|
+
- !ruby/object:Gem::Version
|
146
|
+
version: '0'
|
147
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
148
|
+
requirements:
|
149
|
+
- - ">"
|
150
|
+
- !ruby/object:Gem::Version
|
151
|
+
version: 1.3.1
|
152
|
+
requirements: []
|
153
|
+
rubyforge_project:
|
154
|
+
rubygems_version: 2.6.12
|
155
|
+
signing_key:
|
156
|
+
specification_version: 4
|
157
|
+
summary: Write a short summary, because RubyGems requires one.
|
158
|
+
test_files: []
|