-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsetup.session.profile.sh
More file actions
143 lines (102 loc) · 5.1 KB
/
setup.session.profile.sh
File metadata and controls
143 lines (102 loc) · 5.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
#!/bin/bash
# include tools
source "./src/tools.sh" || exit 1
# default arguments
cc_script_cfg_path_default="./src/cfg.session.sh"
cc_firejail_profile_name_default="default"
cc_firejail_default="firejail"
cc_proxychains_default="proxychains -q"
# include specific tool
source "./src/tools.session.firejail.sh" || exit 1
# showhelp is auto set by tools
tool_session_firejail_show_help
# handle arguments
cc_script_cfg_path=
cc_install_dir_path=
cc_firejail_profile_name=
cc_firejail=${cc_firejail_default}
cc_proxychains=${cc_proxychains_default}
# process command line arguments
argc=$#
argv=("$@")
tool_session_firejail_process_arguments ${argc} ${argv}
# start measuring time
tool_time_start
tool_variable_info cc_firejail
tool_variable_info cc_proxychains
tool_variable_info cc_firejail_profile_name
# include main session cfg script IE: ./src/cfg.session.sh
tool_variable_check_load_default cc_script_cfg_path cc_script_cfg_path_default
tool_realpath cc_script_cfg_path "parameter #1 session cfg script path"
tool_check_version_and_include_script ${cc_script_cfg_path} "loading session cfg script"
# check included "./src/cfg.session.sh" cfg variables
tool_variable_check_load_default cc_install_dir_path_default "" "session default install dir path"
tool_variable_check_load_default cc_firejail_profile_name_default "" "session default profile name"
tool_variable_check_load_default cc_proxychains_cfg "" "session proxychains configuration file"
# prepare install directory path
cc_install_dir_path_default_tmp=${cc_dexsetup_dir_path}"/../"${cc_install_dir_path_default}
tool_variable_check_load_default cc_install_dir_path cc_install_dir_path_default_tmp
tool_realpath cc_install_dir_path "cc install dir path"
tool_make_and_check_dir_path cc_install_dir_path "cc install dir path"
# firejail session profile name
tool_variable_check_load_default cc_firejail_profile_name cc_firejail_profile_name_default
# firejail session run script file path
cc_session_firejail_run_script_path=${cc_install_dir_path}"/firejail.session."${cc_firejail_profile_name}".sh"
tool_realpath cc_session_firejail_run_script_path "session firejail run script"
# prepare session profile data path
cc_profile_data_path=${cc_install_dir_path}"/data/profile/"${cc_firejail_profile_name}"/"
tool_make_and_check_dir_path cc_profile_data_path "session firejail profiles data path"
# prepare session proxychains file path
cc_proxychains_cfg_data_path=${cc_install_dir_path}"/data/profile/"${cc_firejail_profile_name}".proxychains.cfg"
tool_realpath cc_proxychains_cfg_data_path "session proxychains configuration file"
# prepare bin files path
cc_bin_dir="data/download/bin"
cc_bin_path=${cc_install_dir_path}"/"${cc_bin_dir}
tool_realpath cc_bin_path "binary files path"
tool_dir_if_notexist_exit cc_bin_path "binary file path"
# firejail session run script file path
cc_session_firejail_run_script2_filename="firejail.session."${cc_firejail_profile_name}".sh"
cc_session_firejail_run_script2_path=${cc_install_dir_path}"/data/profile/"${cc_session_firejail_run_script2_filename}
tool_realpath cc_session_firejail_run_script2_path "session firejail run script"
# generate proxychain configuration file
tool_make_and_chmod_script_or_exit cc_proxychains_cfg_data_path cc_proxychains_cfg "create session proxychains configuration"
# generate firejail session run script 1
script_data="#!/bin/bash
# run script generated with ./setup.session.profile.sh --help
GTK_IM_MODULE=xim
cd \"\$(dirname \"\$(realpath \"\$0\")\")\"
cd ${cc_bin_dir} || exit 1
mkdir -p ${cc_profile_data_path} || exit 1
firejail \\
--name=session.${cc_firejail_profile_name} \\
--whitelist=\`pwd\` \\
--read-only=\`pwd\` \\
--whitelist=${cc_session_firejail_run_script2_path} \\
--read-only=${cc_session_firejail_run_script2_path} \\
--whitelist=${cc_proxychains_cfg_data_path} \\
--read-only=${cc_proxychains_cfg_data_path} \\
--whitelist=${cc_profile_data_path} \\
--private-tmp \\
--private-dev \\
./../../profile/${cc_session_firejail_run_script2_filename}
"
tool_make_and_chmod_script_or_exit cc_session_firejail_run_script_path script_data "create session firejail run script"
# generate firejail session run script 2
script_data2="#!/bin/bash
# run script generated with ./setup.cc.session.firejail.sh --help
mkdir -p ~/.config/ || exit 1
mkdir -p ~/.proxychains/ || exit 1
ln -s ${cc_profile_data_path} ~/.config/Session || exit 1
ln -s ${cc_proxychains_cfg_data_path} ~/.proxychains/proxychains.conf || exit 1
# useful to enable if session activate development version
#~ ln -s ${cc_profile_data_path} ~/.config/Session-development || exit 1
#~ ${cc_proxychains} ./session-desktop --no-sandbox --no-zygote --disable-gpu
#~ torsocks -d ./session-desktop --no-zygote --no-sandbox --disable-gpu
#~ torsocks ./session-desktop --no-zygote --no-sandbox --disable-gpu
#~ proxychains4 ./session-desktop --no-zygote --no-sandbox --disable-gpu
proxychains4 -q ./session-desktop --no-sandbox --no-zygote --disable-gpu
#~ ./session-desktop --no-zygote --no-sandbox --disable-gpu
"
tool_make_and_chmod_script_or_exit cc_session_firejail_run_script2_path script_data2 "create session firejail run script2"
tool_time_finish_print
exit 0