1
0
mirror of https://gitlab.com/JKANetwork/JKArch.git synced 2026-02-19 19:51:32 +01:00
This commit is contained in:
2017-02-20 21:01:08 +01:00
parent 65562e0f1d
commit d279dc877b
7 changed files with 44 additions and 1577 deletions

View File

@@ -1,11 +1,51 @@
#!/usr/bin/python3 #!/usr/bin/python
## This script requires ArchLinux, reflector, python3 and python-pythondialog ## This script requires ArchLinux and: python3 and python-pythondialog, or python2, python2-pythondialog and python2-future
###### THIS SCRIPT NOT WORKS, ITS A TRY, THANKS ###### ###### THIS SCRIPT NOT WORKS, ITS A TRY, THANKS ######
print ('\033[91m'+"Dont run this."+'\033[0m') print ('\033[91m'+"Dont run this."+'\033[0m')
import sys; sys.exit(0) sys.exit(0)
#General imports (Python2 and 3)
import os,sys,subprocess
#Install and delete things, preparing installer
subprocess.call("mount -o remount,size=700M /run/archiso/cowspace", shell=True)
subprocess.call("pacman-key --init && pacman-key --populate && pacman -Sy archlinux-keyring --noconfirm", shell=True)
subprocess.call("pacman -S reflector --noconfirm && reflector --verbose -l 6 --sort rate --save /etc/pacman.d/mirrorlist", shell=True)
subprocess.call("pacman -R clonezilla darkhttpd diffutils grml-zsh-config irssi linux-atm lvm2 man-db man-pages mc ndisc6 nmap smartmontools testdisk vi vim vim-runtime openconnect pcsclite --noconfirm", shell=True)
subprocess.call("rm -rf /var/cache/pacman/pkg/*", shell=True)
subprocess.call("pacman -Su --noconfirm --ignore linux", shell=True)
subprocess.call("rm -rf /var/cache/pacman/pkg/*", shell=True)
subprocess.call("pacman -S gparted xf86-video-vesa xorg-xinit lwm xorg-xrandr xterm --noconfirm --needed", shell=True)
subprocess.call("rm -rf /var/cache/pacman/pkg/*", shell=True)
subprocess.call("rm /etc/X11/xinit/xinitrc", shell=True)
subprocess.call("touch /etc/X11/xinit/xinitrc", shell=True)
subprocess.call("chmod 777 /etc/X11/xinit/xinitrc", shell=True)
subprocess.call('echo "#Start gparted with startx command" > /etc/X11/xinit/xinitrc', shell=True)
subprocess.call('echo "lwm &" >> /etc/X11/xinit/xinitrc', shell=True)
subprocess.call('echo "xrandr -s 1024x768 -r 60" >> /etc/X11/xinit/xinitrc', shell=True)
subprocess.call('chmod 644 /etc/X11/xinit/xinitrc', shell=True)
### sudo echo "xterm -e '/usr/bin/python3 /root/installer.py' -geometry 120x35" >> /etc/X11/xinit/xinitrc
#Try to see if its using python2
pythonver=sys.version_info[0]
if pythonver < 3:
print 'You are using python2, installing needed things..'
subprocess.call("pacman -S python2-future python2-pythondialog --noconfirm --needed", shell=True)
#Import future for using python3 syntax in python2
from __future__ import (absolute_import, division, print_function, unicode_literals)
from builtins import *
else:
print 'You are using python3, installing needed things..'
subprocess.call("pacman -S python-pythondialog --noconfirm --needed", shell=True)
#Things installed, running...
import os, subprocess
from dialog import Dialog from dialog import Dialog
dialog = Dialog(dialog="dialog") dialog = Dialog(dialog="dialog")
FNULL = open(os.devnull, 'w') FNULL = open(os.devnull, 'w')

File diff suppressed because it is too large Load Diff

View File

@@ -1,29 +0,0 @@
#!/bin/bash
opt=`dialog --stdout --nocancel --backtitle "Instalacion de JKArch / JKArch installation" --title "Bienvenido a JKArch / Welcome" --menu "Para poder comenzar la instalacion, se necesita una conexion a internet. / We need an internet conection to start" 0 70 5 1 "Estoy por cable (Ethernet) /I'm using cable" 2 "Wi-Fi" 3 "Configuracion compleja (Ir a la terminal) / Other (Terminal)"`
if [[ $opt -eq 2 ]];then
wifi-menu
elif [[ $opt -eq 3 ]];then
clear
echo "Te sacamos a la terminal, configure internet, asegurese de que funcione y después escriba exit para continuar"
echo "You will go to the bash terminal, you can configure network, and then write exit"
bash
fi
clear
echo "Vamos a comprobar que tienes conexión a internet"
echo "Testing network conection"
ping 8.8.8.8 -c3
if [[ $? != 0 ]];then
clear
dialog --title "Conexión / Network " --msgbox "Error en la conexión \nse reiniciará la instalación \n\n Network error. Restarting the install.." 15 60
exec ./downloadinstall.sh
fi
wget -nv https://gitlab.com/JKANetwork/JKArch/raw/master/archinstall/selectlang.sh -O selectlang.sh
if [ $(cat selectlang.sh | grep "^<\!DOCTYPE html>") == "<\!DOCTYPE html>" ];then
clear
dialog --title "Descarga incorrecta / Corrupted download" --msgbox "La descarga del instalador ha fallado \nse reiniciará la instalación \n\n Download failed. Restarting install.." 15 60
exec ./downloadinstall.sh
fi
chmod +x selectlang.sh
exec ./selectlang.sh

View File

@@ -1,63 +0,0 @@
#
# /etc/pacman.conf
#
# See the pacman.conf(5) manpage for option and repository directives
#
# GENERAL OPTIONS
#
[options]
# The following paths are commented out with their default values listed.
# If you wish to use different paths, uncomment and update the paths.
#RootDir = /
#DBPath = /var/lib/pacman/
#CacheDir = /var/cache/pacman/pkg/
#LogFile = /var/log/pacman.log
#GPGDir = /etc/pacman.d/gnupg/
#HookDir = /etc/pacman.d/hooks/
HoldPkg = pacman glibc
#XferCommand = /usr/bin/curl -C - -f %u > %o
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#XferCommand = /usr/bin/aria2c --allow-overwrite=true --continue=true --file-allocation=none --log-level=error --max-tries=2 --max-connection-per-server=2 --max-file-not-found=5 --min-split-size=5M --no-conf --remote-time=true --summary-interval=60 --timeout=5 --dir=/ --out %o %u
#CleanMethod = KeepInstalled
#UseDelta = 0.7
Architecture = auto
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
#IgnorePkg =
#IgnoreGroup =
#NoUpgrade =
#NoExtract =
# Misc options
#UseSyslog
#Color
#TotalDownload
CheckSpace
#VerbosePkgLists
# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.
SigLevel = Required DatabaseOptional
LocalFileSigLevel = Optional
#RemoteFileSigLevel = Required
# NOTE: You must run `pacman-key --init` before first using pacman; the local
# keyring can then be populated with the keys of all official Arch Linux
# packagers with `pacman-key --populate archlinux`.
#
# REPOSITORIES
# Repository entries are of the format:
# [repo-name]
# Server = ServerName
# Include = IncludePath
#
# The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo.
#
[localjkarch]
SigLevel = Optional TrustAll
Server = file:///run/archiso/bootmnt/repo

View File

@@ -1,75 +0,0 @@
#
# /etc/pacman.conf
#
# See the pacman.conf(5) manpage for option and repository directives
#
# GENERAL OPTIONS
#
[options]
# The following paths are commented out with their default values listed.
# If you wish to use different paths, uncomment and update the paths.
#RootDir = /
#DBPath = /var/lib/pacman/
#CacheDir = /var/cache/pacman/pkg/
#LogFile = /var/log/pacman.log
#GPGDir = /etc/pacman.d/gnupg/
#HookDir = /etc/pacman.d/hooks/
HoldPkg = pacman glibc
#XferCommand = /usr/bin/curl -C - -f %u > %o
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#XferCommand = /usr/bin/aria2c --allow-overwrite=true --continue=true --file-allocation=none --log-level=error --max-tries=2 --max-connection-per-server=2 --max-file-not-found=5 --min-split-size=5M --no-conf --remote-time=true --summary-interval=60 --timeout=5 --dir=/ --out %o %u
#CleanMethod = KeepInstalled
#UseDelta = 0.7
Architecture = auto
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
#IgnorePkg =
#IgnoreGroup =
#NoUpgrade =
#NoExtract =
# Misc options
#UseSyslog
#Color
#TotalDownload
CheckSpace
#VerbosePkgLists
# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.
SigLevel = Required DatabaseOptional
LocalFileSigLevel = Optional
#RemoteFileSigLevel = Required
# NOTE: You must run `pacman-key --init` before first using pacman; the local
# keyring can then be populated with the keys of all official Arch Linux
# packagers with `pacman-key --populate archlinux`.
#
# REPOSITORIES
# Repository entries are of the format:
# [repo-name]
# Server = ServerName
# Include = IncludePath
#
# The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo.
#
[core]
Include = /etc/pacman.d/mirrorlist
[extra]
Include = /etc/pacman.d/mirrorlist
[community]
Include = /etc/pacman.d/mirrorlist
[multilib]
Include = /etc/pacman.d/mirrorlist
#JKArch Repository
[jkanetwork]
SigLevel = Optional TrustAll
Include = /etc/pacman.d/jkarch-mirrorlist

View File

@@ -1,32 +0,0 @@
#!/bin/bash
##This script only selects the installer language and, if its a online install, asks user to use stable or devel installer
idiom=`dialog --stdout --nocancel --backtitle "JKArch Instalation" --title "Language selection" --menu "Select your language / Selecciona tu idioma" 0 70 5 1 "Spanish (es)" 2 "English (en) (In progress)"`
if [[ $idiom -eq 1 ]];then
sclang="es"
loadkeys es
#LANG="es_ES.UTF-8" ; export LANG
elif [[ $idiom -eq 2 ]];then
sclang="en"
loadkeys en
#LANG="en_GB.UTF-8" ; export LANG
fi
if [[ -f translations.sh ]];then #If its a offline install (ISO)
exec ./archinstall.sh $sclang 1 #Offline
else #Online install
#Download and exec
wget -nv https://gitlab.com/JKANetwork/JKArch/raw/master/archinstall/archinstall.sh -O archinstall.sh
wget -nv https://gitlab.com/JKANetwork/JKArch/raw/master/archinstall/translations.sh -O translations.sh
if [[ $(cat archinstall.sh | grep "^<\!DOCTYPE html>") == "<\!DOCTYPE html>" || $(cat translations.sh | grep "^<\!DOCTYPE html>") == "<\!DOCTYPE html>" ]];then
clear
dialog --title "Descarga incorrecta / Corrupted download" --msgbox "La descarga del instalador ha fallado \nse reiniciará la instalación \n\n Download failed. Restarting install.." 15 60
exec ./selectlang.sh
fi
chmod +x archinstall.sh
chmod +x translations.sh
exec ./archinstall.sh $sclang 0 #Online
fi

View File

@@ -1,357 +0,0 @@
#!/bin/bash
# Translation function for the script. Loaded by source translations.sh and used by $(T "Text") returing a 'echo "Translated text"'
# For adding a language you have to add "id") echo "Translated to id language" , putting in id your language (pr, en,it, es,...)
# Example: "es") echo "Traduccion de un texto";;
# The * represents "en" language, and is the standard output if it's not translated. ( "*)" == ' "en") ' ) English is the "universal" language.
# If translation of *) is echo "$1" it means trat is equal to the case (as case is writed in abreviated English, but sometimes is the same)
function T {
case "$1" in
"JKArch install script")
case $sclang in
"es") echo "Script de instalacion de JKArch (BETA)";;
*) echo "$1";;
esac;;
"Intro arch install script")
case $sclang in
"es") echo "Mediante unas preguntas y avanzando, instalaremos arch en su ordenador \nHa sido pensado para ser simple, y guiado por opciones, pero debes estar atento durante el proceso. \nAviso: No debes interrumpir la instalacion por ningun motivo, a no ser que quieras que quede incompleta";;
*) echo "Through simple questions, we will install arch in your computer. \nIts designed to be simple and guied by options, but you need to be careful during the process. \nWarning: You musnt stop the install never, or anything can happen";;
esac;;
"Partition scheme before your changes")
case $sclang in
"es") echo "Esquema de particiones antes de los cambios";;
*) echo "$1";;
esac;;
"Your partition scheme")
case $sclang in
"es") echo "Tu esquema de particiones:";;
*) echo "${1}:";;
esac;;
"Your changes")
case $sclang in
"es") echo "Cambios que has realizado:";;
*) echo "${1}:";;
esac;;
"Press enter to continue...")
case $sclang in
"es") echo "Pulse enter para continuar...";;
*) echo "$1";;
esac;;
"Questions about partitions where system will be installed")
case $sclang in
"es") echo "Preguntas acerca de las unidades donde instalar el sistema";;
*) echo "$1";;
esac;;
"Questions about partitions dialog. Text")
case $sclang in
"es") echo "Esta parte es la mas importante, antes de seguir se mostrarán los discos duros. Si esta vacío o es nuevo, recomendamos formatear en DOS/MBR. Si sabe lo que hace, o ya usaba GPT/UEFI, tendrá que seleccionar la partición EFI, recuerdelo \n (Si lo instala junto a windows 8.1/10 de 64 bits con UEFI activado, entonces usa EFI y tendrás que seleccionar la unidad EFI/ESP que utiliza luego)";;
*) echo "This is the most important part. We will show you your partition scheme. If it's empty, please format it in DOS/MBR type. If you know what are you doing, or if you have formatted in GPT/UEFI, you will have to select EFI/ESP partition later. \n(If you install it alongside with Windows 8.1/10 64 bits with UEFI, you will be to select EFI/ESP partition that windows makes)";;
esac;;
"ERROR: You dont have HDD, insert one, poweroff")
case $sclang in
"es") echo "ERROR: No tienes discos duros, no se puede continuar. Por favor enchufe/inserte un disco duro y reinicie. \n Al pulsar aceptar se reiniciara el sistema";;
*) echo "ERROR: You dont have any HDD/SSD, setup can't continue. Plug-in some HDD/SSD and start again. When you press enter, computer will poweroff.";;
esac;;
"An error has ocurred, setup will be stopped")
case $sclang in
"es") echo "A ocurrido un error, la instalacion se va a detener. Razon: ";;
*) echo "An error has ocurred, setup will be stopped.\nReason: ";;
esac;;
"System configuration")
case $sclang in
"es") echo "Configuración de su sistema";;
*) echo "$1";;
esac;;
"Select hard disk to edit")
case $sclang in
"es") echo "Seleccione el disco duro para editar";;
*) echo "$1";;
esac;;
"Full hard disk install")
case $sclang in
"es") echo "Instalacion en un disco duro completo";;
*) echo "$1";;
esac;;
"Full hard disk install. Text")
case $sclang in
"es") echo "Ahora se le permitira escoger un disco duro para eliminar, y reemplazar por una particion para JKArch sola y sus configuraciones estandar. \nPor favor, no es reversible, asegurese de lo que estas haciendo varias veces.";;
*) echo "Now you have to select a hard disk to delete it and replace by a partition only for JKArch and standard configuration. \nIt's not reversible, please be sure of what are you doing!";;
esac;;
"Select hard disk to delete and use by JKArch")
case $sclang in
"es") echo "Elige el disco duro a borrar y cambiar por una particion Linux simple para JKArch";;
*) echo "$1";;
esac;;
"Select root ('/') partition")
case $sclang in
"es") echo "Elige la particion a usar como sistema raíz ('/')";;
*) echo "$1";;
esac;;
"Select home partition")
case $sclang in
"es") echo "Elige la particion a usar como home (/home)";;
*) echo "Select home (/home) (users) partition";;
esac;;
"Select EFI partition")
case $sclang in
"es") echo "Elige la particion EFI del sistema (Suele ser una particion de 300-500Mb en FAT32 llamada EFI, y suele estar en /dev/sda2)";;
*) echo "Select EFI partition (Normally is a 300-500Mb FAT32/vfat partition called EFI)";;
esac;;
"GPT Partition Table")
case $sclang in
"es") echo "Tabla de particiones en GPT";;
*) echo "$1";;
esac;;
"You are using GPT, you will have to select EFI")
case $sclang in
"es") echo "Estas usando el estilo de particiones GPT, que utiliza UEFI, recuerda que tendras que tener y seleccionar la particion UEFI del sistema.";;
*) echo "You are using GPT, that uses UEFI, you will have to select the EFI partition.";;
esac;;
"Not valid")
case $sclang in
"es") echo "No valido";;
*) echo "$1";;
esac;;
"¿Do you want to edit partitions?¿How?")
case $sclang in
"es") echo "¿Quieres editar las particiones?¿Como?";;
*) echo "$1";;
esac;;
"Ok, last thing before start installing, summary of changes")
case $sclang in
"es") echo "Ok, vamos a comenzar la instalacion, pero antes, un resumen de donde lo va a instalar.";;
*) echo "Ok, last thing before start installing, summary of changes we will do";;
esac;;
"If you agree with that, press enter. If not, turn off the computer")
case $sclang in
"es") echo "Si estas de acuerdo, presione enter, en caso contrario, apague el ordenador a la fuerza y no comenzará la instalación";;
*) echo "If you agree with that, press enter. If not, turn off the computer";;
esac;;
"Root partition")
case $sclang in
"es") echo "Partición raiz (/)";;
*) echo "$1";;
esac;;
"Home partition")
case $sclang in
"es") echo "Partición home (/home)";;
*) echo "$1";;
esac;;
"EFI partition in")
case $sclang in
"es") echo "Tienes una partición EFI en";;
*) echo "$1";;
esac;;
"ext4 formatted")
case $sclang in
"es") echo "formateado en ext4";;
*) echo "$1";;
esac;;
"btrfs formatted")
case $sclang in
"es") echo "formateado en btrfs";;
*) echo "$1";;
esac;;
"XFS formatted")
case $sclang in
"es") echo "formateado en XFS";;
*) echo "$1";;
esac;;
"not formatted")
case $sclang in
"es") echo "sin formatear";;
*) echo "$1";;
esac;;
"Not select")
case $sclang in
"es") echo "No elegir";;
*) echo "$1";;
esac;;
"End")
case $sclang in
"es") echo "Fin";;
*) echo "$1";;
esac;;
"Exit")
case $sclang in
"es") echo "Salir";;
*) echo "$1";;
esac;;
"Password")
case $sclang in
"es") echo "Contraseña";;
*) echo "$1";;
esac;;
"Passwords do not match")
case $sclang in
"es") echo "Las contraseñas no coinciden";;
*) echo "$1";;
esac;;
"Basic setup packages, this can take a minute")
case $sclang in
"es") echo "Paquetes basicos para la instalación, puede tardar un poco";;
*) echo "$1";;
esac;;
"Last tweaks and cleaning")
case $sclang in
"es") echo "Ultimos retoques y limpieza..";;
*) echo "$1";;
esac;;
"Setup finished, press enter to reboot.")
case $sclang in
"es") echo "Instalación finalizada, al pulsar aceptar, se reiniciara el sistema";;
*) echo "$1";;
esac;;
"Network connection error, please check it")
case $sclang in
"es") echo "Error de conexion con internet, compruebe la red";;
*) echo "$1";;
esac;;
"Select language for JKArch")
case $sclang in
"es") echo "Escoja su idioma para JKArch";;
*) echo "$1";;
esac;;
"Wait")
case $sclang in
"es") echo "Espere...";;
*) echo "Wait...";;
esac;;
"Optimizing download")
case $sclang in
"es") echo "Optimizando la descarga...";;
*) echo "${1}...";;
esac;;
"Downloading")
case $sclang in
"es") echo "Descargando";;
*) echo "$1";;
esac;;
"Installing system, this can take about 10 minutes, wait")
case $sclang in
"es") echo "Instalando el sistema, esto puede tardar unos 10 minutos, espere hasta el siguiente aviso";;
*) echo "$1";;
esac;;
"Gparted will be opened. Help text")
case $sclang in
"es") echo "Se abrira Gparted. Con el puedes editar, borrar,añadir y poner a tu gusto graficamente las particiones. \n Recuerda que al menos debe haber una particion ext4 primaria para el sistema. \n (Nota: No monte ninguna particion)";;
*) echo "Gparted will be opened. With it, you can edit, erase, add, and modify partitions. \n Remember that,at least you have to have a root ext4 partition for JKArch.\n(Note: Do not mount any partition)";;
esac;;
"JKArch autodetects swap partitions")
case $sclang in
"es") echo "JKArch detecta automaticamente las particiones swap bien creadas, no debe hacer nada mas";;
*) echo "JKArch autodetects swap partitions, you dont have to do anything";;
esac;;
"Creating swap file")
case $sclang in
"es") echo "Creando archivo swap, espere";;
*) echo "$1";;
esac;;
"Select your desktop enviroment")
case $sclang in
"es") echo "Escoje tu entorno de escritorio";;
*) echo "$1";;
esac;;
"Now select your timezone for adjusting the clock")
case $sclang in
"es") echo "Ahora seleccione su ubicacion/país para ajustar el reloj";;
*) echo "$1";;
esac;;
"Enter how much memory you want to use for swap (MB)")
case $sclang in
"es") echo "Introduzca cuanta memoria quieres usar como swap (en MB)";;
*) echo "$1";;
esac;;
"Formatting and mounting partitions")
case $sclang in
"es") echo "Formateando y montando particiones...";;
*) echo "$1";;
esac;;
"Syncing hour to internet")
case $sclang in
"es") echo "Sincronizando la hora por internet";;
*) echo "$1";;
esac;;
"No new bootloader installed")
case $sclang in
"es") echo "No se ha instalado ningun gestor de arranque nuevo en el sistema";;
*) echo "$1";;
esac;;
"No new bootloader will be installed")
case $sclang in
"es") echo "No se instalara ningun gestor de arranque nuevo en el sistema";;
*) echo "$1";;
esac;;
"Other configs")
case $sclang in
"es") echo "Otras configuraciones";;
*) echo "$1";;
esac;;
"What is your graphics card brand?")
case $sclang in
"es") echo "¿Cual es la marca de tu tarjeta grafica?";;
*) echo "$1";;
esac;;
"Repeat password")
case $sclang in
"es") echo "Repita la contrasena";;
*) echo "$1";;
esac;;
"Password for ")
case $sclang in
"es") echo "Contrasena para ";;
*) echo "$1";;
esac;;
"Installing packages")
case $sclang in
"es") echo "Instalando paquetes";;
*) echo "$1";;
esac;;
"Configuring wine for better experience")
case $sclang in
"es") echo "Configurando wine para una mejor experiencia";;
*) echo "$1";;
esac;;
"Installing desktop and basic programs, please wait")
case $sclang in
"es") echo "Instalando el entorno de escritorio y programas basicos, por favor espere";;
*) echo "$1";;
esac;;
"Your timezone:")
case $sclang in
"es") echo "Tu franja horaria:";;
*) echo "$1";;
esac;;
"No,edit")
case $sclang in
"es") echo "No, editar";;
*) echo "$1";;
esac;;
"Edit")
case $sclang in
"es") echo "Editar";;
*) echo "$1";;
esac;;
"Same as user")
case $sclang in
"es") echo "La misma";;
*) echo "$1";;
esac;;
"It's right")
case $sclang in
"es") echo "Es correcto";;
*) echo "$1";;
esac;;
"You want to edit root (admin) password or set same as user?")
case $sclang in
"es") echo "¿Quieres editar la contraseña para root (administrador) o usar la misma que el usuario?";;
*) echo "$1";;
esac;;
"You have a install log in")
case $sclang in
"es") echo "Se ha dejado un log de la instalacion en";;
*) echo "$1";;
esac;;
*) echo "$1";;
esac
}