cliz 0.0.0 → 0.0.6

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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/bin/cliz +11 -43
  3. data/lib/functions.rb +57 -0
  4. metadata +7 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d10663c001cb6860631422a9d914343afab05b4f2c48b49bbad6d8cbf4dcc7bd
4
- data.tar.gz: abfe76359ea3a444e80fad9515766fdd14038c312ded8e745d9d9c0607cf4ee1
3
+ metadata.gz: ff3f968702225f2eca11654dc309d70faa3ffba83da660aa1c6b570d759a2719
4
+ data.tar.gz: 4d7c5ec22057ba4985b3076def8901abf35eb023c14d4d5bf8ef7031f70cf790
5
5
  SHA512:
6
- metadata.gz: 22b57d559cdd2ae437314833a531349b3db9226251360e78f6db5084420d8ac256e5410c46e7281a7520026a1a794f84a7c5505109c02f380151be049746f588
7
- data.tar.gz: 2757403bcb2276202f91bc80e2df4b2ce3a6ff4601ba75518dfc306e9fbcf8975d7c2b746722f58f36750062c71abf0c9f7dafe1c6b1b63d7fcb974649cd05a7
6
+ metadata.gz: e40b13d6b3d477e31ca9c308d5a439f0536ded157e17774f2730584c25df56cf48f43833ba376bd796796d9a9dcd942de0ee9c2082af9da069e452a57bb8b81f
7
+ data.tar.gz: d87a0a516beb1d428582324849c8018461dbcaac577c31284824f7674cb47761ec0a015462eac7f1d09842b296abc90bf93b60a0b9ef710d574b630f0cd73ad3
data/bin/cliz CHANGED
@@ -3,57 +3,25 @@
3
3
  require 'securerandom'
4
4
  require 'fileutils'
5
5
  require 'yaml'
6
+ require_relative '../lib/functions.rb'
7
+
6
8
 
7
9
  config = YAML.load(File.read('config.yml'))
8
10
 
9
11
  OUTPUT_DIR = config['output_dir']
10
12
  BASE_DOMAIN = config['base_domain']
11
13
  DEPLOY_SCRIPT = config['deploy_script']
12
- HTML = %Q{
13
- <!DOCTYPE html>
14
- <html>
15
- <head>
16
- <meta content="text/html;charset=utf-8" http-equiv="Content-Type">
17
- <meta content="utf-8" http-equiv="encoding">
18
- <script type="text/javascript">
19
- window.location.replace("https://cliz.in");
20
- </script>
21
- <meta http-equiv="refresh" content="0; url='https://cliz.in'" />
22
- </head>
23
- <body>
24
- <p>Please follow <a href="https://cliz.in">this link</a>.</p>
25
- </body>
26
- </html>
27
- }
14
+ PRE_SCRIPT = config['pre_script']
28
15
 
29
16
  url = ARGV[0]
30
- redirect_content = HTML.gsub 'https://cliz.in', url
31
- folder_path = nil
32
- counter = 0
33
- random_string = nil
34
-
35
- unless ARGV[1]
36
- loop do
37
- random_string = SecureRandom.alphanumeric[..counter]
38
- folder_path = "#{OUTPUT_DIR}/#{random_string}/"
39
- break unless File.directory?(folder_path)
40
- counter += 1
41
- end
42
- else
43
- folder_path = "#{OUTPUT_DIR}/#{ARGV[1]}/"
44
- random_string = ARGV[1]
45
- if File.directory?(folder_path)
46
- puts("This short is already taken. Try another.")
47
- exit
48
- end
49
- end
50
-
51
- FileUtils.mkdir_p(folder_path)
52
-
53
- File.open "#{folder_path}/index.html", 'w' do |f|
54
- f.puts redirect_content
55
- end
17
+ short_suggestion = ARGV[1]
18
+
19
+ system("sh #{PRE_SCRIPT}") if PRE_SCRIPT
20
+
21
+ short_suggestion ||= generate_short_suggestion OUTPUT_DIR
22
+ folder_path = get_a_folder_path OUTPUT_DIR, short_suggestion
23
+ create_index_file(url, folder_path)
56
24
 
57
25
  system("sh #{DEPLOY_SCRIPT}") if DEPLOY_SCRIPT
58
26
 
59
- puts "#{BASE_DOMAIN}#{random_string}"
27
+ puts File.join BASE_DOMAIN, short_suggestion
data/lib/functions.rb ADDED
@@ -0,0 +1,57 @@
1
+ require 'securerandom'
2
+ require 'fileutils'
3
+
4
+ ##
5
+ # Gets a folder path for the shortened url
6
+ def get_a_folder_path output_directory, short_suggestion = nil
7
+ folder_path = nil
8
+
9
+ short_suggestion ||= generate_short_suggestion output_directory
10
+ folder_path = File.join(output_directory, short_suggestion, '/')
11
+
12
+ if File.directory?(folder_path)
13
+ raise ("This short URL is already taken.")
14
+ end
15
+
16
+ folder_path
17
+ end
18
+
19
+ def generate_short_suggestion output_directory
20
+ counter = 0
21
+ random_string = nil
22
+
23
+ loop do
24
+ random_string = SecureRandom.alphanumeric[..counter]
25
+ folder_path = File.join(output_directory, random_string, '/')
26
+ break unless File.directory?(folder_path)
27
+ counter += 1
28
+ end
29
+
30
+ random_string
31
+ end
32
+
33
+ def create_index_file url, folder_path
34
+ html = %Q{
35
+ <!DOCTYPE html>
36
+ <html>
37
+ <head>
38
+ <meta content="text/html;charset=utf-8" http-equiv="Content-Type">
39
+ <meta content="utf-8" http-equiv="encoding">
40
+ <script type="text/javascript">
41
+ window.location.replace("https://cliz.in");
42
+ </script>
43
+ <meta http-equiv="refresh" content="0; url='https://cliz.in'" />
44
+ </head>
45
+ <body>
46
+ <p>Please follow <a href="https://cliz.in">this link</a>.</p>
47
+ </body>
48
+ </html>
49
+ }
50
+
51
+ redirect_content = html.gsub 'https://cliz.in', url
52
+ FileUtils.mkdir_p(folder_path)
53
+
54
+ File.open "#{folder_path}/index.html", 'w' do |f|
55
+ f.puts redirect_content
56
+ end
57
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cliz
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Karthikeyan A K
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-11-29 00:00:00.000000000 Z
11
+ date: 2021-04-24 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Cliz - The static URL shortner
14
14
  email: mindaslab@protonmail.com
@@ -18,11 +18,12 @@ extensions: []
18
18
  extra_rdoc_files: []
19
19
  files:
20
20
  - bin/cliz
21
+ - lib/functions.rb
21
22
  homepage: https://cliz.in
22
23
  licenses:
23
24
  - GPLV3
24
25
  metadata: {}
25
- post_install_message:
26
+ post_install_message:
26
27
  rdoc_options: []
27
28
  require_paths:
28
29
  - lib
@@ -37,8 +38,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
37
38
  - !ruby/object:Gem::Version
38
39
  version: '0'
39
40
  requirements: []
40
- rubygems_version: 3.1.4
41
- signing_key:
41
+ rubygems_version: 3.2.15
42
+ signing_key:
42
43
  specification_version: 4
43
44
  summary: Cliz - The static URL shortner
44
45
  test_files: []